工具简介
工具概述
mssanitizer是基于昇腾AI处理器的一个异常检测工具,包含了内存检测和竞争检测两个子工具。
- 内存检测:工具可以在用户开发算子的过程中,协助定位非法读写、多核踩踏、非对齐访问、内存泄漏以及非法释放等内存问题。同时工具也支持对CANN软件栈的内存检测,帮助用户定界软件栈内存异常发生的模块。
 - 竞争检测:工具可以协助用户定位由于竞争风险可能导致的数据竞争问题。
 msSanitizer工具不支持对多线程算子、二级指针类算子及使用了掩码的向量类计算指令进行检测。
 
- 通过AscendCL单算子调用:单算子API执行的场景。
 - 第三方框架算子调用:Pytorch框架的场景。
 
工具特性
mssanitizer通过不同子工具提供了不同类型的检测功能,目前已支持的功能如下:
使用场景  | 
使用说明  | 
使用示例  | 
|---|---|---|
算子内存检测  | 
msSanitizer支持内核调用符调用的Ascend C算子(包括Vector和Cube算子)内存和竞争的检测,可参考检测内核调用符方式的Ascend C算子。  | 
|
算子竞争检测  | 
||
CANN软件栈的内存检测  | 
支持CANN软件栈内存检测,详细可参考检测CANN软件栈的内存。  | 
命令汇总
可以通过运行以下命令来调用mssanitizer工具,详细的参数选项及其默认值,请参考表2和表3。
mssanitizer <options> <user_program> <user_options>
参数名称  | 
参数描述  | 
参数取值  | 
是否必选  | 
|---|---|---|---|
-v,--version  | 
查询mssanitizer工具版本。  | 
-  | 
否  | 
-t,--tool  | 
指定异常检测的子工具。  | 
  | 
否  | 
--log-file  | 
指定检测报告输出到文件。  | 
{file_name},如配置为test_log。  说明:  
  | 
否  | 
--log-level  | 
指定检测报告输出等级。  | 
  | 
否  | 
-h,--help  | 
输出帮助信息。  | 
-  | 
否  | 
结果件说明
结果件名称  | 
说明  | 
|---|---|
mssanitizer_{TIMESTAMP}_{PID}.log  | 
msSanitizer工具运行过程中,在当前路径下生成的工具日志,TIMESTAMP为当前时间戳,PID为当前检测工具的PID。  | 
kernel.{PID}.o  | 
msSanitizer工具运行过程中,在当前路径下生成的算子缓存文件,PID为当前使用的检测工具的PID,该算子缓存文件用于解析异常调用栈。 
  | 
父主题: 使用mssanitizer检测算子异常