[控场AI]
· 4 分钟阅读· 2,409 字

CPU也能高效跑长上下文注意力:CACPU内核解析

CPU也能高效跑长上下文注意力:CACPU内核解析

CACPU用分层缓存分块与内核内调度优化CPU注意力,预填充最高加速2.01倍。

针对多Agent并发长上下文预填充迅速耗尽GPU算力的问题,新研究提出CPU注意力内核CACPU。它瞄准现有CPU内核的两大短板:无法适配多级缓存层次、缺乏有效线程调度。设计上,分层缓存分块让数据块尺寸匹配L1/L2/L3容量与延迟,减少内存搬运;内核内任务调度则动态分发线程任务,缓解因果掩码造成的计算不均衡。实测相比PyTorch SDPA、FlexAttention和SGLang注意力内核最高加速2.01倍;集成到SGLang后,Llama-3.1-8B的首Token延迟最高降低1.74倍且精度不变。这表明CPU可承担实际预填充负载,成为不依赖GPU扩容的优化路径。

当多个AI Agent同时处理长上下文任务时,GPU资源很容易成为瓶颈。一项新研究提出了CACPU——一个专为因果全序列预填充(causal full-sequence prefilling)设计的CPU注意力内核,通过分层缓存分块和内核内任务调度机制,在CPU上实现了对PyTorch SDPA、FlexAttention和SGLang注意力内核最高2.01倍的加速。

CACPU研究概览

为什么需要CPU注意力内核

Agentic AI正在多个领域带来显著的生产力提升,但多个Agent并发的长上下文预填充会迅速占满GPU计算资源。CPU作为替代方案虽然可行,但现有CPU注意力内核存在两个关键短板:一是无法适应多级缓存层次结构(multi-tier cache hierarchies),二是缺乏有效的线程调度机制。CACPU正是针对这两个痛点设计的。

因果全序列预填充(causal full-sequence prefilling) 是大模型推理的第一个阶段:模型在生成任何Token之前,需要一次性处理完整的输入上下文,并为所有位置计算Key/Value缓存。与逐Token解码不同,预填充阶段的计算是高度并行的矩阵运算,计算密度大、对内存带宽和缓存容量都很敏感。"因果"意味着每个位置只能关注自身及之前的位置,这种下三角掩码结构会让不同位置的计算量呈阶梯式分布,正是后文所述负载不均衡的根源。在Agentic AI场景中,多个Agent各自携带长上下文并发请求,预填充阶段会集中消耗大量算力,因此把它卸载到CPU上执行、与GPU上的解码阶段形成流水,是一种有吸引力的异构调度思路。

CACPU的两个核心设计

分层缓存分块

现代CPU拥有复杂的多级缓存体系(L1/L2/L3),不同层级的容量和延迟差异显著。CACPU采用分层缓存分块策略,让注意力计算的数据块大小与缓存层级相匹配,减少数据在内存层次间的频繁搬运,从而提升缓存命中率和计算效率。

多级缓存层次结构(multi-tier cache hierarchy) 指现代CPU中由寄存器、L1/L2/L3缓存和主存构成的金字塔:L1容量最小(数十KB)但延迟仅几个周期,L2为数百KB到数MB,L3为数十MB且被多核共享,主存则达数十GB但延迟高出两个数量级。注意力计算涉及Q、K、V矩阵及中间结果的大量往返访问,若数据块尺寸与某一级缓存容量不匹配,就会频繁发生缓存驱逐和回填,实际性能远低于峰值算力。所谓"缓存分块"(cache blocking/tiling),就是把大矩阵切分成能驻留在特定缓存层级的小块,使块内计算在数据被驱逐前完成尽可能多的复用,从而把访存瓶颈转化为计算瓶颈。

内核内任务调度

仅靠缓存优化还不够。CACPU在内核内部实现了任务分发机制(in-kernel task dispatching),能够根据计算负载动态分配线程任务,避免因因果注意力掩码导致的计算不均衡——在因果注意力中,序列前部的位置参与的计算远少于后部位置,容易造成线程空闲。这种负载均衡调度让CPU的并行能力得到更充分的利用。

因果注意力掩码(causal attention mask) 是一个下三角矩阵,位置 i 只能关注位置 0 到 i。若把序列按查询位置平均切分给各线程,序列开头线程的工作量几乎为零,末尾线程则需处理全部键值,形成典型的"长尾"负载。内核内任务调度(in-kernel task dispatching)不同于操作系统级的线程调度,它发生在单个计算内核内部:按实际计算量而非固定块数划分任务粒度,让先完成的线程从共享任务队列中动态领取新块,实现工作窃取式的均衡。这种细粒度调度能显著降低线程空闲等待,也是CPU相对GPU更容易实现灵活调度的一个优势。

实测效果

研究给出的数据相当有说服力:CACPU相比PyTorch SDPA、FlexAttention和SGLang注意力内核,最高实现2.01倍加速。更关键的是,当CACPU集成到SGLang推理框架后,Llama-3.1-8B的首Token延迟(TTFT)最高降低1.74倍,同时保持模型精度不变。

这意味着在Agentic AI场景下,CPU不再只是GPU的备用方案,而是可以承担实际预填充负载的有效算力来源。对于需要同时服务多个Agent、长上下文请求密集的部署环境,CACPU提供了一条不依赖GPU扩容的优化路径。

首Token延迟(TTFT, Time To First Token) 指从请求发出到模型输出第一个Token的时间,包含请求排队、预填充和首次采样,是交互式与Agent场景中最直接影响体验的指标。对多Agent并发部署而言,TTFT还决定了单个请求占用资源的时长:TTFT越低,同样的CPU/GPU资源在单位时间内能服务的请求数越多。需要注意的是,CACPU优化的是预填充阶段,因此其收益主要体现在TTFT上,而对逐Token的解码吞吐影响有限——这也解释了为何与GPU解码流水线配合的异构方案更具实用价值。

对AI基础设施的启示

CACPU的价值不仅在于具体的加速数字,更在于它揭示了CPU注意力优化的方向:缓存感知的数据布局和细粒度的线程调度是释放CPU算力的关键。随着Agentic AI应用增多,异构计算资源的高效利用会变得越来越重要,而这类针对CPU架构深度优化的内核,可能成为推理基础设施中不可或缺的一环。

研究团队将CACPU集成进SGLang并验证了端到端效果,说明这项工作已经具备工程落地的基础。对于关注推理成本优化的团队来说,这是一个值得跟踪的方向。

#CACPU#CPU注意力内核#长上下文预填充#SGLang#缓存优化#线程调度#Agentic AI推理
分享:

相关推荐