target_compile_options(${smoke_testcase}_npu PRIVATE -O2 -std=c++17 --cce-enable-sanitizer -g )
增加 --cce-enable-sanitizer 选项代表使能异常检测。
为了在异常报告输出时显示异常发生的具体位置,增加 -g 选项使编译器生成定位信息,从而在报告中显示文件名行号等信息。
开启-O2后可能会导致编译器对某些代码进行优化,造成行号被异常报告为0,此时,需将-O2改为-O0,通过-O0关闭优化获取正确定位信息。
target_link_options(${smoke_testcase}_npu PRIVATE --cce-fatobj-link --cce-enable-sanitizer --cce-aicore-arch={ARCH} )
增加 --cce-aicore-arch={ARCH} 选项代表指定device侧的芯片架构,当前{ARCH} 仅支持配置为dav-c220-vec,对应Atlas A2训练系列产品/Atlas 800I A2推理产品的Vector算子。
mssanitizer --check-cann-heap=yes --leak-check=yes -- ./<kernel_name>_npu parameter1 parameter2 ...
mssanitizer --check-cann-heap=yes --leak-check=yes -- /usr/bin/python3 prog.py
/usr/bin/python3为python解析器所在绝对路径,prog.py为用户自定义脚本。
不建议配置其他用户目录或其他用户可写目录下的自定义脚本,避免提权风险。
自定义脚本中不建议配置删除文件或目录、修改密码、提权命令等有安全风险的高危操作