llama.cpp 实现 42 倍加速优化

Faster prompt lookup drafting in llama.cpp

llama.cpp 实现 42 倍加速优化

我在 llama.cpp 中实现了 prompt lookup decoding 的显著提速,通过四项优化将草案生成速度提升了 42 倍,同时内存占用减少了 2.6 倍。核心改进包括停止不必要的 std::unordered_map 复制,将外层映射替换为 ankerl::unordered_dense::segmented_map,并将内层映射优化为排序后的 std::vector。这些改动基于 Daniel Lemire 和 Martin Ankerl 的工作,在 Apple M4 Pro 上测试,大幅降低了延迟并提升了静态缓存的加载效率,让 n-gram 模型在推测解码中发挥更大效能。

通过将外层映射替换为 ankerl::unordered_dense::segmented_map,静态缓存的加载速度提升了 1.41 到 1.65 倍,同时内存使用减少了 1.07 到 1.11 倍。

同日更多故事

2026-09-27