去年摩尔线程大会的时候发了 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
版权属于:Kiritake Kumi (Niconeiko) ,本文所引用的第三方材料版权归属为:第三方材料的所有者
本文链接:https://blog.yazawaniko.com/index.php/archives/339/
除特殊标注以及**影像内容**外,均使用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议 ,影像内容请务必联系确认是否可以转载使用