mssanitizer --tool=racecheck ./<kernel_name>_npu
或
mssanitizer --tool=racecheck python3 test_ops_custom.py
./<kernel_name>_npu为NPU侧可执行文件所在路径,可配置为相对路径或绝对路径。
可在自定义算子调用脚本test_ops_custom.py所在路径执行命令,或者配置为脚本的相对路径或绝对路径。
竞争检测工具会输出一系列信息,详细说明有关算子各 PIPE 之间存在的内存数据竞争访问风险。
========= ERROR: Potential RAW hazard detected at core0 in UB : // 竞争事件类型、AICore信息以及异常内存块信息 ========= PIPE_V Write at RAW()+0xf280 in add_custom.cpp:520 // 竞争事件的详细信息,包含该事件所在的 PIPE、操作类型、内存访问起始地址以及代码执行所在文件名及行号 ========= PIPE_MTE3 Read at RAW()+0xf280 in add_custom.cpp:498
以上示例中表示了AICore 0中存在对UB的先写后读竞争风险,PIPE_V 流水中存在对“Oxf280”地址的写入操作事件,该操作对应算子实现文件add_custom.cpp中的第520行,PIPE_MTE3流水中存在对“0xf280”地址的读取操作事件,该操作对应算子实现文件add_custom.cpp中的第498行。