在老款GTX 1080(8GB显存,128k上下文)上,约30B的MoE模型达到24+ tok/s的推理速度
摘要
一位开发者展示了如何使用llama.cpp,通过MoE卸载和TurboQuant KV缓存量化技术,在老款GTX 1080(8GB显存)上以128k上下文运行Qwen 3.6 35B-A3B和Gemma 4 26B-A4B等MoE模型,达到24+ tok/s的推理速度,并揭示了针对Gemma MTP投机解码的优化技巧。
我在一台200美元的二手设备(i7-6700 / GTX 1080 / 32GB内存)上,使用llama.cpp运行了 **Qwen 3.6 35B-A3B** 和 **Gemma 4 26B-A4B**(TurboQuant/RotorQuant KV缓存量化技术使得128k上下文能够容纳在8GB显存内)。**结果(Q4\\_K\\_M模型,128k上下文):** |模型|tok/s|关键标志| |:-|:-|:-| |Qwen 3.6 35B-A3B|\\~24| \\--n-cpu-moe 30, K=turbo4 V=turbo3| |Gemma 4 26B-A4B(无MTP)|\\~20|\\--n-cpu-moe 20, K=V=turbo3, --flash-attn| |Gemma 4 26B-A4B + MTP(朴素)|\\~21|embedding table 静默位于CPU| |Gemma 4 26B-A4B + MTP(修复后)|\\~24.5|\\--override-tensor-draft \"token\\_embd\\.weight=CUDA0\"| 诀窍在于MoE卸载:llama.cpp可以将冷门专家权重存放在系统内存中,并通过PCIe流式传输到GPU,同时将热层+KV缓存保留在GPU上。系统完全受限于PCIe带宽(GPU利用率约40-50%,而PCIe 3.0 x16已满载)。**最大发现:** Gemma 4的MTP投机解码开箱几乎没什么帮助(约\\~5%提升)。原来llama.cpp无条件地将token嵌入表保留在CPU上。通常这没问题(只是一个`get_rows`查找),但Gemma 4的MTP辅助模型有一个绑定的LM头——因此每个草稿token都需要通过PCIe进行一次完整的262k×1024矩阵乘法。通过`--override-tensor-draft`强制将其放到GPU上,可以获得真正的约\\~22%加速和约\\~79%的草稿接受率。**设置痛点(Fedora 42 + Pascal GPU):** * 将akmod-nvidia固定在580xx分支(Pascal即将成为遗留架构) * 为CUDA 12.9强制使用gcc-14(更新的gcc被拒绝) * 为glibc 2.41兼容性修补CUDA的math\\_functions.h * 使用AtomicBot-ai/atomic-llama-cpp-turboquant分支来同时支持TurboQuant缓存和Gemma MTP功能 [包含所有繁琐构建细节的完整博客文章](https://mdda.net/blog/tech/dl/llama-cpp-moe-on-an-old-gtx-1080)(包含每条命令,以及对MTP嵌入表问题的深入调试)我很快还会计划一个YouTube视频讲解 - 上线后会更新。很高兴回答有关设置的问题。
相似文章
@analogalok: 在8GB显存上以20+ token/秒运行Gemma 4 26B MoE,支持250k上下文。如果你有8GB显存显卡,停下你正在做的事……
Alok演示了使用Unsloth的QAT量化以及llama.cpp中的-cmoe标志,在8GB显存上运行Gemma 4 26B MoE,实现了250k上下文下20 token/秒的速度,这标志着廉价本地AI的一个重要里程碑。
在AMD 6800H(iGPU/UMA)上测试Gemma 4和Qwen 3.6 MoE——性能解析
在AMD 6800H iGPU上使用llama.cpp Vulkan后端对Gemma 4和Qwen 3.6 MoE模型进行的基准测试表明,MoE模型和低位量化(Q4_0)提供了最佳性能,而Q8_0对于大型模型来说速度太慢。
实验:Qwen3.8-2.4T-A95B 在 RTX 5090 + RTX 5060 Ti 上本地运行,约 0.80 tok/s
一个实验,使用 llama.cpp 在双消费级 GPU(RTX 5090 + 5060 Ti)上本地运行 Qwen3.8-2.4T-A95B MoE 模型,启用 MTP 推测解码后达到约 0.8 tok/s。
@DogukanUrker: 单张RTX 3060上运行Gemma 4 12B:完整262,144上下文,速度约100 tok/s。(配置如下)密集模型 -> MTP推测…
DogukanUrker演示了在单张RTX 3060上使用推测解码和KV缓存拆分运行Gemma 4 12B,拥有完整262,144上下文,速度约100 tok/s,实现了接近满GPU利用率且无需CPU卸载。
@analogalok:我的8GB显存游戏本肯定会恨我这么做,但我还是做了。跑了一个31B稠密模型(Gemma 4…
用户在8GB显存的游戏本上,使用llama.cpp配合MTP推测解码,以约3 tokens/s的速度运行了Gemma 4 31B稠密模型,展示了在消费级硬件上运行31B稠密模型的可行性,并提出了智能体工作流程:快速MoE模型将困难任务路由给这个较慢的稠密模型。