如需启用全量检测,须在算子代码的编译阶段添加相应编译选项并重新编译算子。 由于不同算子工程中编译选项的配置位置存在差异,将以、、和为例分别说明。
修改模板库中的examples/CMakeLists.txt文件,新增[object Object]编译选项。
-
[object Object]
[object Object]
进行算子代码编译,需添加以下编译选项:
- -g
- --cce-enable-sanitizer或--sanitizer
编辑样例工程目录下的“cmake/npu/CMakeLists.txt”文件,参考核函数开发和运行验证的完整样例。
[object Object]增加--cce-enable-sanitizer或--sanitizer选项代表使能异常检测。
增加-g选项使编译器生成定位信息,将会在异常报告输出时打印异常发生的具体位置(文件名、行号以及调用栈等信息)。
[object Object]
链接阶段需增加target_link_options选项。
编辑样例工程目录下的“cmake/npu/CMakeLists.txt”文件。
[object Object]编辑样例工程目录下的“cmake/Modules/CMakeCCEInformation.cmake”文件。
[object Object]
启用msSanitizer检测工具时,需要加载NPU侧可执行文件_<kernel_name>__npu,该文件的获取可参考《Ascend C算子开发指南》中的“Kernel直调算子开发 >”章节。
单击,在${git_clone_path}/samples/operator/ascendc/0_introduction/1_add_frameworklaunch目录下运行install.sh脚本,生成自定义算子工程。
[object Object]
[object Object]切换至自定义算子工程目录。
[object Object]编辑样例工程目录下的“op_kernel/CMakeLists.txt”文件,在编译选项中添加-sanitizer选项,具体请参考《MindStudio Ops Generator工具用户指南》中的“算子编译部署>支持自定义编译选项”章节。
Triton算子采用Python语言进行开发,并且采用即时编译(JIT)方式来编译算子Kernel。在执行算子脚本前,需要配置以下环境变量支持全量检测。