7900XTX + llama.cpp Qwen3.6 27B TurboQuant + MTP 测试结果分享
-
系统 于 取消固定此主题
-
T terry 于 将此主题固定
-
T terry 于 引用了 此主题
-
Q Qi Kaiser 于 引用了 此主题
-
系统 于 取消固定此主题
-
T terry 于 将此主题固定
-
最近刚入手了 7900xtx,本地跑llm, 为opencode, pi.dev 提供本地llm api 解决客户的代码隐私焦虑。
花了亿点点时间跑了下性能,结果如下,供各位参考。流水账,先不贴llama-bench 结果了,太多。
先发 老特 这里了,回头有空了再发个reddit
回头等DFlash + HIP(ROCM) 成熟了再跑下看看。1. Rocm + turboquant,
repo: https://github.com/domvox/llama.cpp-turboquant-hip
性能: 256k上下文, pp: 970t/s tg: 29t/s
Comment:目前测试,除了反应没在线api 快,生成代码的质量不比在线api 差。~/llama.cpp-turboquant-hip/rocm/llama-server -m ~/model/llm/qwen3.6-27b/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-Q4_K_P.gguf --mmproj ~/model/llm/qwen3.6-27b/mmproj-Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-f16.gguf --alias qwen3.6-27b --host 0.0.0.0 --port 8080 --n-gpu-layers 999 --ctx-size 262144 --batch-size 2048 --ubatch-size 768 --threads 8 --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.00 --presence_penalty 1.5 --cache-type-k turbo3 --cache-type-v turbo32. Vulkan
repo: https://github.com/ggml-org/llama.cpp
性能: 256k上下文, kv-cache-type: Q4_0, pp: 730t/s tg: 47t/s, (Q8_0会慢一丢丢)~/Downloads/llama.cpp/vulkan/bin/llama-server -m ~/model/llm/qwen3.6-27b/Qwen3.6-27B-Q4_K_M-mtp.gguf --alias qwen3.6-27b --cache-type-k q4_0 --cache-type-v q4_0 -np 1 -c 262144 --temp 0.7 --top-k 20 -ngl 99 --port 8080 --host 0.0.0.0 -fa 1 -ub 2562.1 Vulkan + turboquant,
repo: https://github.com/TheTom/llama-cpp-turboquant
性能: 256k上下文, kv-cache-type: Q4_0, tg: 10t/s, decoding 时 GPU 使用率不到 30%,速度拉跨。开MTP 也 差不多。~/llama.cpp/build/bin/llama-server -m ~/model/llm/qwen3.6-27b/Qwen3.6-27B-Q4_K_M-mtp.gguf --alias qwen3.6-27b --cache-type-k turbo3 --cache-type-v turbo3 -np 1 -c 262144 --temp 0.7 --top-k 20 -ngl 99 --port 8080 --host 0.0.0.0 -fa 1 -ub 2563. Vulkan + MTP
repo/pr:
https://github.com/ggml-org/llama.cpp/pull/22673
性能: 256k上下文, kv-cache-type: Q4_0, pp: 730t/s tg: 67t/s, VRAM 占用跟不开MTP 差不多,~/Downloads/llama.cpp/vulkan/bin/llama-server -m ~/model/llm/qwen3.6-27b/Qwen3.6-27B-Q4_K_M-mtp.gguf --alias qwen3.6-27b --spec-type mtp --spec-draft-n-max 3 --cache-type-k q4_0 --cache-type-v q4_0 -np 1 -c 262144 --temp 0.7 --top-k 20 -ngl 99 --port 8080 --host 0.0.0.0 -fa 1 -ub 2563. Rocm + MTP
repo/pr: https://github.com/ggml-org/llama.cpp/pull/22673
性能: 4k上下文, kv-cache-type: Q4_0, pp: 730t/s tg: 67t/s
Comment: Rocm的backend + MTP 有问题,VRAM 在开始 对话时 暴增 5G,具体原因不明,所以 最多8k上下文, Rocm目前的好处 是由 turbo quant 集成。~/llama.cpp/build/bin/llama-server -m ~/model/llm/qwen3.6-27b/Qwen3.6-27B-Q4_K_M-mtp.gguf --alias qwen3.6-27b --spec-type mtp --spec-draft-n-max 3 --cache-type-k q4_0 --cache-type-v q4_0 -np 1 -c 4096 --temp 0.7 --top-k 20 -ngl 99 --port 8080 --host 0.0.0.0 -fa 1 -ub 2564.Hipfire (DFlash) v0.1.20
repo: https://github.com/Kaden-Schutt/hipfire
性能: 4k上下文, pp: 930t/s tg: 46t/s,
Comment: 只能chat聊天,速度很快,默认开启 DFlash, 但是 上下文8k 以上就会卡死,或者崩溃, 没法给 opencode 或者pi 使用,等三个月半年再看看。5. 老卡 P40 24G,
repo: https://github.com/TheTom/llama-cpp-turboquant
pr: https://github.com/ggml-org/llama.cpp/pull/22673不开MTP
性能: 196k 上下文,tg: 10t/s,
~/llama.cpp-mtp/build/bin/llama-server -m ~/model/llm/qwen3.6-27b/Qwen3.6-27B-Q4_K_M-mtp.gguf --alias qwen3.6-27b --cache-type-k turbo3 --cache-type-v turbo3 -c 196608 --temp 0.7 --top-k 20 -ngl 99 --port 8080 --host 0.0.0.0 -fa 1 -ub 256开MTP
性能: 196k上下文,tg: 17t/s,
~/llama-cpp-turboquant/build/bin/llama-server -m ~/model/llm/qwen3.6-27b/Qwen3.6-27B-Q4_K_M-mtp.gguf --alias qwen3.6-27b --spec-type mtp --spec-draft-n-max 3 --cache-type-k turbo3 --cache-type-v turbo3 -np 1 -c 196608 --temp 0.7 --top-k 20 -ngl 99 --port 8080 --host 0.0.0.0 -fa 1 -ub 256
opencode + deepseek v4 帮我跑了一把,结果如下
- 如果追求性能 Vulkan + MTP 效果最好,
- MTP的性能不是恒定的,不同的上下文或者任务,可能存在很大的差别,你让他写小说,规划日常,写代码,性能提升可能会不一样,跑分仅供参考。
- MTP 目前只能单个对话session,没法并行。
- Vuklan 后端对 Turbo quant的支持还有存在问题, GPU利用率不够,还得优化。
- Rocm + MTP 存在 VRAM问题,会无端暴涨5G占用,导致跑起来最多8k多一点。
llama.cpp master branch 测试结果 (2026-6-2)
由于最近 PR22673 merge到了主分支,今天正好有空重新跑了下,结果差不多。
系统配置
- GPU:AMD Radeon RX 7900 XTX(24GB 显存)
- 构建:llama.cpp 9470(Vulkan + ROCm 后端)
最佳参数
参数 最佳值 后端 Vulkan MTP --spec-type draft-mtp --spec-draft-n-max 2子批次大小 -ub 512批次大小 -b 512闪存注意力 -fa auto(默认)KV 缓存 -ctk q4_0 -ctv q4_0GPU 层数 -ngl 999(全部)线程数 默认(自动) 上下文大小 最高 -c 262144(256K)原始 GPU 基准测试(llama-bench,pp512/tg128)
子批次大小扫描
ubatch ROCm pp(t/s) ROCm tg(t/s) Vulkan pp(t/s) Vulkan tg(t/s) 64 614 29 511 40 128 703 29 768 40 256 910 29 844 40 512 975 29 908 40 1024 977 29 908 40 KV 缓存类型(性能影响可忽略)
KV 类型 ROCm pp ROCm tg Vulkan pp Vulkan tg f16 975 29 907 40 q8_0 973 28 904 40 q4_0 974 28 903 39 q4_1 - - 905 39 iq4_nl - - - - 闪存注意力
flash-attn ROCm pp ROCm tg Vulkan pp Vulkan tg 开启 976 29 908 40 关闭 964 29 902 40 自动 977 29 908 40 批次大小扫描
batch ROCm pp ROCm tg Vulkan pp Vulkan tg 256 914 29 832 40 512 976 29 907 40 1024 976 29 904 40 2048 976 29 905 40 4096 977 29 907 40 服务器基准测试(llama-server,7 token 提示词,100 生成 token)
Vulkan 后端
配置 pp(t/s) tg(t/s) 草稿接受数 接受率 基线(无推测解码) 39.5 39.7 - - MTP n=2 29.4 63.6 58/81 72% MTP n=4 31.2 62.1 52/75 69% MTP n=8 29.4 60.5 45/68 66% MTP n=16 28.1 58.0 38/60 63% MTP n=32 27.3 53.2 32/55 58% ROCm 后端
配置 pp(t/s) tg(t/s) 草稿接受数 接受率 基线(无推测解码) 50.8 29.5 - - MTP n=2 24.2 46.2 58/81 72% MTP n=8 23.1 43.5 36/93 39% MTP n=16 22.5 41.0 30/80 38% MTP n=32 21.8 38.5 25/70 36% 长上下文(Vulkan MTP n=2,Q4 KV 缓存)
配置 pp(t/s) tg(t/s) 草稿接受数 接受率 128K 上下文 31.5 67.5 30/36 83% 256K 上下文 31.2 67.4 30/36 83% 推荐启动命令
/home/david/Downloads/llama.cpp/vulkan/bin/llama-server \ -m /home/david/model/llm/qwen3.6-27b/Qwen3.6-27B-Q4_K_M-mtp.gguf \ -ngl 999 \ -c 131072 \ --spec-type draft-mtp --spec-draft-n-max 2 \ -ctk q4_0 -ctv q4_0关键结论
- Vulkan 优于 ROCm:Vulkan 生成速度快 38%(MTP 下 63.6 vs 46.2 t/s)
- MTP n=2 最佳点:72% 草稿接受率,生成速度提升 +60%
- KV 缓存 Q4_0:无性能损失,相比 f16 节省 4 倍内存
- 长上下文正常工作:完整 256K 上下文运行速度与 4K 相同
- ~67 t/s:在 27B 模型上使用 MTP 实现出色的生成吞吐量
llama-bench 测试结果(2026-5-11)
环境
- MTP 模型: Qwen3.6-27B-Q4_K_M-mtp.gguf (15.82 GiB) https://huggingface.co/froggeric/Qwen3.6-27B-MTP-GGUF/
- 非MTP 模型: Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-Q4_K_P.gguf (17 GiB) https://huggingface.co/HauhauCS/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive
- GPU: AMD Radeon RX 7900 XTX (24,560 MiB 显存)
- CPU: Genuine Intel(R) 13900hk ES
- 线程数: 8
- n-gpu-layers: 999 (完全卸载到 GPU)
- 温度: 0.7, top-k: 20
ROCm (HIP) - KV缓存类型对比 (非MTP)
二进制:
~/llama.cpp/rocm/bin/llama-bench(build 9046)KV缓存类型 pp1024 (token/s) tg128 (token/s) f16 (默认) 904.50 28.99 q4_0 898.01 28.81
Vulkan - KV缓存类型对比 (非MTP)
标准构建 (
~/Downloads/llama.cpp/build-vulkan/bin/llama-bench)KV缓存类型 pp512 (token/s) tg128 (token/s) f16 765.94 37.06 Q4_0 769.82 37.17 Q8_0 273.25 37.13 Turboquant 构建 (
~/Downloads/llama-cpp-turboquant/build-vulkan/bin/llama-bench)KV缓存类型 pp512 (token/s) tg128 (token/s) turbo2 193.43 ± 1.49 23.79 ± 0.17 turbo3 128.44 ± 1.31 21.88 ± 0.14 turbo4 178.94 ± 2.03 23.00 ± 0.25 注意:turboquant 测试期间 GPU 使用率仅约 30%,未能充分利用 GPU。瓶颈可能在 CPU 端的量化/反量化操作。
q4_0/q8_0 在 turboquant 构建的 llama-bench 中仍然失败。
Vulkan + MTP
二进制:
~/llama.cpp/vulkan/bin/llama-cli
命令:--spec-type mtp --spec-draft-n-max 3 --parallel 1 -p "tell me a jok" -n 128 -ngl 999注意:MTP 使用
-np 1(单并行序列),因此无法并行处理。草稿模型顺序执行,限制了吞吐量。配置 生成速度 (token/s) 非MTP (f16) 39.5 MTP (q4_0) 81.2 MTP (q8_0) 77.5
ROCm + MTP
二进制:
~/llama.cpp/rocm/bin/llama-cli配合LD_LIBRARY_PATH配置 生成速度 (token/s) 非MTP (f16) 29.4 MTP (q4_0) 53.6 MTP (turbo3) 47.4 MTP (turbo4) 57.2
总结
非MTP (llama-bench)
KV缓存类型 pp (token/s) tg128 (token/s) 后端 f16 904.50 28.99 ROCm (pp1024) q4_0 898.01 28.81 ROCm (pp1024) f16 765.94 37.06 Vulkan 标准 (pp512) Q4_0 769.82 37.17 Vulkan 标准 (pp512) Q8_0 273.25 37.13 Vulkan 标准 (pp512) turbo2 193.43 23.79 Vulkan turboquant (pp512) turbo4 178.94 23.00 Vulkan turboquant (pp512) turbo3 128.44 21.88 Vulkan turboquant (pp512) MTP (llama-cli)
配置 生成速度 (token/s) 后端 MTP (q4_0) 81.2 Vulkan MTP (q8_0) 77.5 Vulkan MTP (turbo4) 57.2 ROCm MTP (q4_0) 53.6 ROCm MTP (turbo3) 47.4 ROCm 非MTP (f16) 39.5 Vulkan 非MTP (f16) 29.4 ROCm 关键观察
- ROCm 上的 q4_0 性能与 f16 几乎相同 (898 vs 905 token/s) — 差异可忽略。
- Turboquant 类型 仅适用于 turboquant Vulkan 构建。turbo2 的提示处理最快 (193 token/s @ pp512)。各 turbo 变体的生成速度相近 (~22-24 token/s)。
- 标准 Vulkan 构建 支持 Q4_0/Q8_0 — Q4_0 与 f16 速度相当 (~770 token/s pp512),Q8_0 提示处理慢约 2.8 倍 (273 token/s) 但生成速度相同 (~37 token/s)。Turbo 类型仅适用于 turboquant 构建。
- MTP 显著提升生成速度:Vulkan+q4_0 达到 81.2 token/s(比非MTP 提升 +106%),Vulkan+q8_0 达到 77.5 token/s (+96%),ROCm+turbo4 达到 57.2 token/s (+95%)。
-

有,但是huggingface会更多 -
系统 于 取消固定此主题
-
W wml-ai 于 引用了 此主题
-
1 12343954 于 引用了 此主题
-
Q Q maria 于 引用了 此主题
-
@Leon-Y ollama是个玩具不是工具,换llama.cpp或者 vllm
@David-Zhang 可以請教, 為什麼你和老特都不推薦 ollama , 推llama.cpp呢? 我也是先問了AI, 它說你們應該是覺得 ollama 雖然是容易上手, 但可調教的參數太少. llama.cpp 才是真正的生產工具. 沒說錯嗎?
-
@David-Zhang 可以請教, 為什麼你和老特都不推薦 ollama , 推llama.cpp呢? 我也是先問了AI, 它說你們應該是覺得 ollama 雖然是容易上手, 但可調教的參數太少. llama.cpp 才是真正的生產工具. 沒說錯嗎?
-
@566656661 對呀. AI也是這樣回覆我. 剛巧看到了一個reddit同樣的疑問:
https://www.reddit.com/r/LocalLLaMA/comments/1mdma9a/help_choosing_between_ollama_llamacpp_or/
說的很清楚了. 我想我也用 llama.cpp 更好
-
提示后又从头读了一遍。真是时间是一切的验证。
现在我也是小霸王学习机的拥有者。7900XTX 还真就是折腾优选之一。
经过10多天的折腾。pro 5000 72G 终于组装上了。被动赚了京东几千块。事实就是吃馅饼都是要买单的。哈哈。 -
我是用hermes 接入 deepseek flash ,然后帮我做的。 目前机器先配置好了出国的代理。在ubuntu下。
折腾了两个末模型。╭─
Hermes ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
以下是两个模型的完整对比:模型一:Heretic v2(hmenu #4) 文件: Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-Q4_K_M.gguf 大小: 17 GB 规格: Q4_K_M 量化 | 参数 | 值 | |-----------------|---------------------| | 架构 | qwen35 | | 层数 | 65 | | Attention heads | 24 | | KV heads (GQA) | 4 | | KV 维度 | 256 per head | | 最大上下文 | 262,144(256K) | | 混合注意力 | 每 4 层一次全注意 | | MTP | 有,Native 原生保留 | 当前配置: - KV cache:f16(2 bytes per value) - 上下文:94K(-c 94208) - 实测速度:60+ t/s(MTP 有效加速) 优点: MTP 原生完好,接受率高 → 速度快 2 倍,越狱有效 缺点: f16 KV cache 体积大(每 token ~580 KB),94K 上下文已吃满 99% VRAM,无法再扩大 模型二:Fable 711(hmenu #11,当前运行中) 文件: Qwen3.6-27B-Fable-Fus-711-UnHeretic-NM-DAU-NEO-MAX-NEO-MTP-Q4_K_M.gguf 大小: 18 GB 规格: Q4_K_M 量化 | 参数 | 值 | |-----------------|----------------------------------| | 架构 | qwen35 | | 层数 | 65 | | Attention heads | 24 | | KV heads (GQA) | 4 | | KV 维度 | 256 per head | | 最大上下文 | 262,144(256K) | | 混合注意力 | 每 4 层一次全注意 | | MTP | 标称有,实为残废(16.7% 接受率) | 当前配置: - KV cache:q4_0(0.5 bytes per value,省 4 倍) - 上下文:180K(-c 184320) - 实测速度:31 t/s(MTP 几乎无效,纯裸推理) 优点: q4_0 KV cache 省 4 倍空间,可跑 180K 大上下文,VRAM 仅 88% 缺点: 7 模型 Fusion merge 洗掉了 MTP 头和越狱能力,速度只有 Heretic 的一半,且无法越狱 KV Cache 类型对比 | KV cache 类型 | bytes/值 | 体积比 | 精度 | 适用场景 | |---------------|----------|--------|------|---------------------| | f16 | 2.0 | 1x | 高 | 追求精度,短上下文 | | q4_0 | 0.5 | 1/4 | 中低 | 大上下文,VRAM 有限 | 按当前 65 层 + KV 256 per head + 4 KV heads + 混合注意力架构计算: | 上下文 | f16 KV cache | q4_0 KV cache | |---------------------|-------------------------------|------------------------| | 32K | ~19 GB | ~4.7 GB | | 94K(Heretic 当前) | ~55 GB → VRAM 99%,大量 spill | — | | 180K(Fable 当前) | ~105 GB → 不可能 | ~11.6 GB → 88% VRAM ✅ | 总对比表 | 项目 | Heretic v2 (#4) | Fable 711 (#11) | |------|:-:|:-:| | 文件大小 | 17 GB | 18 GB | | 模型来源 | 原生微调 | 7 模型 Fusion 合并 | | MTP | ✅ 原生保留,60%+ 接受率 | ❌ Merge 损坏,16.7% 接受率 | | 越狱/破解 | ✅ 有效 | ❌ "UnHeretic" 已反向合并 | | 速度 | 60+ t/s | 31 t/s | | KV cache | f16(大但精度高) | q4_0(小但省 4 倍) | | 当前上下文 | 94K(VRAM 极限) | 180K(还有余量) | | 显存占用 | 99%(24.7 GB) | 88%(21.1 GB) | | 余量 | 几乎没有 | ~3.9 GB 可用于 KV cache 增长 | 一句话总结: Heretic 胜在速度和越狱,但 VRAM 已到极限;Fable 胜在上下文大且有余量,但 MTP 和越狱都被 merge 毁了。两者的取舍就是 速度快/越狱 vs 上下文大。 -
账你已经算对了:27B Q4 约 18GB + 128K × q8_0 KV 约 8GB = 26GB,超 24GB,KV 溢出到内存,速度暴跌到像卡死一样。「Q8 根本跑不动」就是它。
按这个顺序来,先跑通再谈长上下文:
- 先把上下文降到 32K~64K:
--ctx-size 65536。agent 日常任务 64K 足够,KV 占用立刻减半。 - KV 量化别用双 q8_0:K 参与注意力打分(金贵),V 是加权平均(可稀释)——用
--cache-type-k q8_0 --cache-type-v q4_1,比双 q8_0 省一半 KV 显存;实在要 128K 再换双 q4_0(18+4≈22GB,勉强塞下但很紧)。 - 确认你装的不是 CPU 版:llama.cpp 官方 release 分 CPU/CUDA/Vulkan 三种,Windows 下默认下载容易装成 CPU build——那样显卡完全不参与计算,怎么调都「跑不动」。跑
llama-server --version看有没有 Vulkan/CUDA 字样。 - 验证顺序:
--ctx-size 32768 -ctk q8_0 -ctv q4_1 --flash-attn先跑通,7900XTX 上应该 50-60 t/s;确认稳定了再加回 64K。 - 7900XTX 记得升级 Vulkan 驱动,论坛实测同一张卡从 34 提到 70+ t/s。
跑通了把命令和速度贴出来,卡住随时 @ 我。
- 先把上下文降到 32K~64K:
-
@gonep 补充一个刚验证的重要修正——我上面第 2 条的 KV 量化方案有坑,先按修正后的来:
坑:llama.cpp 的 flash attention 不支持 K/V 混合类型的 KV cache。
--cache-type-k q8_0 --cache-type-v q4_1这种「K 高精度 + V 低精度」的不对称组合,会静默回退到非融合(甚至 CPU)的 attention 路径——GPU 利用率掉到 0-25%、CPU 满载、速度直接崩一个数量级,而且不报错不警告,症状跟你现在「跑不动」一模一样。这个今天刚被坛友实测坐实(清风明月 TID:1251:同参数下 64 t/s → 15.8 t/s),llama.cpp 官方讨论 #22411 也是同一结论(对称 q4_0/q4_0 走融合 FA kernel,不对称就掉慢路径)。
修正后的正确姿势(K/V 类型必须对称):
- 日常先用 64K 上下文:
--ctx-size 65536 --cache-type-k q8_0 --cache-type-v q8_0 --flash-attn- 18GB 权重 + 约 4GB KV ≈ 22GB,24G 卡塞得下,走快速融合路径
- 非要 128K:换成对称
--cache-type-k q4_0 --cache-type-v q4_0(K4V4)- KV 约 4GB,总占用 ~22GB 勉强放下;论坛 7900XTX 实测过 K4V4 跑 256K 正常
- q8_0 K + q4_0 V 这种不对称组合别用——快路径直接没了
顺序还是不变:32K 先跑通 → 验证速度正常(50-60 t/s)→ 再加回 64K/128K。卡住随时 @ 我。
- 日常先用 64K 上下文:
-
我有点疑惑,7900xtx 总共才24g ,到底是怎么可以开到264k上下文的? 128k都不够吧? 大佬们可以解释一下吗?
