常见问题
导入时报 No module named 'tvm'
确认当前 shell 使用的是安装 wheel 的 venv:
which python
python -m pip show tvm-musa
pip show 应输出 tvm-musa 的版本和安装路径。若没有输出,说明当前 Python 环境没有安装 TVM-MUSA M1000,请回到安装与验证重新安装。
导入时报 cannot import name 'core' from 'tvm_ffi'
通常是 tvm_ffi 的 Python 包和 native 扩展不匹配,或者 PYTHONPATH 同时指到了源码树和已安装 wheel。处理方法:
unset PYTHONPATH
cd /path/to/tvm-musa-m1000
python -m pip uninstall -y tvm apache-tvm tvm-musa apache-tvm-ffi
python -m pip install ./wheels/apache_tvm_ffi-*.whl
python -m pip install ./wheels/tvm_musa-*.whl
两个 wheel 必须来自同一个发布包,不要混用不同版本的 tvm 和 tvm-ffi。
报 libmudnn.so.3: cannot open shared object file
TVM 运行时会加载 muDNN。确认 /usr/local/musa/lib 在动态库搜索路径中:
export LD_LIBRARY_PATH=/usr/local/musa/lib:${LD_LIBRARY_PATH:-}
然后重新执行推理脚本。通过脚本、cron 或非交互式 SSH 启动时,登录 shell 的 LD_LIBRARY_PATH 可能不会生效,需要在启动脚本里显式导出。
报 mcc: command not found
MUSA 编译器 mcc 位于 /usr/local/musa/bin。加入 PATH:
export PATH=/usr/local/musa/bin:$PATH
报 mp22_cv_pipeline requires a MUSA target or an active target scope
mp22_cv_pipeline 必须在 MUSA target 下执行。使用 relax.get_pipeline 时显式传入 target:
pipeline = relax.get_pipeline("musa_mp22_cv", target=target)
或者在 with target: / tvm.target.Target.current() 的上下文中调用。
Torch-MUSA 环境不可用
示例构建需要 Moore Threads 发布的 torch、torch_musa 和 torchvision。先确认当前 venv 中的 Torch-MUSA 环境:
python -c "import torch, torch_musa, torchvision; print(torch.musa.is_available())"