# 异步连续批处理:打破 LLM 推理中的 CPU-GPU 同步瓶颈

Table of Contents

背景

在 LLM 推理服务中,连续批处理(continuous batching)通过动态调度请求使 GPU 保持忙碌,但默认的同步模式仍存在严重浪费:CPU 准备批次时 GPU 空闲,GPU 计算时 CPU 等待。对于每秒运行数百步的推理循环,这些空隙累积可达总运行时间的四分之一。以 H200 GPU 每小时 5 美元的成本计算,这意味着每天浪费约 30 美元的计算资源。

核心内容分析

同步批处理的缺陷

在同步模式下,推理过程如下:

  1. CPU 选择请求、更新 KV 缓存表、驱逐已完成请求、接纳新请求。
  2. CPU 将准备好的输入传输到 GPU。
  3. GPU 执行前向传播和采样,产生新 token。
  4. 结果返回 CPU,然后重复循环。

关键在于第 3 步完成后,GPU 必须等待第 1-2 步的 CPU 准备工作完成才能开始下一次计算。这种串行交替导致 GPU 利用率无法达到 100%。

异步批处理的实现原理

Hugging Face 团队提出的异步批处理核心思想是 将 CPU 批次准备与 GPU 计算并行化。具体做法包括:

  • 使用双缓冲机制:CPU 持续准备下一个批次的数据(包括 KV 缓存管理、请求调度),而 GPU 同时计算当前批次。
  • 通过预取和流水线技术,使 GPU 始终有准备好的批次可用。
  • 优化数据传输和同步点,减少锁争用。

实验中,对一个 8B 模型在 batch size 32 下生成 8K token 进行性能剖析,同步模式中 GPU 空闲时间(CPU 处理时间)约占 20%。异步优化后,这部分空闲被消除,吞吐量显著提升。

性能收益

异步批处理的主要收益:

  • GPU 利用率接近 100%:减少了不必要的等待,使计算资源得到充分利用。
  • 降低推理延迟:批处理准备不阻塞 GPU,整体端到端延迟下降。
  • 提升吞吐量:可服务的每秒 token 数增加,尤其在高负载下效果明显。

行业影响/专业点评

异步批处理是 LLM 推理优化的重要一步:

  1. 从同步到异步的范式转变:传统的推理引擎大多采用同步调度,此方法提供了一种可直接落地的改进路径,且与现有连续批处理兼容。
  2. 成本效益显著:在云 GPU 成本高昂的背景下,提升 20% 利用率意味着相同预算下可服务更多请求,或降低企业使用门槛。
  3. 适用场景广泛:该技术不仅适用于文本生成,也可扩展至多模态、代码生成等需要连续批处理的服务。
  4. 开源生态推动:Hugging Face 将这一方法公开并计划集成到 Text Generation Inference (TGI) 等工具中,有望成为行业标准。

未来,随着 LLM 规模增大和实时性要求提高,类似 CPU-GPU 异步化的创新将持续成为推理优化的重要方向。


来源

My avatar

文章看完了,不打算去别的篇章转转吗?👀 感谢你的耐心阅读!如果你有问题想探讨,或者发现了文中的 Bug,请务必通过页脚的链接联系我


More Posts

Comments