请参考环境准备,完成相关环境变量的配置。
用户可根据需求自行选择是否添加编译选项,具体请参见表1。
是否添加编译选项 |
指令检测范围 |
异常检测范围 |
适用场景 |
---|---|---|---|
不添加 |
与GM相关的搬运指令 |
|
该场景支持的功能上有限制,仅适用于对算子内存异常中的非法读写和非对齐访问异常的快速定界。 |
添加 |
全量指令 |
|
通过不添加编译选项的功能快速定位异常算子后,再添加编译选项对异常算子进行全量检测,具体操作请参见开启全量检测。 |
target_compile_options(${smoke_testcase}_npu PRIVATE -O2 -std=c++17 --cce-enable-sanitizer -g )
增加 --cce-enable-sanitizer 选项代表使能异常检测。
增加 -g 选项使编译器生成定位信息,将会在异常报告输出时显示异常发生的具体位置(文件名、行号以及调用栈等信息)。
git clone https://gitee.com/ascend/samples.git -b 8.0.RC2
target_link_options(${smoke_testcase}_npu PRIVATE --cce-fatobj-link --cce-enable-sanitizer )
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()
git clone https://gitee.com/ascend/samples.git -b v1.1-8.1.RC1.beta1
1 | bash install.sh -v Ascendxxxyy # xxxyy为用户实际使用的具体芯片类型 |
1 | cd CustomOp |
1 | add_ops_compile_options(ALL OPTIONS -sanitizer) |
完成环境准备和添加编译选项(可选)后,请参见启用内存检测、启用竞争检测和启用未初始化检测章节使能msSanitizer工具的相关功能。