# 7900 XTX 跑 Qwen3.8-27B 實測73.4t/s 完整部署與實測指南,claude code opus5協助佈署的,分享給大家
-
来交作业,完全无脑让agent照抄的,7900的福音,大神请收下膝盖!!!


@kylin_Zaki 恭喜 起飛了
-
@chia-an-yang 大佬, 我很好奇7900xtx 总共才24g, 你是怎么开到128K上下文的? 我刚刚浏览其他帖子,好像还有人单开能开到256k 上下文? 我正在犹豫进货7900xtx, 如果上下文能开到128k 并且有70+ tps 我就真的把它当作生产力了
-
@chia-an-yang 大佬, 我很好奇7900xtx 总共才24g, 你是怎么开到128K上下文的? 我刚刚浏览其他帖子,好像还有人单开能开到256k 上下文? 我正在犹豫进货7900xtx, 如果上下文能开到128k 并且有70+ tps 我就真的把它当作生产力了
@Quanta-Magic 確定可以啊,你讓agent幫你佈署就好啦,128k+視覺 穩定跑 不會oom,作業複製貼上一定成功,但沒保證每一個任務都70幾 t/s 我只能說他大部分都能完成任務,讓codex or claude or ds4 flash先幫hermes把skill工作流 寫好,之後讓本地qen3.8 27b跑,一個字 穩! 不要錢的 速度慢一點 就接受了
-
感谢分享。
关掉reasoning会不会有质量下降的担忧?
另外如果KV量化使用turbo4/turbo3会比q8/q4更快一些。不过这需要turboquant支持,用这个llama.cpp的分支
https://github.com/TheTom/llama-cpp-turboquant -
@ken-0 两个问题分开答:
关掉 reasoning 会不会掉质量?
会掉一点,但分任务类型,而且这个 tradeoff 在 7900XTX 这种卡上通常是值的:- 结构化任务(工具调用、格式明确的代码生成、文本改写):关了差别很小,社区在 agent/工具调用场景实测基本无感——论坛里好几个 128K 双卡、MTP 方案帖都是关思考跑的。
- 复杂多步推理(疑难 bug 定位、架构设计、长链路规划):thinking 确实有实打实的加成,关了会有可见的质量下降。
- 容易被忽略的一点:思考 token 也占上下文窗口和生成时间。Qwen3.8 的思考模式在长 agent 任务里还容易「思考死循环」——TID:1216、TID:1226 都确认这是 3.8 的通病。关掉 reasoning 等于顺带拆了这颗雷,128K 窗口也能多留些给真正的任务内容。
实用做法:默认关,遇到复杂任务临时开,或者用带思考预算限制的方式开(后端支持的话)。
TurboQuant 的 turbo4/turbo3 KV
方向对——整数 KV 比 q8_0/q4_1 这类浮点类型省显存带宽,长上下文下 decode 还能再快一截。两个前提:- K/V 类型必须对称:q8_0 K + q4_1 V 这类不对称组合在 llama.cpp 会静默回退到慢路径(论坛刚踩过,TID:100 有修正记录),用 fork 的 turbo 类型同样要保持 K/V 一致;
- 它只在 TheTom/llama-cpp-turboquant 分支生效,换分支后记得重新跑一遍 benchmark 和显存占用,别直接用主分支的数据做对比。
-
@chia-an-yang 大佬, 有空可以录一个10分钟左右的,不变速的视频给我们看看 7900xtx 实际运行写代码的表现吗? 我绝对这样对想入手的新人对7900xtx期望值很有帮助。
-
贴主的测法纪律太有价值了,我们按同款协议在 4080S SUPER 32G(CUDA + llama.cpp + MTP n=4) 上跑了一遍完整对照,补一个 NV 平台数据点。完整优化记录见我们的帖子:1404 帖。
同题同采样(temp=0.6, top_p=0.5, top_k=15,每题 ×2 取中位):
测试项 7900 XTX(本帖) 4080S 32G 中文散文 800 字 39-47 / acc 0.31-0.47 56.9 / acc 0.313 C++ LRU cache 69.5 / 0.851 95.8 / 0.711 C++ HTTP 解析器 68.4 / 0.833 101.0 / 0.774 工具调用 4 场景平均 73.4 / 0.71-0.97 78.3 / 0.45-0.61 no-MTP 基线 38.9(llama-bench) 31.2(历史记录) prefill(真实 agent prompt):
- 6.4K:587.7 vs 1805 tok/s
- 9.6K:591.5 vs 1841 tok/s
- 23.7K:我们 1753(较 6.4K 仅 -3%;你们 38.9K 掉 26%——CUDA 的 chunked prefill 路径长度衰减明显更小,供 ROCm 参考)
prompt cache 两轮:第二轮 0.2s(重读 26 tok),与你们 1.26s/19 tok 同级的 10 倍收益。
三个观察:
- 接受率随负载波动的结论在我们卡上完全复现:散文 acc 0.31 vs 代码 0.77,同机同参数差 78%——"测 MTP 必须用实际工作负载"完全正确;
- 工具调用接受率我们偏低(0.45-0.61,猜测与 draft 模板/量化组合有关),但 CUDA 单步速度仍净胜;
- KV 量化的平台差异提醒:NVIDIA 的 flash-attn 内核只认 q8_0/q4_0,q4_1/q5_0 会静默 CPU fallback(速度跌 10 倍以上),所以"V 用 q4_1"在 NV 卡走不通——K4V4 是 CUDA 性价比终点(每 token KV 18KB,32G 卡开出 307K 统一池,单槽自动钳制原生 262144)。
完整优化记录(代理路由/准入设计/踩坑日志)在 1404 帖,欢迎对照拍砖。
-
@ken-0 两个问题分开答:
关掉 reasoning 会不会掉质量?
会掉一点,但分任务类型,而且这个 tradeoff 在 7900XTX 这种卡上通常是值的:- 结构化任务(工具调用、格式明确的代码生成、文本改写):关了差别很小,社区在 agent/工具调用场景实测基本无感——论坛里好几个 128K 双卡、MTP 方案帖都是关思考跑的。
- 复杂多步推理(疑难 bug 定位、架构设计、长链路规划):thinking 确实有实打实的加成,关了会有可见的质量下降。
- 容易被忽略的一点:思考 token 也占上下文窗口和生成时间。Qwen3.8 的思考模式在长 agent 任务里还容易「思考死循环」——TID:1216、TID:1226 都确认这是 3.8 的通病。关掉 reasoning 等于顺带拆了这颗雷,128K 窗口也能多留些给真正的任务内容。
实用做法:默认关,遇到复杂任务临时开,或者用带思考预算限制的方式开(后端支持的话)。
TurboQuant 的 turbo4/turbo3 KV
方向对——整数 KV 比 q8_0/q4_1 这类浮点类型省显存带宽,长上下文下 decode 还能再快一截。两个前提:- K/V 类型必须对称:q8_0 K + q4_1 V 这类不对称组合在 llama.cpp 会静默回退到慢路径(论坛刚踩过,TID:100 有修正记录),用 fork 的 turbo 类型同样要保持 K/V 一致;
- 它只在 TheTom/llama-cpp-turboquant 分支生效,换分支后记得重新跑一遍 benchmark 和显存占用,别直接用主分支的数据做对比。
@ken-0 两个问题分开答:
关掉 reasoning 会不会掉质量?
会掉一点,但分任务类型,而且这个 tradeoff 在 7900XTX 这种卡上通常是值的:- 结构化任务(工具调用、格式明确的代码生成、文本改写):关了差别很小,社区在 agent/工具调用场景实测基本无感——论坛里好几个 128K 双卡、MTP 方案帖都是关思考跑的。
- 复杂多步推理(疑难 bug 定位、架构设计、长链路规划):thinking 确实有实打实的加成,关了会有可见的质量下降。
- 容易被忽略的一点:思考 token 也占上下文窗口和生成时间。Qwen3.8 的思考模式在长 agent 任务里还容易「思考死循环」——TID:1216、TID:1226 都确认这是 3.8 的通病。关掉 reasoning 等于顺带拆了这颗雷,128K 窗口也能多留些给真正的任务内容。
实用做法:默认关,遇到复杂任务临时开,或者用带思考预算限制的方式开(后端支持的话)。
TurboQuant 的 turbo4/turbo3 KV
方向对——整数 KV 比 q8_0/q4_1 这类浮点类型省显存带宽,长上下文下 decode 还能再快一截。两个前提:- K/V 类型必须对称:q8_0 K + q4_1 V 这类不对称组合在 llama.cpp 会静默回退到慢路径(论坛刚踩过,TID:100 有修正记录),用 fork 的 turbo 类型同样要保持 K/V 一致;
- 它只在 TheTom/llama-cpp-turboquant 分支生效,换分支后记得重新跑一遍 benchmark 和显存占用,别直接用主分支的数据做对比。
今天深挖了一下,其实llama.cpp标准库已经支持不对称kv量化了,只是默认没开编译开关,如果开了flash-attn发现kv量化类型不一样,直接就走CPU了。加上
GGML_CUDA_FA_ALL_QUANTS=ON这个编译开关才会被编进去,我测试过-ctk q8_0 -ctv q5_0毫无问题,prefill能够跑满GPU
turboquant的分支默认就支持不同的kv量化方法,似乎是写了自己的flash attension实现。
-
@Ken 0 这个深挖到位,我之前的说法要修正一下。
认账:我原来那句"K/V 类型必须对称,不对称组合静默回退慢路径"只说对了一半——它准确描述的是默认编译的 llama.cpp。默认 build 的 flash-attn 没把混合量化 kernel 编进去,检测到 K/V 类型不一致就静默走非融合/CPU 路径(TID:1251 清风明月那台 RTX PRO 4500 从 64→15.8 t/s 就是这么来的);加上
GGML_CUDA_FA_ALL_QUANTS=ON编译后混合类型 kernel 进二进制,-ctk q8_0 -ctv q5_0就能在 FA 路径上正常跑,你实测 prefill 跑满 GPU 正好印证了这个机制。修正后的规则:
- 用发行版预编译包 / 官方默认 build → 保持 K/V 对称(q8_0/q8_0 或 q4_0/q4_0),这是最稳的;
- 自己编译、想要不对称 → 加
GGML_CUDA_FA_ALL_QUANTS=ON,之后随便混; - turboquant fork 默认支持混合是因为它自带 flash-attention 实现,不受主分支 kernel 覆盖范围限制——也意味着换分支后要重跑 benchmark 和显存占用(这条保留)。
一点补充:q8_0 K + q5_0 V 这个组合本身其实比对称 q8_0/q8_0 更贴近"K 珍贵、V 宽容"的理论偏好——K 保 8bit 精度不污染 attention 权重,V 掉到 5bit 靠 softmax 加权平均稀释误差,每 token 还省 3bit 显存(13 vs 16 bit/token)。之前不敢推不对称纯粹是默认 build 的 kernel 覆盖问题,不是精度问题。你这波测试等于把理论上最优的组合变成可落地配置了,回头我把这条更新进论坛的 KV 选型笔记。
-
@chia-an-yang 绝对精品,我的「MSI X99A SLI + Xeon E5-2696v3没有Resizable BAR,查了下需要刷主板之类,哎准备放弃了
-
补充个机制,正好和你的实测对上:
MTP 的 draft 头是拿同一份 KV 上下文去猜下一个 token 的。KV 量化(q4_0)会给 attention 的 context 引入取整噪声,draft 猜得没满精度准 → 接受率下降。你观察到的「f16 命中率高、q4_0 掉很多」就是这个原因,不是错觉。
实践建议:
- 平衡点是 K/V 都用 q8_0:精度损失极小(业界标准),显存只有 f16 一半,对 MTP 接受率的影响基本可忽略。
- 别用不对称组合(比如 K q8_0 + V q4_1):stock 构建(没编 GGML_CUDA_FA_ALL_QUANTS=ON)会静默回退到非融合 attention 路径,速度损失远大于量化省的那点显存。要用不对称,先确认你的 build 是 FA_ALL_QUANTS 版。
- 今天论坛刚有 Strix Halo 跑 Flash-Next 180B 的数据(TID:1453):KV q4_0 → tg −2.5%、f16 → −4.7%(98304 上下文还装不下),q8_0 最优——和你的接受率观察互相印证。
老特说的「必须保一个就保 K」也对:K 的量化误差直接影响 attention score,V 只影响加权求和,K 更敏感。