开发者
资源
[object Object][object Object][object Object]

msDebug 是一款面向昇腾设备的算子调试工具,用于调试在NPU侧执行的算子程序,为算子开发人员提供关键调试能力,包括读取昇腾设备内存与寄存器、断点暂停与恢复程序运行状态等。
本文档基于入门教程中开发的简易加法算子,演示 msDebug 工具的核心功能,帮助初学者直观体验其在算子开发过程中带来的高效性与便捷性。

[object Object]

本章节以您已完成[object Object]《算子开发工具快速入门》[object Object]的全流程操作为前提;若尚未体验,建议先完成该指南以获得更佳的学习效果。

[object Object]

请严格按照[object Object]《昇腾 AI 算子开发工具链学习环境安装指南》[object Object]完成环境安装与工作区配置。 即使您已具备类似环境,也需按该指南重新执行一遍,以确保所有依赖组件、环境变量等完整且一致。

[object Object][object Object][object Object]

执行以下命令,若输出"All is OK",则表明所需 Python 包及其版本均满足规范:

[object Object]

若报错,请参考正确安装。

[object Object]

按照[object Object]《昇腾算子开发工具链快速入门》[object Object]中的指导,完成2.1节和2.3节。

[object Object]

若算子功能异常,可借助 msDebug 工具进行断点调试,高效定位问题。先按步骤操作体验效果,原理部分可稍后阅读。

[object Object]
[object Object]

确认内核调试开关 debug_switch 是否已打开:

[object Object]

若输出值不为 1,请使用 root 权限执行以下命令:

[object Object]

如果不能成功设置为 1,则 msDebug 功能不可用,只能跳过本节 msDebug 的体验。

[object Object]

1. 修改编译选项
在 Kernel 侧 CMakeLists.txt 首行插入一行配置,用于启用调试信息、禁用编译优化:

[object Object]

2. 重新编译部署算子

[object Object]
[object Object]
[object Object]

设置 LAUNCH_KERNEL_PATH,指定算子 obj 加载路径并导入调试符号信息:

[object Object]
[object Object]
[object Object][object Object]
[object Object]
[object Object]

待 (msdebug) 提示符出现后,设置断点于 add_custom.cpp 第 34 行:

[object Object]
[object Object]
[object Object]

输入 run 启动程序,等待命中断点:

[object Object]

显示如下信息,则成功命中断点:

[object Object]
[object Object]

在断点处执行以下命令,显示当前作用域内的所有局部变量:

[object Object]

输出示例如下:

[object Object]
[object Object]
[object Object]

输出示例如下:

[object Object]
[object Object]
[object Object]

输出示例如下:

[object Object]
[object Object]
[object Object]

输出示例如下:

[object Object]
[object Object]
[object Object]

输出示例如下:

[object Object]
[object Object]
[object Object]

输出示例如下:

[object Object]
[object Object]
[object Object]

输出示例如下:

[object Object]
[object Object]
[object Object]
[object Object]

执行如下命令:

[object Object]