MUSA Compute Sanitizer

MUSA Compute Sanitizer(简称 mt-compute-sanitizer)是摩尔线程自主研发的 GPU 运行时调试工具,专为 MUSA GPU 应用程序设计,帮助开发者检测并定位越界访问、内存泄漏和 API 调用错误。

核心功能

MUSA Compute Sanitizer 聚焦运行时内存安全检查和错误定位,让 GPU 侧问题更容易复现、理解和修复。

越界检查
检测全局内存访问违规,包括数组下标越界、指针偏移错误等常见问题。
泄漏检查
检测 GPU 内存泄漏,追踪未释放的内存分配;需要时可显式启用 --leak-check=full。
API 错误检查
检查 Runtime 和 Driver API 返回值,识别无效参数、内存不足等调用错误。
错误报告
输出 Kernel 名称、设备编号、非法访问地址和调用栈,帮助快速定位问题代码。

适用场景

从本地开发到持续集成,Sanitizer 可以作为 GPU 应用质量保障链路的一环。

开发调试
开发 MUSA GPU 应用时进行全面内存安全检查,在早期发现并修复潜在问题。
错误排查
当程序崩溃、结果异常但根因不清晰时,用 Sanitizer 快速定位内存错误。
回归测试
在持续集成流程中加入 Sanitizer 检查,降低代码变更引入新内存问题的风险。
发布前验证
正式发布前进行集中检查,确认程序不存在明显的内存安全问题。

推荐排查流程

复现问题
准备可稳定运行的 MUSA 应用或最小复现用例。
运行 Sanitizer
使用 mt-compute-sanitizer 启动程序,并按需打开泄漏检查。
分析报告
根据 Kernel、设备、地址范围和调用栈回到源代码定位问题。
修复并回归
修复访问边界、内存释放或 API 参数问题后再次运行验证。