跳到正文
Semiconductor Engineering 芯片与封装· Kushal Koolwal·· 4 小时前AI 评分33

超越带宽:AI 推理正在重塑“内存墙”

Beyond Bandwidth: AI Inference Is Reshaping The Memory Wall

AI 导读

AI 推理的大规模部署正把“内存墙”从带宽问题变成带宽、容量、延迟、功耗、成本和利用率之间的系统级协调问题。KV cache 体现了这一权衡:它减少生成式推理中的重复计算,但更长上下文窗口和更高并发会放大需要保留和反复访问的数据量。架构设计必须跟随工作负载,没有单一内存指标可以单独优化。

正文 · AI 翻译

过去几年,AI 基础设施一直在进行一场算力竞赛。更多的加速器、更大规模的异构集群和更高的峰值性能,催生了能力越来越强的模型。随着 AI 进入大规模部署阶段,基础设施必须支持更多用户、更大的模型、更长的上下文窗口以及更复杂的应用。性能依然重要,但时延、功耗、利用率、可预测性和单次推理成本同样重要。

挑战不仅限于带宽。AI 系统必须在内存容量、带宽、时延、功耗、数据搬运、利用率和成本之间取得平衡。改善其中一个维度可能会给其他维度带来压力。键值(KV)缓存就体现了这种权衡。KV 缓存减少了生成式 AI 推理过程中的重复计算,但要求系统保留并反复访问不断增长的数据量。随着上下文长度和并发请求数量的增加,这种权衡变得更加突出。

其结果并不仅仅是又一个内存瓶颈。这是一个横跨算力、内存、互连和软件的协同调度问题。只有当系统能够在不让时延、拥塞、功耗或复杂性抵消收益的前提下放置、移动和检索数据时,增加容量或带宽才有意义。

内存墙正在变得越来越宽

内存墙问题早于 AI 出现。历史上,处理器性能的提升速度一直快于内存系统向处理器提供数据的能力。AI 放大了这一问题。如果加速器把更多时间花在等待数据上,那么提高算术吞吐量所带来的收益将十分有限。

但带宽只是约束的一部分。AI 系统还需要足够的容量来存放模型、中间数据、应用上下文和推理状态。时延影响响应速度。功耗限制了能够以经济方式搬运的数据量。封装和物理互连则限制了高性能内存能放置在距算力多近的位置。

这些需求经常相互冲突。靠近加速器的高带宽内存可以提供巨大的带宽,但其容量、功耗和成本都受到限制。容量更大的内存可能更经济,但未必能提供同样的带宽或时延。在多个层级之间搬运数据可以扩展有效容量,但会消耗带宽、功耗和时间。

因此,内存墙正在成为一个多维度的系统级约束。

图 1:AI 规模化使内存墙变成带宽、容量、时延、功耗、成本和利用率之间的系统级权衡。

一个系统可能拥有可观的内存总量,但并非所有容量都同样有用。较低层级中的数据虽然在技术上可访问,但可能距离太远、过于拥塞或成本太高,无法在应用的服务级目标(SLO)内完成搬运。

实际的限制并非仅在于已安装的容量,而在于在工作负载的时延、带宽和功耗范围内的可用容量。

推理改变了经济性

训练大型模型需要海量的算力资源和内存带宽,但它本质上是构建或更新模型的过程。推理则是动态且持续进行的。每一个提示词、每一个生成的 token、每一次智能体动作和每一次应用交互都会消耗基础设施资源。

推理本身也不是单一的工作负载。对话式助手可能更看重延迟。企业级 AI 助手可能在处理大量专有上下文的同时支持众多用户。AI 智能体可能需要在多个步骤之间保留信息。消费级服务可能更看重吞吐量和每 token 成本。批量推理则可能更看重利用率。

每一种都会在带宽、容量、延迟、功耗和成本之间形成不同的平衡。架构必须跟随工作负载。

KV 缓存揭示了这种权衡

在 transformer 推理过程中,注意力机制会为序列中的 token 生成键(key)和值(value)表示。保留这些表示可以让后续的解码步骤复用先前的状态,而不是为之前的 token 重新计算。这提高了推理效率,减少了重复计算,但同时增加了内存容量和数据搬运的压力。

更长的上下文窗口会增加每个序列的 KV 缓存占用。更高的并发会在同时处理的请求间成倍放大这一需求。因此,一项旨在降低计算需求的优化,反而产生了更多必须保留和访问的数据。

图 2:减少重复计算可提升效率,但更长的上下文和更高的并发会增加必须保留、搬运和管理的数据量。

KV 状态还有自己的生命周期。它在 prefill 阶段被创建,在 decode 阶段被反复访问,并可能被保留以供复用。取决于服务架构,它可能被移动、复制、压缩或驱逐。每个阶段对带宽、容量、延迟和控制的要求都不同。

因此,KV 缓存不仅是内存分配问题,更是一个数据生命周期问题。只有当将 KV 状态移动到更低成本层级所能释放的更高层级容量,或所避免的重计算,能够超过传输延迟、带宽消耗、能耗以及错过 SLO 的风险时,这种移动才有意义。换言之,每一次数据移动都必须挣回自身的成本。

工作负载决定架构

延迟敏感型助手可能受益于将频繁访问的数据放在靠近加速器的位置。长上下文的企业应用可能更看重容量。AI 智能体可能需要生命周期更长的状态和更频繁的复用。大规模消费级推理可能更看重吞吐量、利用率和每 token 成本。

频繁访问的数据可以存放在计算附近。其他数据则可以容忍额外延迟以换取更大容量或更低成本,或随着访问模式的变化在各层级之间移动。目标不是消除内存层级结构,而是高效地协调这一层级。

没有单一的内存指标

带宽依然至关重要,但只针对带宽进行优化会忽略其他约束。容量决定了有多少模型和推理状态可以保持可访问。延迟影响响应时间。功耗决定了持续增加数据搬运是否可持续。利用率则表明昂贵的计算资源是在工作还是在等待数据。

高聚合吞吐量可能掩盖了拥堵时不可接受的首 token 时间、token 间延迟或尾延迟。更有意义的度量或许是在满足延迟目标的前提下,每瓦特或每美元产出的 token 数。仅凭标称带宽并不能解决内存墙问题。

相关的问题是:在可用的功耗和成本范围内,哪种计算、内存、互连和软件的组合能提供可预测的性能?

仅增加内存是不够的

高带宽内存可以在加速器附近快速提供数据。在容量比最大带宽更重要的场景下,更大容量的存储层级可以对其加以补充。扩展和池化可以提供超出加速器旁内存的容量。软件可以根据工作负载需求放置、重用、压缩、移动或丢弃 KV 状态。

但每增加一个层级都会带来更多决策。一个实用的架构必须回答四个问题:

  1. 放置:哪些数据必须留在计算附近,哪些数据可以容忍放在更远的层级?
  2. 移动:什么时候传输数据比重新计算更高效?
  3. 协调:加速器、内存控制器、互连和软件应如何协调放置和移动,而不造成拥塞?
  4. 保障:当推理状态跨越更多边界时,系统如何保持可靠性、隔离性、数据完整性和可预测的性能?

将数据移动到更大容量的层级可能会增加有效容量,但会增加延迟。复制状态可以避免重新计算,但会在别处消耗带宽和容量。池化可以提高利用率,但前提是争用和服务质量保持可控。优势并非来自最大化某个内存指标或增加另一个层级,而是来自将整个层级体系作为一个系统来协调。

内存墙将不断移动

更高带宽的内存、更大的容量、更快的互连、压缩以及更智能的缓存管理可以缓解限制,但无法消除这一挑战。当一个瓶颈得到改善时,应用程序和模型会利用这些额外资源。更长的上下文、更高的并发、多模态模型以及日益复杂的智能体将继续改变内存压力出现的位置。因此,软硬件协同设计至关重要,因为每一层都会影响数据移动。

AI 基础设施扩展的下一阶段将不会仅由计算定义,也不会仅靠增加内存来解决。更艰巨的任务是协调推理数据驻留的位置、何时移动,以及移动数据是否比重新计算更高效。内存墙正在演变为一个更宽泛的命题:考验系统将分布式内存资源转化为可预测 AI 性能的能力。

链接

来源: Semiconductor Engineering 芯片与封装 · semiengineering.com