AI Pulse
📡 X 信号

llama.cpp 合并新功能,显存装不下的 MoE 模型提速近一倍

llama.cpp 合并新功能,显存装不下的 MoE 模型提速近一倍

llama.cpp 为那些 AI 模型装不进显存的 Localmaxxers 合并了一个大功能。👀🔥(Strata 也有这个功能)
这次升级是纯软件层面的,不需要昂贵或难买的新 GPU。PR #30966 于 11 月 7 日合并。以下是他们新增的内容。

当你运行一个巨大的混合专家(MoE)模型,而它装不进 GPU 显存时,llama.cpp 可以把常用的专家缓存到显存中。但当模型需要一个不在缓存中的专家时会发生什么?

以前,MoE 缓存路径会把该专家的权重从系统内存上传到 GPU 显存中执行。这意味着可能要通过 PCIe 传输大量数据。现在 llama.cpp 有了另一个选择。直接在 CPU 上运行部分缺失的专家!这在 eGPU(低带宽雷电接口)上运行模型时尤其重要。无需先将它们的全部权重传输到显存中。

好吧,那又怎样?
开发者测试了 Qwen3.8-Flash-Next IQ4_NL,为 GPU 专家缓存分配了约 6.3GiB。
⚡ 仅 GPU 上传 → 24.2 tps
🚀 CPU 处理 95% 的缓存未命中 → 47.6 tps
解码速度提升了 96.7%!

一位 RTX 3090 用户测试了 Qwen3.8-Flash-Next UD-IQ4_XS,GPU 缓存为 5.5GiB。
🐌 仅 GPU 上传 → 19.5 tps
🚀 CPU 处理 95% 的未命中 → 31.8 tps
在同一张 RTX 3090 上速度提升了约 63%!

现在来说说巧妙的部分。开发者还添加了一个自动调优脚本。它会测量和评估以下组合:
💾 GPU 专家缓存大小
🧠 CPU 执行占比
⚡ 专家缓存命中率
🔄 CPU/GPU 传输性能
并为你的硬件推荐设置。

因为更多的 CPU 卸载并不总是更快。
在约 19GiB 的更大 GPU 缓存下,开发者测得:
⚡ 仅 GPU 上传 → 65.5 tps
🚀 50% CPU 未命中占比 → 66.4 tps
🐌 95% CPU 未命中占比 → 54.1 tps
看到发生了什么了吗?最佳策略会根据可用显存大小以及 CPU、GPU 和内存传输与处理数据的速度而变化。

需要明确的是,95% 的 CPU 未命中占比并不一定意味着 CPU 运行了 95% 的模型。它意味着 CPU 处理了约 95% 的符合条件的 GPU 缓存未命中,而缓存的专家仍然在 GPU 上执行。

你的 CPU 和系统内存现在不仅仅是存放模型权重的地方。常规内存越大越好。当传输那些权重会更慢时,它们可以主动帮助执行模型。

现在这个功能已合并到上游 llama.cpp 中。免费。开源。无需新 GPU。🔥
链接在 ALT 中。

本文由 AI 翻译自英文原帖,技术名词保留英文。

查看 X 原帖

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新