环境准备
本文档适用于摩尔线程 MTT M1000(aarch64)设备。开始前请确认设备已安装 MUSA SDK 5.1.x/5.2.x,并且 mcc、muDNN 和 MUSA runtime 可用。
MUSA SDK、驱动和系统组件的安装不在本文展开,请按摩尔线程官方文档完成;本文只做环境自检。
环境要求
| 项目 | 要求 |
|---|---|
| GPU | 摩尔线程 MTT M1000 |
| 架构 | aarch64 |
| 操作系统 | Ubuntu 22.04 |
| MUSA SDK | 5.1.x/5.2.x,包含 driver/runtime、mcc 和 muDNN |
| Python | 3.10.x |
| PyTorch / Torch-MUSA / TorchVision | 构建示例时需要,在 venv 中安装 Moore Threads 发布的 aarch64 包 |
| 磁盘 | 建议预留 4 GB 以上(包含 PyTorch、Ultralytics 和模型文件) |
| 权限 | 普通用户即可;建议安装到独立 venv |
Step1 确认 GPU 与驱动
mthreads-smi
能正常输出 GPU 信息即表示驱动就绪。若需要确认设备型号,使用 MUSA SDK 自带的 musaInfo:
/usr/local/musa/bin/musaInfo
musaInfo 输出中应包含 Name: M1000,并可同时查看 Driver Version 和 Runtime Version。若两条命令都无法识别设备,请先完成 MUSA 驱动安装,不要继续后续步骤。
Step2 确认 MUSA SDK 版本
readlink /usr/local/musa
grep -m1 -A2 musa_toolkits /usr/local/musa/version.json
预期输出:
musa-5.2.0
"musa_toolkits": {
"version": "5.2.0",
version.json 中的 musa_toolkits.version 是 toolkit 版本的权威来源。dpkg -l | grep musa 显示的是 BSP 元包版本,不能用来判断 toolkit 版本。
Step3 确认 mcc 与 MUSA runtime
command -v mcc
ls -l /usr/local/musa/lib/libmusart.so*
预期 mcc 位于 /usr/local/musa/bin 下,且输出中包含 libmusart.so.5。如果 mcc 不在 PATH 中:
export PATH=/usr/local/musa/bin:$PATH
Step4 确认运行时库路径
printf 'LD_LIBRARY_PATH=%s\n' "$LD_LIBRARY_PATH"
输出中应包含 /usr/local/musa/lib。交互式登录 shell 通常已自动设置;通过脚本、cron 或非交互式 SSH 运行时可能为空,需要在程序启动前显式导出:
export LD_LIBRARY_PATH=/usr/local/musa/lib:${LD_LIBRARY_PATH:-}
TVM 运行时会加载 muDNN 的动态库。缺少该路径时,常见报错是 libmudnn.so.3: cannot open shared object file。
Step5 确认 Python 与 venv
python3 --version
python3 -m pip --version
python3 -m venv /tmp/_tvm_musa_venv
/tmp/_tvm_musa_venv/bin/python -V
预期 Python 版本为 3.10.x。如果系统默认 python3 不是 3.10,请改用 python3.10 创建 venv。venv 不可用时,需要先安装 python3.10-venv(需要 root 或 sudo 权限)。
示例构建所需的 torch、torch_musa 和 torchvision 也安装在这个 venv 中,并使用 Moore Threads 发布的版本,不要用 upstream PyTorch 替换。
建议的环境变量
为避免每次登录重新设置,可将以下内容加入 ~/.bashrc:
export MUSA_HOME=/usr/local/musa
export PATH="$MUSA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$MUSA_HOME/lib:${LD_LIBRARY_PATH:-}"
环境自检通过后,继续安装与验证。

