昇腾社区首页
中文
注册

使用前准备

使用约束

若需要加载的可执行文件或用户自定义程序包含命令行参数时,在可执行文件或用户程序之前使用“--”分隔检测工具和用户命令,如下所示:
mstracekit --type=instr --task=memtrace -- application  parameter1 parameter2 ...  # application表示用户程序

环境准备

请参考环境准备,完成相关环境变量的配置。

添加编译选项

要启用算子内存轨迹分析功能时,需要在算子代码的编译阶段增加 --cce-enable-mstrace 选项,链接阶段增加 --cce-enable-mstrace --cce-aicore-arch={ARCH} 选项,其中 {ARCH} 需要与编译时使用的芯片类型一致。为了在内存读写时序图中能显示内存事件发生的具体位置,需要在编译选项中增加 -g 使编译器生成定位信息,从而在时序图中显示代码调用栈等信息。
表1 算子编译选项配置表

硬件型号

算子类型

Atlas A2训练系列产品/Atlas 800I A2推理产品

Vector算子

Cube算子

Mix融合算子

内核调用符场景
  • 算子代码的编译选项需添加 -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 选项使编译器生成定位信息,将会在异常报告输出时显示异常发生的具体位置(文件名、行号以及调用栈等信息)。

    • 开启-O2后可能会导致编译器对某些代码进行优化,造成行号被异常报告为0,此时,需将-O2改为-O0,通过-O0关闭优化获取正确定位信息。
    • 添加 -g 编译选项会在生成的二进制文件中附带调试信息,建议限制带有调试信息的用户程序的访问权限,确保只有授权人员可以访问该二进制文件子。
  • 链接阶段需增加target_link_options选项,主要配置--cce-enable-mstrace和--cce-aicore-arch={ARCH}
    编辑样例工程目录下的“cmake/npu/CMakeLists.txt”文件。
    target_link_options(${smoke_testcase}_npu PRIVATE
        --cce-fatobj-link
        --cce-enable-mstrace
        --cce-aicore-arch={ARCH}   # 此处{ARCH}需替换为实际使用的硬件型号和算子类型对应的编译选项
    )
  • 启用msTracekit轨迹分析工具时需要加载NPU侧可执行文件application,该文件的获取可参考核函数运行验证简介