MENU

修复 AutoDL MTT S4000 Vulkan ICD

July 29, 2026 • Nico的日常生活阅读设置

去年摩尔线程大会的时候发了 AutoDL 这个平台的算力券,可以用来抵扣 S4000 机器的费用,当时发现 OpenCL 是能正常工作的,但是 Vulkan ICD 有问题,导致 Vulkan 无法使用,找客服问也是没有有效答复,最近又开了一台测点东西,于是手动修了下

环境信息

  • GPU: MTT S4000(48GB),vendorID 0x1ed5,deviceID 0x0106
  • 驱动: MUSA Driver 2.7.0,mthreads-gmi 1.14.0
  • ICD 库: /usr/lib/x86_64-linux-gnu/musa/libVK_MT.so
  • ICD 配置: /etc/vulkan/icd.d/musaicdconf.json

主要问题是 libVK_MT.so 依赖 libSPIRV-Tools-shared.so,但系统上没有这个库,导致 Vulkan loader 加载 ICD 失败, vulkaninfo 报 ERROR_INCOMPATIBLE_DRIVER。

所以只需要手动编译一个塞回去就可以了:

cd /tmp
git clone --depth 1 https://github.com/KhronosGroup/SPIRV-Tools.git spirv-tools-build
cd spirv-tools-build
git clone --depth 1 https://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc) SPIRV-Tools-shared
cp source/libSPIRV-Tools-shared.so /usr/local/lib/
ldconfig

验证:

ldd /usr/lib/x86_64-linux-gnu/musa/libVK_MT.so | grep spirv
# 应输出: libSPIRV-Tools-shared.so => /usr/local/lib/libSPIRV-Tools-shared.so
VK_ICD_FILENAMES=/etc/vulkan/icd.d/musaicdconf.json vulkaninfo --summary

然后跑了 vkpeak 可以看看这里 https://vkdb.niconiconi.us/gpus/24

Leave a Comment