Skip to main content

MUSA Compute Sanitizer 快速入门

前置条件

确保已安装以下组件:

# 检查 MUSA 驱动(任选一种方式)
sudo dpkg -s musa # 方式 1:查看驱动包状态
musa_version_query # 方式 2:查询版本
musaInfo # 方式 3:查看 GPU 信息

# 检查 Compute Sanitizer
mt-compute-sanitizer --version

第一次运行

准备示例程序

假设您有一个 MUSA 程序 vectorAdd

# 编译程序(-g 选项生成调试信息,用于 Sanitizer 定位问题)
mcc -g -O2 vectorAdd.cu -o vectorAdd

如果没有现成的 MUSA 程序,可以参考 MUSA SDK 文档中的示例代码。

使用 Sanitizer 运行

mt-compute-sanitizer ./vectorAdd

查看输出

无错误输出:

========= COMPUTE-SANITIZER
==PROF== './vectorAdd' started, pid:123456
==PROF== './vectorAdd' exit, exit code(0)
========= ERROR SUMMARY: 0 errors

有错误输出:

========= COMPUTE-SANITIZER
==PROF== './vectorAdd' started, pid:123456
==PROF== './vectorAdd' exit, exit code(0)
========= Device memory out of bounds. Address: 0x...
========= ERROR SUMMARY: 1 error

下一步

如果无错误 (0 errors)

  1. 启用泄漏检查,检查内存泄漏
  2. 查看最佳实践,学习更多场景
  3. 使用 Moore Perf 分析性能

如果有错误 (>0 errors)

  1. 查看错误详情,理解错误类型
  2. 根据场景查找解决方案
  3. 修复并重新运行,验证修复