开发者
资源
[object Object][object Object][object Object]

接口简介

msSanitizer工具包含sanitizer接口和mstx扩展接口两种类型。sanitizer接口用于CANN软件栈的检测,与ACL系列接口一一对应。此类接口会在ACL对应接口的功能基础上,额外向工具上报接口调用位置的代码文件和行号信息,使用时需导入sanitizer API头文件和链接动态库,具体请参见《》中的“检测CANN软件栈的内存>导入API头文件和链接动态库”。mstx扩展接口用于用户自定义上报内存池信息,以实现更准确的检测,具体请参见

表 1 msSanitizer工具接口列表

[object Object]undefined
[object Object][object Object][object Object]

功能说明

调用aclrtMalloc接口在Device上分配size大小的线性内存,并通过*devPtr返回已分配内存的指针,并向检测工具上报内存分配信息。实际的内存分配行为和参数含义与aclrtMalloc一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

调用aclrtMallocCached接口在Device上申请size大小的线性内存,通过*devPtr返回已分配内存的指针,并向检测工具上报内存分配信息。该接口在任何场景下,申请的内存都支持cache缓存。实际的内存分配行为和参数含义与aclrtMallocCached一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

调用aclrtFree接口释放Device上的内存,并向检测工具上报内存释放信息。实际的内存释放行为和参数含义与aclrtFree一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

调用aclrtMemset接口初始化内存,将内存中的内容设置为指定值,并向检测工具上报内存初始化信息。实际的内存初始化行为和参数含义与aclrtMemset一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

调用aclrtMemsetAsync接口初始化内存,将内存中的内容设置为指定的值,并向检测工具上报内存初始化信息。此接口为异步接口。实际的内存初始化行为和参数含义与aclrtMemsetAsync一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

调用aclrtMemcpy接口完成内存复制,并向检测工具上报内存复制信息。实际的内存复制行为和参数含义与aclrtMemcpy一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

调用aclrtMemcpyAsync接口完成内存复制,并向检测工具上报内存复制信息。此接口为异步接口。实际的内存复制行为和参数含义与aclrtMemcpyAsync一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

调用aclrtMemcpy2d接口完成矩阵数据内存复制,并向检测工具上报内存复制信息。实际的矩阵数据内存复制行为和参数含义与aclrtMemcpy2d一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

调用aclrtMemcpy2dAsync接口完成矩阵数据内存复制,并向检测工具上报内存复制信息。此接口为异步接口。实际的矩阵数据内存复制行为和参数含义与aclrtMemcpy2dAsync一致。

[object Object]

函数原型

[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

返回0表示成功,返回其它值表示失败。

调用示例

具体操作请参见使用示例的《》中的“检测CANN软件栈的内存>排查步骤里的步骤4”。

[object Object][object Object]

功能说明

手动上报GM内存分配信息。

函数原型

[object Object]
[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

调用示例

[object Object][object Object]

功能说明

手动上报GM内存释放信息。

函数原型

[object Object]
[object Object]

参数说明

表 1 参数说明

[object Object]undefined

返回值

调用示例

[object Object]

mstx接口简介

mstx接口是MindStudio提供的一套扩展接口,它允许用户在应用程序中插入特定的标记,以便在工具进行内存检测时能够更精确地定位特定算子的内存问题。例如,针对二级指针类算子,在不使能mstx接口的情况下,得到的地址空间可能不准确。通过《》的mstxMemRegionsRegister和mstxMemRegionsUnregister接口,可以将准确的地址空间传递给异常检测工具,实现更精准的内存检测。

[object Object]

mstx接口列表

msSanitizer工具调用的mstx接口列表如所示,具体使用情况请参考《mstx_api》。

表 1 msSanitizer工具调用的mstx接口列表[object Object][object Object]

[object Object]undefined

mstx接口的使用

  • msSanitizer工具默认使能mstx接口,允许用户使用mstx接口自定义算子使用的内存空间地址和大小,可识别并快速界定算子的内存问题。

  • mstx当前提供了两种API的使用方式:库文件和头文件,以为例:

    [object Object]
  • [object Object]路径下新增库文件[object Object],地址为:[object Object]

    [object Object]
  • [object Object]路径下,将用户程序编译链接dl库,对应的头文件ms_tools_ext.h地址:[object Object]

    [object Object]
    [object Object]

调用示例

[object Object]