使用前准备
环境准备
请参考环境准备,完成相关环境变量的配置。
使用约束
若需要加载的可执行文件或用户自定义程序包含命令行参数时,在可执行文件或用户程序之前使用“--”分隔检测工具和用户命令,如下所示:
mstracekit --type=instr --task=memtrace -- application parameter1 parameter2 ... # application表示用户程序
添加编译选项
不同算子工程添加编译选项的位置不同,下面以内核调用符场景为例进行介绍:
- 算子代码的编译选项需添加 -g --cce-enable-mstrace。编辑样例工程目录下的“cmake/npu/CMakeLists.txt”文件,单击LINK参考核函数开发和运行验证的完整样例。
target_compile_options(${smoke_testcase}_npu PRIVATE -O2 -std=c++17 --cce-enable-mstrace -g )
增加--cce-enable-mstrace 选项代表使能内存轨迹分析。
增加 -g 选项使编译器生成定位信息,将会在异常报告输出时显示异常发生的具体位置(文件名、行号以及调用栈等信息)。
- 此功能仅支持
Atlas A2 训练系列产品/Atlas 800I A2 推理产品 。 - 下载代码样例时,需执行以下命令指定分支版本。
git clone https://gitee.com/ascend/samples.git -b 8.0.RC2
- 开启-O2后可能会导致编译器对某些代码进行优化,造成行号被异常报告为0,此时,需将-O2改为-O0,通过-O0关闭优化获取正确定位信息。
- 添加 -g 编译选项会在生成的二进制文件中附带调试信息,建议限制带有调试信息的用户程序的访问权限,确保只有授权人员可以访问该二进制文件。
- 此功能仅支持
- 链接阶段需增加target_link_options选项 。
- 编辑样例工程目录下的“cmake/npu/CMakeLists.txt”文件。
target_link_options(${smoke_testcase}_npu PRIVATE --cce-fatobj-link --cce-enable-mstrace )
- 编辑样例工程目录下的“cmake/Modules/CMakeCCEInformation.cmake”文件。
if(NOT CMAKE_CCE_LINK_EXECUTABLE) set(CMAKE_CCE_LINK_EXECUTABLE "<CMAKE_CCE_COMPILER> ${CMAKE_LIBRARY_CREATE_CCE_FLAGS} ${_CMAKE_COMPILE_AS_CCE_FLAG} <FLAGS> <CMAKE_CCE_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICIT_LINKS}") endif()
- 编辑样例工程目录下的“cmake/npu/CMakeLists.txt”文件。
- 启用msTracekit轨迹分析工具时需要加载NPU侧可执行文件application,该文件的获取可参考Kernel直调。
父主题: msTracekit