1200买的mi50单卡本来已经闲置,但是看见rocm7的提升,手又痒了,折腾一下,安装rocm7+llama.cpp来跑qwen3.6。在开始安装前,表示对纳兰泽雨大神的致敬(https://www.bilibili.com/opus/1062708349420699672?spm_id_from=333.1387.0.0 和https://www.bilibili.com/opus/1062709216989413379?spm_id_from=333.1387.0.0 ),如果你不追求运行qwen3.6,也不追求rocm7,可以直接使用这2个教程,rocm6+vllm+模型,我后面的教程也不用看了。如果要按我的教程来,这里要改一下原贴的run参数:
以下的命令不要直接复制粘贴进命令窗口,中间有空行!!!
docker network create vllm-net (建立专用网络,后面也要用)
docker run -it --rm \
--shm-size=2g \
--device=/dev/kfd \
--device=/dev/dri \
--group-add video \
--network=vllm-net \
-p 0.0.0.0:8000:8000 \
--name qwen3-int4 \ (改成你想要的容器名字)
-v /home/lyy/model/qwen3/:/model \ (改成你的路径,其他千万不要改)
nalanzeyu/vllm-gfx906 \
vllm serve /model \
--max-model-len 8192
--enable-prefix-caching
但是经测试此版本的vllm无法运行qwen3.6,所以我选择重新安装。我后面的教程也是基于大神提供的思路,不在主机上直接安装rocm,因为显卡可以直通docker,所以在docker中直接拉取带mi50的rocm7+llama.cpp的镜像。现在mi50的7.2的镜像也有了(https://hub.docker.com/r/mxxm/llama-mi50?utm_source=chatgpt.com ),但是不确定稳定性,所以我还是选择拉取amd官方的ROCm7 + Ubuntu22.04 + llama.cpp 的镜像(https://rocm.docs.amd.com/projects/llama-cpp/en/docs-25.09/install/llama-cpp-install.html?utm_source=chatgpt.com )这里有个坑,amd官方rocm7不支持mi50了,所以镜像中没有MI50(gfx906) 的 Tensile文件了,所以必须得手动添加进去,刚好我以前装过纳兰泽雨的docker镜像,所以可以直接从这个vllm的容器中复制到rocm7的容器中。 (所以如果你没有装过纳兰泽雨的镜像,得先按他的教程从安装驱动到run走一遍,或者参考AMD MI50安装ROCm7.0.2教程(较6.3性能提升20-30%),下载后复制到容器中)
以下的命令不要直接复制粘贴进命令窗口,中间有空行!!!
先新建文件夹,放入模型的gguf mkdir -p ~ model 放入你想要的gguf 然后拉取镜像,命令:docker pull rocm/llama.cpp:llama.cpp-b6356_rocm7.0.0_ubuntu22.04_full 然后run:
docker run -it \ --name llama-rocm7 \
--network=vllm-net \ (注意,这里是run纳兰泽雨镜像时提前建立的专用网络)
--device=/dev/kfd \
--device=/dev/dri \
--group-add video \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
--ipc=host \
--shm-size=16G \
--dns=8.8.8.8 \
--dns=1.1.1.1 \
-v /home/lyzyy/model/qwen3.6:/models \
-p 8081:8081 \
--entrypoint /bin/bash \
rocm/llama.cpp:llama.cpp-b6356_rocm7.0.0_ubuntu22.04_full 成功后应该显示:root@xxxxxxxx:/app# ,然后验证:rocminfo 看看rocm7是否安装成功,得看到有gfx906字样。 下一步:验证 llama.cpp HIP backend,现在在容器里执行:/app/llama-cli -h,重点看输出里是否有:HIP,或者ROCm,应该是一大段信息。成功后,这里又来一个坑,amd官方镜像里的llama.cpp版本无法运行qwen3.6,还得重新拉取:新开一个ssh,docker exec -it llama-rocm7 bash 进入容器,先安装工具:
apt install -y \
iputils-ping \
wget \
curl \
git \
unzip \
cmake \
build-essential
然后clone 最新 llama.cpp,
cd /app
git clone --depth 1 https://github.com/ggml-org/llama.cpp.git latest
cd /app/latest 然后:设置 MI50 gfx906 环境变量
export HSA_OVERRIDE_GFX_VERSION=9.0.6
export GGML_HIP_ARCH=gfx906
编译:
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 -j$(nproc)
编译成功后验证:./build/bin/llama-cli -h,显示以下正常:
Device 0: , gfx906:sramecc-:xnack- (0x906), VMM: no, Wave Size: 64, VRAM: 32752 MiB
不要关闭当前容器,现在请新开一个ssh终端,进入纳兰泽雨的容器,docker exec -it qwen3-int4 bash(注意,这里qwen3-int4是我给纳兰泽雨镜像设置的名字,你要改成你的),找到所有带gfx906的文件,在开一个ssh,系统根目录下建一个文件夹:mkdir -p ~/gfx906-tensile,把刚才找到的文件复制进来,或者从(https://archlinux.org/packages/extra/x86_64/rocblas/)里面下载到gfx906-tensile文件夹里方法见上面安装rocm7.0.2的教程视频,然后把 Tensile 复制到新 llama.cpp 容器:
docker cp \
~/gfx906-tensile/. \
llama-rocm7:/opt/rocm/lib/rocblas/library/
开始跑模型
进入容器:docker exec -it llama-rocm7 bash
/app/latest/build/bin/llama-server \
-m /models/Qwen3.6-35B-A3B-UD-Q5_K_M.gguf \
-ngl 99 \
--flash-attn on \
-c 65536 \
-b 2048 \
-ub 512 \
-t 4 \
--threads-batch 4 \
--cache-ram 4096 \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--temp 0.7 \
--top-p 0.8 \
--min-p 0.05 \
--host 0.0.0.0 \
--port 8081
直接在浏览器中输入:http://192.168.100.2:8081 (换成你的ip)就可以体验了。这是llama.cpp自带的网页对话界面还是很方便的,openwebui都可以不用了。因为是上班摸鱼写的,所以无法出视频,也不会剪辑,所以出个文字教程供大家参考。每个人在执行代码的过程中情况都不一样,报错是肯定的,这里也只是大概得整体思路,报错的话直接问AI就行了。