ROCm 7.14 与 ROCm 10.0:llama.cpp Q8 160K 双卡实测
-
下午摸鱼的时候无意中发现 ROCm发布10.0了 (其实本质上是7.15
),不过看他版本号跨度这么大,想必定是有什么过人之处,于是让Codex替我盘盘他。省流:
与 ROCm 7.14 没啥差别。
测试平台:
GPU:Radeon AI PRO R9700 32GB + Radeon RX 9070 16GB
设备顺序:HIP_VISIBLE_DEVICES=1,0
功耗上限:R9700 210W,RX 9070 200W
llama.cpp:d3371929bb1b6982cf73f1e54156d3d426cd80a1
ROCm 7 镜像:local/llama.cpp-rocm:7.14.0-gfx1201-rccl
ROCm 10 镜像:local/llama.cpp-rocm:10.0.0-gfx1201-rccl
编译参数:GGML_HIP=ON、GGML_HIP_RCCL=ON、GGML_HIP_GRAPHS=ON、AMDGPU_TARGETS=gfx1201
模型:Qwen3.8-27B HauhauCS-Aggressive Q8_K_P
mmproj:BF16
KV:FP16
上下文:160K、parallel=1
双卡:split-mode=tensor、tensor-split=65,35、RCCL
MTP:n-max=3
每轮请求:160K token输入,128 token输出,cache_prompt=false结论
核心指标 ROCm 7.14 ROCm 10.0 ROCm 10 相对变化 160K 冷 Prefill 370.759 t/s 370.740 t/s -0.005% Decode 35.721 t/s 37.281 t/s +4.366% 端到端墙钟 445.170 秒 445.058 秒 -0.025% - Prefill 持平。 两版均值仅差 0.020 t/s,远小于两轮自然波动,不构成性能差异。
- Decode 有小幅、稳定收益。 ROCm 10 两轮分别为 37.291、37.271 t/s;ROCm 7 两轮为 35.717、35.726 t/s,提升约 4.37%。
- MTP 行为一致。 四轮接受率均为 89/113,即 78.761%,因此 Decode 差异不是由接受率变化造成的。
- 端到端无收益。 ROCm 10 平均墙钟只少 0.111 秒;对一次约 7 分 25 秒的请求,这一差异不可感知。
-
原始结果
运行时 轮次 Prefill t/s Decode t/s Prompt 秒 Decode 秒 墙钟秒 MTP 接受率 ROCm 7.14 1 372.374 35.717 439.644 3.500 443.323 78.761% ROCm 7.14 2 369.145 35.726 443.490 3.499 447.016 78.761% ROCm 10.0 1 371.095 37.291 441.159 3.352 444.728 78.761% ROCm 10.0 2 370.384 37.271 442.006 3.354 445.389 78.761% -
启动参数:
docker run -d \ --name llama-ab \ --device=/dev/kfd \ --device=/dev/dri \ --group-add 44 \ --group-add 991 \ --ipc=host \ --shm-size=16g \ --security-opt seccomp=unconfined \ -e HIP_VISIBLE_DEVICES=1,0 \ -e GGML_CUDA_P2P=1 \ -e NCCL_DEBUG=WARN \ -p 8080:8080 \ -v /home/bunsei/models/GGUF/Qwen3.8-27B-Q8_K_P:/models:ro \ -v /home/bunsei/.config/llama.cpp/api-key:/run/secrets/llama-api-key:ro \ local/llama.cpp-rocm:7.14.0-gfx1201-rccl \ --model /models/Qwen3.8-27B-Uncensored-HauhauCS-Aggressive-Q8_K_P.gguf \ --mmproj /models/mmproj-BF16.gguf \ --gpu-layers all \ --gpu-layers-draft all \ --fit off \ --ctx-size 163840 \ --parallel 1 \ --batch-size 2048 \ --ubatch-size 512 \ --kv-unified \ --cache-type-k f16 \ --cache-type-v f16 \ --cache-type-k-draft f16 \ --cache-type-v-draft f16 \ --kv-offload \ --flash-attn on \ --split-mode tensor \ --tensor-split 65,35 \ --spec-type draft-mtp \ --spec-draft-n-max 3 \ --cache-idle-slots \ --ctx-checkpoints 8 \ --checkpoint-min-step 8192 \ --image-min-tokens 1024 \ --reasoning-format deepseek \ --host 0.0.0.0 \ --port 8080 \ --ui
