Qwen 3.6 27B 投机解码基准测试:单张 RTX 3090 上实现 ~100 TPS

Reddit r/LocalLLaMA 工具

摘要

一份详细的基准测试,比较了单张 RTX 3090 上 Qwen 3.6 27B 的投机解码引擎,显示 ik_llama 在代码生成中达到约每秒 100 个 token。结果包括 5 种引擎变体的解码 TPS、TTFT、显存占用和上下文退化情况。

首先,衷心感谢 r/LocalLLaMA 社区和 3090 俱乐部。本基准测试源于你们分享的配方……以下是我在硬件(Xeon E5-2666v3、64GB 内存、单张 RTX 3090 24GB)上的发现,比较了同一模型的两种量化下的 5 种引擎(3 个 llama.cpp 分支 + 主线 + Lucebox)。我使用了 https://github.com/noonghunna/club-3090/tree/master 中的基准脚本以及两个使用 en8wiki 构建长提示的简单脚本。 摘要表格按分支 → 投机类型排序。关键指标:解码 TPS(代码与叙述)、TTFT、显存占用和上下文一致性(从 72k 到 128k 已填充上下文时生成速度的退化)。 | Fork / Engine | Speculative Type | Model / Quant | Code DP | Narr. DP | TTFT | VRAM (MiB) | Gen 72k | Gen 128k | Deg. (72k→128k) | |---|---|---|---|---|---|---|---|---|---| | ik_llama (ubergarm config) | MTP n_max=4 | Qwen3.6-27B-IQ4_KS | 89.2 | 63.9 | 361ms | 22304 | 34.6 | 23.5 | −32.1% | | ik_llama + ngram | ngram+MTP | Qwen3.6-27B-IQ4_KS | 87.8 | 58.6 | 341ms | 20508 | 32.1 | 24.1 | −24.9% | | ik_llama (Standard config) | MTP n_max=2 | Qwen3.6-27B-IQ4_KS | 73.1 | 61.7 | 357ms | 20208 | 33.8 | 25.4 | −24.8% | | mainline llama.cpp | MTP n_max=1 | Qwen3.6-27B-Q4_K_M | 64.7 | 52.5 | 288ms | 21354 | 33.4 | 31.2 | −6.6% | | Spiritbuun | MTP | Qwen3.6-27B-Q4_K_M | 59.7 | 45.7 | 294ms | 22066 | 34.8 | 31.5 | −9.5% | | beellama | DFlash (Draft GGUF) | Qwen3.6-27B-Q4_K_M | 96.8 | 45.6 | 504ms | 20814 | 22.9* | 27.1 | −41.3%** | | Spiritbuun | DFlash | Qwen3.6-27B-Q4_K_M | 66.9 | 30.4 | 300ms | 23356 | — | — | — | | LUCEBOX | DFlash (TQ3 KV) | Qwen3.6-27B-Q4_K_M | 32.6 | 32.5 | 448ms | 20680 | 27.0 | — | — | ik_llama — 做“一切”的分支 llama.cpp 的分支,原生支持 MTP、merge-qkv、循环检查点和多后端投机解码。在 IQ4_KS 量化上测试(由 ubergarm 提供)。 ik_llama + MTP+ngram (ngram-mod + mtp) 出色的代码生成。结合 ngram 草稿(n_max=4,大小 16)和 MTP(n_max=3)。代码达到 87.8 解码 tokens/秒——比主线大幅提升。显存:20508 MiB(82% GPU 使用率)。上下文退化:−25%(32.1→24.1 gen_tps)。上下文填满时明显下降。 ik_llama + MTP (ubergarm 调优配置) 最佳叙述速度:63.9 DP,整个基准测试中最高。代码为 89.2 DP。额外配置:-muge --merge-qkv -mtprot iq4_ks -cram 32768 --slot-save-path /root/slot --ctx-checkpoints 32。显存:22304 MiB。由于槽检查点,显存更高。上下文退化:−32%(34.6→23.5)。所有设置中最差的下降。 ik_llama + MTP (标准配置) 原生 MTP 的基线。使用标准参数(n_max=2),没有 ubergarm 推荐的调整或混合 ngram 模块。代码 73.1 DP,叙述 61.7 DP,表现均衡。显存:20208 MiB。上下文退化:−25%(33.8→25.4 gen_tps)。 ik_llama + DFlash 使用 beellama 的独立草稿模型测试。代码 96.8 DP,与 MTP+ngram 有竞争力,但叙述严重受损(45.7 DP)。TTFT 较高(504ms),可能是由于单独的草稿模型加载。 mainline llama.cpp — 参考基准 无分支,无补丁。上游投机性 MTP。标准 Q4_K_M 量化。代码:64.7 DP | 叙述:52.6 DP。TTFT:288ms——整体最低,零开销。上下文一致性:0% 退化(72k 和 128k 之间 31.3→31.3 DP)。这很重要:主线无论上下文长度如何都保持速度(或者可能是异常值?)。虽然原始吞吐量不是最快,但可预测性最高。 Spiritbuun — 优化的 MTP,失败的 DFlash Spiritbuun MTP 分支,具有优化的 MTP(turbo 缓存、flash-attn)。Q4_K_M 量化。我测试它是因为它对我使用 APEX 量化的 Qwen 3.6 35B A3B MoE 模型给出了最佳结果(如果您感兴趣,请参阅我关于它的帖子)。代码:59.7 DP | 叙述:45.7 DP。上下文退化:−9%。主线之后最佳一致性。TTFT:294ms——与主线几乎相同。 Spiritbuun DFlash 使用其自己的草稿模型测试。未能达到 MTP 速度:代码 67.0 DP,叙述 30.4 DP。我没有测试长上下文性能,似乎不值得。 beellama DFlash — 残酷的代码速度,高 TTFT 代价 使用自己的草稿模型(anbeeld-Qwen3.6-27B-DFlash-IQ4_XS.gguf),cross-ctx 1024 和统一 KV。代码:96.8 DP——整体第二好,非常接近 ik_llama。叙述:45.7 DP。缺点:504ms TTFT(几乎是主线的两倍)。第一个词需要半秒。显存:20814 MiB。中等 GPU 使用率(73%)。上下文:128k 保持 27.1 DP。在长上下文方面优于 ik_llama MTP。 LUCEBOX DFlash — 对我来说不起作用 独立的服务器引擎,带有 DFlash、TQ3 KV 缓存和 PFlash!代码:32.7 DP | 叙述:32.5 DP。在许多情况下,比不使用投机解码更差。也许我不了解如何一致地使用它?我在 incus 容器中使用的环境: environment.DFLASH_FP_USE_BSA: "1" environment.DFLASH_HOST: 0.0.0.0 environment.DFLASH_KVFLASH: auto environment.DFLASH_PORT: "8080" environment.DFLASH_PREFILL_DRAFTER: /opt/lucebox-hub/server/models/unsloth-Qwen3-0.6B-BF16.gguf environment.DFLASH_PREFILL_MODE: auto environment.DFLASH_SERVER_BIN: /opt/lucebox-hub/server/build/dflash_server environment.DFLASH_TARGET: /opt/lucebox-hub/server/models/Qwen3.6-27B-Q4_K_M.gguf environment.DFLASH27B_KV_TQ3: "1" 一致性结论 如果纯粹按实际一致性(跨上下文长度的速度稳定性 + 低 TTFT + 低显存开销)排名: mainline llama.cpp MTP — 一致性的明确赢家。72k 和 128k 之间几乎零退化。最低 TTFT(288ms)。显存稳定(约 21GB)。无外部草稿模型依赖。它不会中断、不会突增、不会节流。 Spiritbuun MTP — 仅 9% 退化,TTFT 294ms,非常稳定。吞吐量略低于主线,但可预测性极好。 LUCEBOX DFlash — 技术上一致(0.1% 方差),但一直很慢。对我来说没用。 ik_llama 设置 — 短上下文快速,但在长上下文中付出沉重代价(−25% 至 −32% 退化)。 我的看法:主线和 Spiritbuun 之间的差异很小(约 3-5 DP)。但主线的零退化和最低 TTFT 使其成为最实际一致的设置。如果您运行长文档或 RAG 管道,主线不会让您意外。ik_llama 在速度上胜出,但您押注的是短上下文。 最终建议 | 优先级 | 最佳选择 | 原因 | |---|---|---| | 代码速度 | ik_llama MTP+ngram | 98.5 DP,基线的两倍 | | 叙述速度 | ik_llama MTP (ubergarm) | 63.9 DP | | 上下文一致性 | mainline llama.cpp | 0% 退化,最低 TTFT | | 速度与稳定性的平衡 | Spiritbuun MTP | 接近主线的一致性,吞吐量略高 | | 低 TTFT | mainline llama.cpp | 288ms,零开销 | 您怎么看?
查看原文

相似文章

Wow!Qwen 3.6:35b-a3b 在 3090 上……太惊人了。

Reddit r/artificial

一位用户分享了在二手 RTX 3090 上运行量化版 Qwen 3.6:35b-a3b 模型的惊人结果:将模型放入显存后,输出速度达到每秒 160 个 token,并以 75 秒的视频处理时间展示了视觉能力。