@leftcurvedev_: 任何拥有8GB或12GB显存配置的用户都需要明白,“-ncmoe”是在llama.cpp上提升性能的关键标志…
摘要
解释了llama.cpp中的-ncmoe标志如何通过将部分专家层卸载到CPU+内存,在有限显存(8-12GB)上提升MoE模型(如Qwen3.6 35B A3B)的性能,基准测试显示在RTX 3070Ti上可实现高达5倍的加速。
任何拥有8GB或12GB显存配置的用户都需要明白,“-ncmoe”是在llama.cpp上提升性能的关键标志。以下是我在8GB RTX 3070Ti上运行Qwen3.6 35B A3B(64k q8_0上下文)的结果:
无标志 → 8.7 tok/s 内存:13.6GB & 显存:7.8GB
-ncmoe 35 → 27.5 tok/s 内存:12.1GB & 显存:4.3GB
-ncmoe 30 → 32.5 tok/s 内存:12GB & 显存:5.6GB
-ncmoe 25 → 40.9 tok/s 内存:12GB & 显存:6.9GB
请注意,你看到的内存和显存使用量是Windows PC在运行模型时的总用量。我朋友的配置:8GB显存和16GB内存。你可以通过切换到Linux来提升性能,这一点值得留意。基本上,这个标志会将前X层的MoE专家保留在CPU+内存中,而不是立即占满所有显存。这是一种智能的混合卸载方式,让你能够运行更大的模型而不会内存溢出,同时将剩余部分保留在GPU上以获得速度。从数据中可以看出,存在一个最佳点。当我们从35降到25时,速度提升了+50%,因为更多层放在了GPU上(看看显存使用量)。关键是要尝试不同的数值,尽可能多地利用显存,目标是保留1GB/800MB的余量以避免压力。↓ 下面的服务器标志
相似文章
一个 llama.cpp PR 在 GPU 上缓存“热”MoE 专家 — 8GB VRAM 下报告 33 → 56 tok/s
一个 llama.cpp PR 增加了基于热力图的“热”MoE 专家 GPU 缓存,在 8GB VRAM 下对某些模型将 tok/s 提升了约 1.7-2 倍,但对其他模型结果不一。
专家优先的llama.cpp
一位开发者创建了llama.cpp的实验性分支,该分支仅将已使用的专家(expert)而非完整层卸载到显存,从而在RTX 2060 12GB等显存有限的GPU上为MoE模型带来了速度提升。作者正在寻找测试者,以验证其在其他Nvidia GPU上的性能表现。
在 Qwen 3.8 27B 上处理超过 100 万 token 后,以下是我针对 16GB 显存(73k 上下文长度,智能体编码场景)调校出的 llama.cpp 最佳配置。
本文分享了针对16GB显存、73k上下文窗口优化的llama.cpp配置方案,用于运行Qwen 3.8 27B模型,并通过实际软件工程项目展示了该配置在智能编码工作流中的性能表现。
Qwen3.6-35B-A3B Q4 262k上下文,8GB 3070 Ti上可达+30tps
作者分享了在8GB RTX 3070 Ti上使用llama.cpp运行Qwen3.6-35B-A3B MoE模型,实现高达262k上下文、30+tps的详细调优技巧,并指出从Windows切换到Ubuntu Server后速度提升了25%。
Qwen 3.5 122B MoE OC 在单张 3090 上以 35 t/s 运行——完整本地堆栈解析
在单张 RTX 3090 上使用定制版 llama.cpp(ik_llama.cpp)以 35 t/s 运行 Qwen 3.5 122B MoE 的详细解析,其中采用了融合 MoE 操作和专家层卸载到 CPU 内存的技术,性能显著优于原版 llama.cpp MTP。