msSanitizer工具是基于昇腾AI处理器的异常检测工具,包含单算子开发场景下的内存检测、竞争检测、未初始化检测和同步检测四个子功能。 本文档基于入门教程中开发的简易加法算子,演示 msSanitizer 工具的核心功能,帮助初学者直观感受其为算子开发过程带来的高效与便捷。 [object Object]
本章节以您已完成《》的全流程操作为前提;若尚未体验,建议先完成该指南以获得更佳的学习效果。
请严格按照《》完成环境安装与工作区配置。即使您已具备类似环境,也需按该指南重新执行一遍,以确保所有依赖组件、环境变量等完整一致。
执行以下命令,若输出"All is OK",则表明所需 Python 包及其版本均满足规范:
[object Object]
msSanitizer 工具用于检测内存越界、竞争条件、未初始化变量及同步异常等严重运行时缺陷,帮助开发者高效定位隐蔽的运行时错误。建议先跟随操作体验效果,原理部分可稍后阅读。
为启用检测能力,需在 Kernel 侧的 CMakeLists.txt 首行插入 sanitizer 编译选项,注入检测桩代码:
[object Object]
修改 op_kernel/add_custom.cpp 中的 CopyOut 函数,具体修改如下(将DataCopy内存拷贝长度增加一倍,触发 “非法读取”):
[object Object]
[object Object]
[object Object]
工具输出类似如下错误报告:
[object Object]
[object Object]
工具输出如下错误报告:
[object Object]
[object Object]
工具输出如下错误报告:
[object Object]
执行如下命令:
[object Object]