@venkat_systems: 推理不仅仅是GPU/加速器的问题。热路径中未经优化的CPU工作会极大影响性能。v0.…
摘要
Venkat 解释道,热路径中未经优化的CPU工作会严重影响推理性能,并介绍了他在 mooncake 中提交的PR,该PR添加了一个内存池,用于实现无锁、无分配的操作,使 vLLM 和 SGL 项目受益。
查看缓存全文
缓存时间: 2026/06/20 14:38
推理不仅仅是GPU/加速器的问题。热路径中未优化的CPU工作会显著影响性能。@Kimi_Moonshot 的 mooncake v0.3.11 包含了我对该仓库的第一个 PR。
在性能至关重要的地方,无锁编程模式不断被重复采用。LMAX 率先实现了这一点:预分配的环形缓冲区、无锁CAS序列、热路径中无内存分配。@TigerBeetleDB 也严格遵循这一原则,启动后不再有 malloc 或 free。
我的 PR 1820 引入了一个内存区域(memory arena)。mooncake 在启动时预分配一大块内存,并在每次缓存操作中复用该内存,热路径中不再有内核调用。在 @vllm_project 和 @sgl_project 中启用它,即可免费获得有效吞吐量提升!
每一代 GPU 都会让相同的 CPU 工作占据请求总时间的更大比例。阿姆达尔定律最终会揭示热路径中所有你未曾优化的固定成本。值得提前应对。
相似文章
@_avichawla: LLM推理中的预填充与解码。你是否注意到,LLM的第一个令牌总是需要片刻才出现…
解释LLM推理的两个阶段——预填充和解码,详细说明GPU瓶颈如何从预填充时的计算受限转变为解码时的内存受限,以及KV缓存的重要性。
@TheAhmadOsman: 为什么我关注你硬件的推理引擎/软件栈? - 2x RTX 3090s: ~14.5 tok/s → ~64 tok/s 提升到…
不同硬件上推理引擎性能对比:在2x RTX 3090s上从基线迁移到TP=2的vLLM,性能从~14.5 tok/s提升至~64 tok/s;在RTX PRO 6000上迁移到Sglang,性能从~32 tok/s提升至~110 tok/s。推荐在CUDA/多GPU场景使用vLLM/Sglang,在边缘设备使用llama.cpp。
@_avichawla: 一个棘手的LLM面试题:你在vLLM上部署推理模型,长序列时GPU内存总是不够用。于是你加入KV缓存压缩,驱逐了90%的缓存token。显存占用依旧,GPU仍然内存不足。为什么?
解释了为什么在vLLM上部署推理模型时,驱逐90%的KV缓存token无法释放GPU内存,原因是分页注意力碎片化。同时介绍了NVIDIA的TriAttention解决方案,可实现2.5倍加速和10.7倍内存缩减。
@che_shr_cat: 1/ 我们一直误解了GPU内存的使用方式。如果GPU根本不需要存储你的模型呢?MegaTrain 实现了…
MegaTrain 通过将 VRAM 视为瞬时无状态缓存,反转内存层次结构,在单张 GPU 上实现了 100B 以上大语言模型的全精度训练。
@KL_Div:随着生成长度增加,LLM 占用的 GPU 内存持续攀升。能否在几乎不牺牲精度的前提下,让 GPU 内存占用保持恒定?
IceCache 通过“动态连续索引”(DCI)技术,在超长生成任务中将 GPU 内存占用压到恒定,且精度损失极小。