llamacpp 补丁 - 在 RTX 5090 上本地运行 DeepSeek V4 Flash,支持完整 1M token 上下文

Reddit r/LocalLLaMA 工具

摘要

描述了一个针对 llama.cpp 的补丁,为 DeepSeek V4 Flash 的上下文索引添加了 CUDA 支持,从而在 RTX 5090 上实现了完整 1M token 上下文,同时显著降低了显存占用并保持了高吞吐量。

原本想尝试在本地运行 DeepSeek V4 Flash,但发现它在长上下文下需要惊人的显存量(1M 上下文约需 256GB)。原来是 DSA 闪电索引器缺乏对 llama.cpp 的完善支持。查阅后发现上游已有相关 PR(感谢 u/fairydreaming,PR #24231),但该 PR 中索引尚未接入模型计算图,也没有 CUDA 路径。因此我今早手动将其接入并编写了 CUDA 内核补丁,特此分享,或许对想运行此类模型的人有所帮助。 硬件:RTX 5090、9950X3D、96GB DDR5 内存 模型:DeepSeek-V4-Flash,antirez 的混合 Q8/Q4/Q2 量化 优化前后对比(256K 上下文): 计算缓冲区:~67 GiB(OOM)→ 3.2 GiB 预填充:56 t/s → ~263 t/s 解码:~14 t/s → ~14 t/s 1M 上下文:之前不可能(~256GB),现在可行(ubatch=768 时 3.75 GiB,ubatch=2048 时 ~6 GiB) 验证预设: 上下文 | 预填充 | 解码 | 峰值显存 256K | ~263 t/s | 14 t/s | ~29 GiB 512K | 256 t/s | 13.7 t/s | ~28 GiB 1M | 159 t/s* | 13.7 t/s | ~31 GiB *1M 时在 32GB 5090 上使用了较小的 ubatch —— 若分配完整 ~9GB 显存,应能达到全速。 正确性:使用大海捞针测试进行了简要验证——在 100K token 文档的 10%/50%/90% 深度处植入随机事实,模型每次都能正确检索。在 512K 和 1M 的更难的 50% 深度处也能正确检索。 源代码、构建说明及完整文档:https://github.com/spencer-zaid/llama.cpp/blob/deepseek-lid-cuda/docs/deepseek-v4-lid-cuda.md 分支:https://github.com/spencer-zaid/llama.cpp/tree/deepseek-lid-cuda 无预编译二进制文件(仅在 RTX 5090 单 GPU 上测试)。如需构建,文档中提供了构建说明。
查看原文

相似文章

Deepseek V4 Flash 在 RTX 5090 MoE 上运行

Reddit r/LocalLLaMA

用户分享了在 RTX 5090 上使用 llama.cpp 的一个分支运行 DeepSeek-V4-Flash (Q2_K) 的优化基准测试结果,实现了 21.3 token/秒的生成速度和 100 万上下文大小。

我在家里跑了 DeepSeek V4 Pro

Reddit r/LocalLLaMA

一名用户展示了如何使用修改版的 llama.cpp CUDA 仓库在本地工作站上成功运行 DeepSeek V4 Pro 模型,并分享了性能指标和硬件需求。