MI50 实现qwen3.8 27b推理速度到40~50t/s(llama.cpp\ollama)
上一篇介绍了新的ollama版本引入了新的后台llama.cpp分支,在mtp生效后,速度有了较高提升。
但是最近的发现新推理框架还有更多惊喜,通过检索工具,在git上看到一个新的llama.cpp分支,是针对gfx906定向优化的,测试qwen3.8 27b Q4_K_M不开MTP速度直接稳定到35t/s,如果开机MTP后,速度直接来到40+甚至部分场景到50+。
地址:
https://github.com/sixvolts/llamacpp-gfx906-furnace
需要自己解决rom版本和相关库安装和编译,最好到rocm7.1以上,本人测试是7.2.1。
编译命令:
cmake -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx906 \
-DGGML_HIP_GRAPHS=ON -DGGML_CUDA_NO_PEER_COPY=ON \
-DCMAKE_BUILD_TYPE=Release
cmake --build build -j

启动命令(不开MTP)
./llama-server -m ~/models/models/Qwen3.8-27B-Q4_K_M.gguf --mmproj ~/models/models/mmproj-Qwen3.8-27B-f16.gguf -c 16384 -ngl 99 -fa on --main-gpu 0 --host 0.0.0.0 --port 8080

启动开启MTP
./llama-server -m ~/models/models/Qwen3.8-27B-Q4_K_M.gguf --mmproj ~/models/models/mmproj-Qwen3.8-27B-f16.gguf -c 16384 -ngl 99 -fa on --spec-draft-n-max 2 --spec-type draft-mtp --main-gpu 0 --host 0.0.0.0 --port 8080

这个速度相当能打了,毕竟是老架构卡,rocm的支持也比较差,这个项目基本可以让这卡速度再翻一倍,直接换发第二春。
---------------------------------------------------------------------------------------------------------------------
为了方便使用,这边研究了下如何把这个项目用到ollama中,毕竟ollama用起来更顺手一些。
主要思路就是让ollama下载时不要去下载git上的版本,而是转而使用本地下载的llamacpp-gfx906-furnace代码
在ollama源码目录清空build
rm -rf build
然后执行变量ollama之前指定llama.cpp的源码路径
export OLLAMA_LLAMA_CPP_SOURCE=/path/to/llamacpp-gfx906-furnace
再执行llama.cpp编译(增加-DGGML_HIP_GRAPHS=ON)
HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -S . -B build -DGGML_HIP=ON -DGGML_HIP_GRAPHS=ON -DAMDGPU_TARGETS=gfx906 -DGGML_HIP_ROCWMMA_FATTN=ON -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release -- -j$(nproc)
更新到安装目录
sudo systemctl stop ollama
sudo rm -r /lib/ollama
sudo cp -r build/lib/ollama /lib/
sudo cp ollama /bin/
hip库libggml-hip.so需要手动从build/llama-server-local/bin/中拷贝到lib/ollama中,否则不会调用gpu
sudo cp -r build/llama-server-local/bin/libggml-hip.so /lib/ollama/
sudo systemctl start ollama
浙公网安备 33010602011771号