AMD Instinct MI50 在ROCm7.1.1下编译运行llama.cpp、ollama
今天去amd官网闲逛,发现MI50的驱动居然已经更新到了7.1.1,心情激动了下,立马下载安装的试试,结果是一波三折。
下载文件:
amdgpu-install_7.1.1.70101-1_all.deb
安装
sudo apt install ./amdgpu-install_7.1.1.70101-1_all.deb
提示需要通过amdgpu-install安装
sudo amdgpu-install ./amdgpu-install_7.1.1.70101-1_all.deb
等待安装完成
--安装驱动更新后的依赖库
sudo apt update
sudo apt upgrade
补充安装:
sudo apt install rocm-libs
查看ROCm版本
sudo update-alternatives --display rocm
zt@zt:~/Downloads/tensorfiles$ sudo update-alternatives --display rocm
rocm - auto mode
link best version is /opt/rocm-7.1.1
link currently points to /opt/rocm-7.1.1
link rocm is /opt/rocm
/opt/rocm-7.1.1 - priority 801794908
编译llama.cpp (这边使用的是已有的B7227)
HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \
cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx906 -DGGML_HIP_ROCWMMA_FATTN=ON -DCMAKE_BUILD_TYPE=Release \
&& cmake --build build --config Release -- -j 12
编译通过,尝试运行:
./llama-server -m ~/.lmstudio/models/lmstudio-community/Qwen3-VL-30B-A3B-Instruct-GGUF/Qwen3-VL-30B-A3B-Instruct-Q4_K_M.gguf --n-gpu-layers 9999 --main-gpu 0 --split-mode none --port 8081
可以运行,打开浏览器,打开地址http://127.0.0.1:8081,并开始聊天。
不出意外的话,就出意外了,一旦确认录入,就开始报错:
rocBLAS error: Cannot read /opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary.dat: No such file or directory for GPU arch : gfx906
List of available TensileLibrary Files :
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx1101.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx1201.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx942.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx1200.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx1100.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx1150.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx950.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx1151.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx908.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx1030.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx90a.dat"
"/opt/rocm-7.1.1/lib/rocblas/library/TensileLibrary_lazy_gfx1102.dat"
Aborted
按之前的7.0.2的经验,应该是缺失TensileLibrary文件,进入/opt/rocm-7.1.1/lib/rocblas/library/一看,果然缺失gfx906的文件。
AMD这是驱动支持了MI50,但是ROCm的支持太监了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
坑爹呢!
既然来都来到这步了,尝试把原来7.0.2安装使用的6.4.4版本的ROCBLAS文件中提取gfx906相关文件,全部拷贝到/opt/rocm-7.1.1/lib/rocblas/library/中,然后又尝试了运行了一次,这次都正常了。
速度上并没有明显变化(废话,之前提示本来主要是rocm6.4带入的,没有官方新的TensileLibrary发布出来还想提升简直白日做梦)
重新修改了下Ollama的源码,将ROCm变更到7.1.1,编译也能通过,能正常使用。
凑合用吧!
浙公网安备 33010602011771号