导入调试信息
算子调试前,需先启用调试-g -O0编译选项重新编译,使算子二进制带上调试信息,具体方法可参考基于样例工程编译算子。
在-O0编译选项场景下,算子程序的行为与-O2编译场景会不一致。因此算子内部的竞争问题不建议在O0编译选项下定位,推荐使用mssanitizer工具的竞争检测功能进行定位。
通常情况下,算子调试信息会自动被导入msDebug工具。但算子二进制以.o文件形式独立存在并部署的情况下(例如通过AscendCL单算子调用的场景),需要选择如下方法导入算子调试信息:
仅支持导入单个算子的调试信息,不支持导入多个算子的调试信息。
- 方法一:在调试前,配置如下环境变量,指定算子加载路径,导入调试信息。
export LAUNCH_KERNEL_PATH={path_to_kernel}/my_kernel.o //{path_to_kernel}为kernel侧.o文件所在目录
- 方法二:在执行run命令前,执行image add命令,指定算子加载路径,导入调试信息。
(msdebug) image add {path_to_kernel}/my_kernel.o //{path_to_kernel}为kernel侧.o文件所在目录
- image add仅适用于PyTorch场景的导入方式。
- 若需要程序运行后导入调试信息,还需执行image load命令完成算子调试信息的加载。
(msdebug) image load -f {path_to_kernel}/my_kernel.o -s 0
父主题: 算子调试(msDebug)