首页
/
工具
/
更新:Qwen 3.8 27B 在单张 RTX 3090 上使用 Megakernel 达到 140 token/秒:与 llama.cpp 相比,KL 散度为 0.0009
更新:Qwen 3.8 27B 在单张 RTX 3090 上使用 Megakernel 达到 140 token/秒:与 llama.cpp 相比,KL 散度为 0.0009
摘要
用于 Qwen3.8-27B 的 CUDA 巨型内核引擎在单张 RTX 3090 上实现了比 llama.cpp 快 1.4–1.9 倍的推理速度(代码生成速度为 140 token/秒),且没有可测量的精度损失,这一点已通过与参考实现对比的 KL 散度和困惑度基准测试得到验证。
这是我昨天发布的帖子(https://www.reddit.com/r/LocalLLaMA/comments/1x2erdj/qwen3827b_on_a_single_3090_140_toks_on_code_with/)的后续,详细介绍了 CUDA megakernel。感谢大家的积极反馈和 PR!回顾:megakernel 是用于 Qwen3.8-27B 的 CUDA 引擎,在单张 3090 上的运行速度为 llama.cpp 的 1.4–1.9 倍。最常见的问题涉及准确性、基准配置和上下文长度,下面给出具体数据。代码和基准测试:https://github.com/L-Forster/open-jet/tree/master/megakernel 首先,我对比了该引擎与 llama.cpp 的准确性。没有可测量的质量损失:相对于 llama.cpp 的解码准确性 上下文 位置数 MK 首选 token MK KL LC 首选 token LC KL 1K 13,299 99.08% 0.0009 98.68% 0.0019 30K 1,999 99.65% 0.0007 99.35% 0.0009 96K 1,999 99.60% 0.0008 99.45% 0.0014 MK = megakernel,LC = 批处理模式的 llama.cpp。首选 token = 首选 token 与参考结果一致的频率。KL = 平均 KL 散度,单位为 nat。困惑度(仅限 1K 测试):megakernel 2.4274,批处理模式的 llama.cpp 2.4283,参考结果 2.4263。相对于参考结果的对数损失:1K 时为 +0.0005 +/- 0.0004,30K 时为 +0.0018 +/- 0.001,96K 时为 +0.0012 +/- 0.001。差异不显著。30K 和 96K 两行各使用一段代码序列,1K 行则包含代码和普通文本。推测解码是精确的:贪心输出就是主模型的贪心选择,采样也保持与不使用草稿时相同的分布。速度(同一张 3090,megakernel 对比启用 MTP 的 llama.cpp)编写代码:140 对比 73 tok/s 推理模式:78 对比 51 tok/s 上下文中有 30K 个代码 token 时:73 对比 52 tok/s 提示词处理(预填充):约 1,600 对比约 1,100 tok/s 关闭推测解码后,两者速度基本相当(42.9 对比 40.4)。提速来自每次以大约处理一个 token 的成本验证 4–5 个草稿 token。llama.cpp 使用 2 个草稿 token,megakernel 使用 4 个。自第一篇帖子发布以来 已合并两个 PR:加载器现在会检查每个张量的类型,服务器会在接受请求前进行预热。在 unsloth 从其仓库中移除 Q4_K_M 后,已修复模型下载问题。现在也可以加载 lmstudio-community 和 mradermacher 的 Q4_K_M。openjet setup 会显示每个模型将使用哪个引擎。量化支持 此表详细列出了量化支持情况,其中 unsloth Q4_K_M 是原生支持的模型,也是我进行基准测试所用的模型;lmstudio 和 mradermacher 的版本属于部分兼容,尚未进行完整的基准测试,初步结果显示,经过类型转换后,其速度与原生模型相近。其他量化版本会回退到 llama.cpp Qwen3.8-27B 文件 运行引擎 unsloth 的原始 Q4_K_M(openjet setup 下载的版本)megakernel 来自 lmstudio-community、mradermacher 的 Q4_K_M megakernel,部分兼容 其他量化版本(unsloth UD-*、bartowski、GSQ-RCO 等)llama.cpp 限制 单 GPU。显存为 24 GB 或以上的 RTX 30/40/50 系列。MK 目前仅针对 3090 进行过调优。3090 上可运行 147K 上下文(约 80K 以内使用 fp16 KV 缓存,更长时使用 q8)。尚未进行任务级通过率基准测试。有帮助的贡献 针对特定硬件的调优:RTX 4090、5090 及其他显存为 24 GB 或以上的显卡。目前仅针对 3090 进行过调优。支持 Qwen3.8-27B 的其他量化版本。请在 PR 中附上基准测试结果:你的 GPU,以及修改前后 bench/bench.py 或 bench/code_bench.py 的数据。如何贡献:请参阅仓库中的 CONTRIBUTING.md。在评论中留下你使用的 Qwen3.8-27B 量化版本,让我知道接下来该添加哪些支持!(也计划在 Qwen 4 发布后支持它)。
相似文章
X AI KOLs Timeline
用户使用llama.cpp在RTX 3090上对Qwen3.6-27B进行基准测试,实现了35 tok/s的生成速度和1247 tok/s的提示处理速度。
Reddit r/LocalLLaMA
一份详细的基准测试,比较了单张 RTX 3090 上 Qwen 3.6 27B 的投机解码引擎,显示 ik_llama 在代码生成中达到约每秒 100 个 token。结果包括 5 种引擎变体的解码 TPS、TTFT、显存占用和上下文退化情况。
Reddit r/LocalLLaMA
作者在 RTX 3090 GPU 上优化了 Qwen3.8-27B 模型的推理,通过各种量化和优化技术,实现了单请求高达 99 tps 和批量处理 1150 tps 的性能,并在 GitHub 上发布了更新的代码。
X AI KOLs Following
A single RTX 3090 achieves 134 tok/s on the new 27B Qwen 3.5 Dense and 73 tok/s on Qwen 3.6-27B using fused kernels and speculative decoding, with same-day GGUF releases.
Reddit r/openclaw
在单张 RTX 3090 上使用定制版 llama.cpp(ik_llama.cpp)以 35 t/s 运行 Qwen 3.5 122B MoE 的详细解析,其中采用了融合 MoE 操作和专家层卸载到 CPU 内存的技术,性能显著优于原版 llama.cpp MTP。