关键词:大语言模型、动态推理、FPGA 加速、混合精度计算、KV 缓存管理
大语言模型的推理效率面临一个根本性矛盾:模型对所有词元执行相同的计算,但不同词元对语义的贡献差异巨大。正如人类阅读时会自动略过虚词,聚焦实词,大模型也应具备“选择性计算”的能力——这正是动态计算分配方法(如 SkipGPT)的核心思想。
然而,算法层面宣称的计算量减少,往往难以在实际硬件上转化为等比例的延迟降低。原因何在?
根本原因在于动态执行模式与现有硬件架构(尤其是 GPU 和传统 FPGA 加速器)的静态、批处理优化设计之间存在“阻抗失配”:
- 非线性操作(如 Softmax、LayerNorm)和轻量级路由器在 GPU 上会引入显著的控制流开销。
- 混合精度计算模式导致 DSP 等计算资源利用率低下。
- 跨层 KV 缓存重用会引发不规则的内存访问模式。
这些挑战共同构成了动态大语言模型推理的硬件瓶颈。

针对这一痛点,来自东方理工大学和 UCLA 的研究团队提出了 SkipOPU,一种基于 FPGA 的、支持动态计算分配的覆盖处理器。
该研究首次在硬件层面完整支持了词元级和层级动态剪枝。在 AMD U280 FPGA 上的实验表明,SkipOPU 实现了相比 GPU 及现有 FPGA 加速器 1.23 倍至 3.83 倍的带宽效率提升,同时通过跨层 KV 重用,将 KV 缓存存储开销降低了高达 25.4%。

本文将对 SkipOPU 的设计理念、核心创新与实验结果进行解读,探讨如何从数据流、计算单元和存储体系三个维度,为动态大语言模型构建真正高效的硬件基础。
本文目录
- 一、问题本质:动态计算分配为何“叫好不叫座”?
- 1.1 SkipGPT:词元级动态计算的优雅框架
- 1.2 三个“硬骨头”:为什么现有硬件扛不住?
- 二、数据流优化:让非线性操作“隐形”
- 2.1 路由器与 RMSNorm 的深度融合
- 2.2 Self-Attention 中的 Softmax 融合
- 三、混合精度 PE 阵列:榨干 DSP 的每一分算力
- 3.1 DSP Overpacking:从“资源闲置”到“空间复用”
- 3.2 块浮点累加:化浮点为定点,化繁为简
- 四、KV 不变性缓冲:化不规则为规则
- 4.1 核心观察:被跳过词元的 KV“静止”特性
- 4.2 词元级内存映射与片上缓冲区
- 4.3 效果:超越物理带宽的“魔术”
- 五、端到端性能:数字说话
- 5.1 实验设置
- 5.2 资源利用率
- 5.3 消融研究:数据流优化的贡献
- 5.4 与 SOTA 对比
- 六、相关工作:SkipOPU 在学术版图中的位置
- 6.1 FPGA 上的 LLM 加速器
- 6.2 非线性处理引擎(NPE)
- 6.3 KV 缓存管理
- 结语与展望
一、问题本质:动态计算分配为何“叫好不叫座”?
1.1 SkipGPT:词元级动态计算的优雅框架
在深入硬件设计前,首先需要理解 SkipGPT 这一代表性动态剪枝框架的工作原理。
传统 Transformer 模型采用“全执行”模式:每个词元在每一层都会依次经过多头注意力(MHA)和前馈网络(FFN)子模块。SkipGPT 的创新在于,在每个子模块前插入一个轻量级路由器(通常是一个线性层),动态决定当前词元是否执行该子模块的计算。

SkipGPT 框架中,单个子模块(MHA 或 FFN)的输入输出更新规则可公式化表达如下:
(此处保留原公式位置,内容略)
l表示 Transformer 层的索引(从 1 到 L)。M_l代表第l层中的一个子模块,可以是多头注意力(MHA)或前馈网络(FFN)。每个子模块前都有一个独立的路由器。x_l是第l层输入中当前词元的嵌入向量(维度d)。- “sampled result” 在推理阶段实际为确定性决策:路由器先计算 logits,然后取
argmax得到二元决策d_l(1 表示执行,0 表示跳过)。训练时则采用 Gumbel-Softmax 采样以保证可微,因为 Gumbel-Softmax 是对离散采样(执行/跳过)的连续、可微近似,这使得路由器能在训练中通过梯度下降学习到合理的动态决策策略。 - 残差连接
x_{l+1} = x_l + M_l(x_l)始终存在:即使子模块被跳过,输入信息仍直接传递到输出。
直观理解是:重要词元“享受”完整的模型参数服务,而不那么重要的词元则“绕过”部分计算,从而实现计算量的动态分配。
SkipGPT 的独特优势在于模块解耦:MHA 和 FFN 可以独立决定是否执行,而非像 Mixture-of-Depth 等方法那样强制绑定。这种细粒度的控制为硬件加速带来了灵活性,但也埋下了挑战的伏笔。
具体而言:
* 灵活性:一个词元可以在同一层中执行 MHA 但跳过 FFN,或者相反。这允许模型更精细地分配计算资源给真正重要的运算。
* 挑战:独立路由导致被跳过子模块的中间结果(如 MHA 的 KV 缓存)无法直接获得。SkipGPT 采用跨层 KV 复用策略:若当前层跳过 MHA,则从最近执行过 MHA 的层中继承 Key 和 Value 向量。这虽然保持了注意力语义,却使得解码时的 HBM 访问模式变得高度不规则,成为硬件加速的主要难点之一。
1.2 三个“硬骨头”:为什么现有硬件难以应对?
SkipOPU 作者总结了动态 LLM 推理在硬件加速上面临的三重困境:

困境一:非线性操作的路由器延迟“放大器”
非线性操作(Softmax、LayerNorm/RMSNorm)和 Gumbel-Softmax 路由器有一个共同特点:低算术强度 + 强数据依赖。这意味着它们无法像矩阵乘法那样通过流水线并行获得高吞吐,反而会成为整个推理管道的“气泡”。
以 RMSNorm 为例,其计算需要先求均值和方差(一次数据遍历),再进行归一化(第二次数据遍历)。传统的实现方式会导致矩阵乘法与归一化之间产生显著的等待延迟。更糟糕的是,路由器引入的 Gumbel 采样进一步增加了控制流开销——GPU 架构对此尤其不擅长。
困境二:混合精度偏好的“资源浪费”
量化研究表明:模型权重可以激进地量化到 4-bit 整数而精度损失极小,但激活值通常需要保留 FP16 以保证数值稳定性。这形成了 FP16×INT4 的混合精度计算模式。
问题在于:FPGA 的 DSP48E2 原生支持 27×18-bit 乘法,执行 FP16×FP16 时已经存在位宽浪费,而处理 INT4 数据时更是“大炮打蚊子”——大量算术资源闲置。现有 DSP 打包技术要么受限于操作数位宽约束而不可行,要么无法充分利用 DSP 内置的加法器资源。

困境三:KV 重用导致的“内存访问混沌”
动态层剪枝引入了一个微妙的一致性挑战:当第 l 层的某个词元被跳过时,其 Key 和 Value 向量从哪里来?标准做法是重用最近一次执行层(如 l-1 层)的 KV 表示。这在语义上是合理的(因为被跳过的词元变化不大),但在内存访问模式上却是灾难性的。

如图 6(b) 所示,在解码阶段计算第 l 层的注意力时,需要同时获取:第 l 层新生成的 KV(活跃词元)和从第 l-1 层重用的 KV(跳过词元)。在传统的交叉存取映射下,这些 KV 分散在不同 HBM 通道的不连续地址空间,导致 AXI 突发事务频繁断裂,有效带宽急剧下降。
这就是动态推理硬件加速的“不可能三角”:算法灵活性、硬件效率和内存带宽难以兼得。SkipOPU 的价值正在于找到了打破这个三角的巧妙支点。
二、数据流优化:让非线性操作“隐形”
SkipOPU 的第一个核心创新在于数据流层面的重构。其指导思想可以概括为:将非线性操作的归约阶段与相邻线性计算融合,通过增量计算隐藏延迟。
2.1 路由器与 RMSNorm 的深度融合
传统的执行流程如下:
1. 从 HBM 加载激活矩阵 → 计算路由器 logits → 存储 logits
2. 重新加载激活矩阵 → 计算 RMSNorm 的均值/方差 → 存储统计量
3. 再次加载激活矩阵和统计量 → 执行归一化 → 存储归一化结果
4. 加载归一化结果 → 执行 MHA/FFN 的矩阵乘法
三次大的内存往返,两次全数据遍历。
三、深度融合数据流:消除非线性操作的延迟瓶颈
SkipOPU 的核心创新之一在于其深度融合数据流算法,该算法通过将路由决策、归一化与矩阵乘法等操作在数据流层面进行深度融合,有效消除了传统串行执行带来的延迟瓶颈。
3.1 路由与 RMSNorm 的深度融合
传统实现中,路由器的线性计算、RMSNorm 的归约统计量计算以及后续的矩阵乘法是串行执行的,导致激活矩阵需要被多次加载,造成显著的访存开销和计算停顿。
SkipOPU 的融合数据流算法(Algorithm 1)彻底改变了这一模式。其核心思想是将激活矩阵按行分块(Tile)进行流式处理,并在处理每个 Tile 时并行执行路由计算和归一化所需的统计量归约。
“`pseudocode
// 算法 1:路由与 RMSNorm 深度融合数据流(示意)
for each tile of activation matrix X_i:
// 单次加载 X_i 到片上缓存
for k in range(0, D, S):
// 并行执行:
logit += X_k @ W_router // 路由线性计算(部分和)
μ += rowsum(X_k) / D // 计算均值(部分和)
var += rowsum(X_k^2)/D – μ^2 // 计算方差(部分和)
// 基于完整统计量进行路由决策
decision = argmax(logit + Gumbel_noise) // Straight-Through Gumbel-Softmax
// 仅对未跳过的词元执行归一化及后续计算
if decision == 1:
X_norm = (X - μ[decision==1]) / sqrt(var)
// 归一化结果直接流入 PE 阵列进行后续矩阵乘法
V_tile = X_norm @ W_V
“`
算法核心步骤与优势:
* 并行归约与决策:在 Tile 级流式处理过程中,同时累加路由器的线性计算结果(logit)和 RMSNorm 所需的均值(μ)与方差(var)统计量。待 Tile 处理完毕,立即基于完整的统计量做出路由决策。
* 条件执行与数据覆盖:仅对路由决策为“保留”的 Token 执行归一化操作。归一化后的激活值在流出非线性处理引擎(NPE)的同时,被直接写回片上缓存,原地覆盖原始的未归一化数据。这种“就地更新”策略节省了存储空间,并避免了后续计算的重复加载。
* 延迟隐藏:该设计将原本需要两次完整遍历激活矩阵的操作(一次路由+一次 RMSNorm 归约,再一次归一化+矩阵乘法)压缩为一次 Tile 流式传递。非线性操作的延迟被完全隐藏在矩阵乘法的流水线中。实验表明,该融合设计可为 LLM 推理减少约 40% 的端到端延迟。
3.2 Self-Attention 中的 Softmax 融合
Self-Attention 模块中的 Softmax 操作是另一个内存和计算瓶颈,传统实现需要物化完整的注意力分数矩阵(大小为 N×N),导致巨大的片上存储压力。
SkipOPU 借鉴了 FlashAttention 的增量更新思想,设计了深度融合的自注意力数据流(Algorithm 2),将 Softmax 的归约阶段与 QK^T 计算相重叠。

算法核心思想:
1. 分块计算与增量统计:将 Q、K、V 矩阵分块处理。在计算 QK^T 的分块时,同时在线维护每行的最大值(m)和指数和(ℓ)等 Softmax 统计量。
2. 流式归一化与输出累加:当所有分块计算完毕,获得最终的 m 和 ℓ 后,重新流式加载 QK^T 的分块和对应的 V 分块,执行指数归一化(使用最终的 m 和 ℓ),并立即累加到输出 O 中。
3. 多头打包:由于需要在线保存的中间统计量 m 和 ℓ 体积很小,该算法使得同时处理多个注意力头(多头打包)成为可能,显著提升了计算的空间局部性和吞吐量。
关键价值:
* 内存需求大幅降低:无需物化完整的 N×N 注意力矩阵,片上存储需求从 O(N^2) 降至 O(N×B)(B 为块大小)。
* 消除流水线停顿:Softmax 的归约与 QK^T 计算重叠,其归一化与 OV 计算融合,消除了矩阵乘法与 Softmax 之间的流水线气泡。
* 提升吞吐:结合多头打包技术,该融合数据流使 Multi-Head Attention(MHA)在预填充(Prefill)阶段的吞吐量提升了 1.4 倍。
四、混合精度 PE 阵列:最大化硬件计算密度
数据流优化解决了宏观调度问题,而混合精度处理单元(PE)阵列的设计则是对微观计算密度的极致挖掘,旨在充分利用 FPGA 上 DSP 硬核的每一位计算能力。
4.1 DSP Overpacking:从“资源闲置”到“空间复用”
FPGA 中的 DSP48E2 硬核原生支持 27×18 位乘法。直接用于 FP16(有效尾数位宽 11 位)乘法会造成超过 60% 的乘法器位宽浪费。DSP 打包(Packing)技术试图在一个 DSP 中并行执行多个低精度乘法,但面临位宽约束和结果交叉污染等挑战。

SkipOPU 提出了一种 “截断式过打包”(Truncated Overpacking) 方案(上图 c),其核心技巧如下:
* 操作数截断:将右操作数的低有效位(LSB)和左操作数的高有效位(MSB)进行巧妙截断。
* 误差恢复:利用 DSP 的预加法器(Pre-adder)反转左操作数符号,使得因截断和打包造成的误差,能够通过 DSP 的 C 端口注入的单次加法操作同时完成“污染消除”和“截断恢复”。
效果:该方案使单个 DSP48E2 能够并行执行 2 个 FP16 尾数乘法,仅需一个额外的 5 位辅助乘法器进行最终恢复。相比传统的级联浮点乘加器 IP 核,SkipOPU 的 PE 阵列在实现相同算力(DSP 数量相同)的情况下,节省了约 57.2% 的 LUT 资源,且保持了更高的计算精度。
4.2 块浮点累加:化浮点为定点,简化累加逻辑
在完成并行乘法后,需要对大量部分积进行累加。若全程使用浮点累加,将引入复杂的对齐、归一化逻辑和长延迟。
SkipOPU 采用 块浮点(Block Floating Point, BFP)累加 策略来优化这一过程:
* 局部定点累加:在一个计算块(如多个并行乘法的结果)内,将这些共享相同或相似指数范围的部分积转换为定点数,在定点数域进行高效的累加。
* 最终浮点转换:块累加完成后,再将累加结果转换回标准的浮点数格式。
优势:
* 简化电路:将复杂的浮点加法器树转化为更简单、延迟更低的定点加法器树。
* 提升效率:显著减少了数据通路中的规格化移位和舍入操作,提高了累加计算单元的效率和时序性能。

上表展示了混合精度计算单元的性能对比。其中 IMPL3(采用截断式过打包与 BFP 累加树)在 DSP 利用率翻倍的前提下,LUT 资源消耗大幅低于基准方案,并且对于 FP16×INT4 这种非对称精度量化也保持了极低的误差(<0.07%),证明了该设计对现代 LLM 推理中激活-权重非对称精度偏好具有良好的硬件支持效率。
四、KV 不变性缓冲:化不规则为规则
数据流与计算单元的优化解决了计算效率问题,但动态推理的另一大瓶颈在于内存访问。SkipOPU 的第三个核心创新在于利用跨层 KV 缓存的不变性,将随机的片外存储器访问转化为高局部性的片上数据复用。
4.1 核心观察:被跳过词元的 KV “静止”特性
一个关键但常被忽视的事实是:如果一个词元在第 L 层被跳过(即不执行多头注意力计算),其键值(KV)表示从第 L 层到第 L+1 层将保持不变,直至该词元被重新激活。原因在于:
* 该词元在该层的输出 h_i^L 等于其输入(跳过分支)。
* 下一层的 KV 生成依赖于 h_i^L,因此也保持不变。
这种“跨层不变性”意味着:一旦某个词元在第 L 层生成了 KV,在后续若干层(直到它再次被选中执行计算)中,其 KV 值可以被无限次重用,而无需重新计算或重新从片外存储器加载。
4.2 词元级内存映射与片上缓冲区
SkipOPU 的设计充分利用了这一特性:
- 词元级内存映射:如图 6(a) 所示,将每个词元的 KV 条目连续存储在单个高带宽存储器(HBM)端口的局部地址空间内,而非跨多个端口交叉存取。这确保了单个词元的 KV 访问具有长突发和高空间局部性。
- 片上 KV 不变性缓冲区:如图 6(b) 所示,将被跳过词元的 KV 值固定在片上 URAM 中。当这些词元在后续层被其他活跃词元查询时,可直接从片上缓冲区获取数据,无需访问 HBM。
- 前瞻性更新:由于路由决策是逐层确定的,当第 L 层正在执行时,第 L+1 层的路由掩码已经就绪。控制器可以在后台“预知”哪些 KV 条目需要在下一层复用,并提前将其载入缓冲区。这意味着缓冲区的维护不占用计算关键路径的延迟。

图 6(a):KV 缓存的词元级内存映射方案。

图 6(b):KV 不变性缓冲区如何消除 HBM 端口冲突。

图 7:连续注意力层与非连续层下的 KV 缓存访问调度对比。
4.3 效果:超越物理带宽的“有效带宽”
图 9 展示了 SkipOPU 内存系统的优化效果:
* 密集 KV 基线:连续访问,有效带宽为 408.7 GB/s(达到峰值带宽的 88.7%)。
* KV 重用 + 标准交叉存取:访问模式碎片化,有效带宽骤降至 55.8 GB/s。
* 增加词元级映射:恢复了空间局部性,有效带宽回升至 360.2 GB/s。
* 增加 KV 不变性缓冲:进一步消除了通道竞争,聚合有效带宽达到 467.8 GB/s——甚至超过了 HBM2 接口的物理峰值带宽。这看似矛盾,实则是因为缓冲区实现了数据重用:同一个 KV 值被多次访问时,只有第一次需要从 HBM 读取,后续访问全部命中片上 URAM,因此统计意义上的“有效带宽”超过了物理接口的原始吞吐。
存储效率提升:由于被跳过词元的 KV 不需要在每一层都重复存储,SkipOPU 将 KV 缓存的总容量需求降低了高达 25.4%(实验覆盖了不同的序列长度)。

图 9:不同内存映射与调度策略下的有效 KV 缓存带宽。
五、端到端性能:数字说话
5.1 实验设置
5.2 资源利用率
下表展示了 SkipOPU 在 Xilinx Alveo U280 FPGA 平台上的资源利用率分解。

表 2:SkipOPU 在 U280 FPGA 上的资源利用率分解
关键模块的资源占用情况如下:
* PE阵列:作为计算核心,消耗了 65.44% 的 LUT 和 45.39% 的 DSP。
* KV不变性缓冲区:为支持跨层 KV 复用,需要存储多达 1024 个词元的 KV 条目,因此消耗了 53.33% 的 URAM,而 LUT 和 FF 占用率较低(分别为 8.18% 和 0.57%)。
* DMA引擎:以控制逻辑为主,占用了 20% 的 BRAM 用于数据缓冲,未使用 DSP。
整体资源利用情况表明,设计受限于片上逻辑资源(LUT 利用率接近 100%),而非计算单元(DSP 利用率 51.17%)。这种分配体现了 SkipOPU 的设计权衡:通过大量 URAM 实现高带宽的片上 KV 复用,以缓解对 HBM 的不规则访问压力;同时,PE 阵列通过过打包(overpacking)技术提升了 DSP 的有效吞吐,使其在有限数量下仍能高效支持 7B 模型推理。
技术细节:PE 阵列集成了 4096 个 DSP,通过过打包技术实现了每周期 64×128 次 FP16×FP16 或 FP16×INT4 乘法运算,其等效计算密度远超 DSP 数量所暗示的峰值性能。
5.3 消融研究:数据流优化的贡献
本研究通过逐步引入优化策略,评估了它们在预填充和解码阶段对多头注意力(MHA)模块的加速效果。
预填充阶段(序列长度 1024):
* 仅部分跳过(跳过 MHA 计算):加速比为 1.14×。
* + KV 重用(不重新计算被跳过词元的 KV):加速比提升至 1.29×。
* + 融合数据流:加速比进一步提升至 1.40×。此优化通过消除 RMSNorm 和 Softmax 操作引起的“流水线气泡”来实现性能增益。
解码阶段:
随着输出词元数量增加(512-1024),系统转为内存带宽瓶颈,各项优化的加速效果有所减弱。一个关键观察是:部分跳过与 KV 重用之间的性能差距随上下文长度增加而缩小,这直接揭示了因 KV 跨层复用导致的 HBM 通道竞争加剧。KV 不变性缓冲区的引入,正是为了通过片上缓存复用 KV 来填补这一性能缺口。

图 8:不同数据流优化在不同预填充/解码长度下对 MHA 的归一化加速比
上图量化展示了上述优化在不同工作负载下的效果。在计算密集的预填充阶段,减少冗余计算和隐藏非线性延迟均有效。而在内存受限的解码阶段,融合数据流带来的加速随序列增长而衰减,这强烈支持了引入片上 KV 不变性缓冲区的必要性。
5.4 与先进方案的对比
下表将 SkipOPU 与 GPU(A100)及多个先进的 FPGA LLM 加速器进行了对比,评估指标包括吞吐量和带宽效率。

表 3:SkipOPU 与 GPU 及先进 FPGA 加速器的性能对比(基于 Llama2-7B 模型)
根据对比结果:
* SkipOPU 在预填充(长度 128-1024)和解码(输出 512-1024 词元)的端到端任务中,达到了 124.1 token/s 的吞吐量,带宽效率为 34%。
* 虽然其绝对带宽效率低于 FlightLLM(66%)和 ChatOPU(72%)等对比设计,但 SkipOPU 支持动态词元级跳过和 KV 复用,在有效计算量和 KV 缓存开销减少约 25% 的前提下,实现了具有竞争力的吞吐量。这体现了算法与硬件协同设计的价值。
* 需要说明的是,论文中提到的 1.23×–3.83× 带宽效率提升是针对特定基准和配置而言,反映了 SkipOPU 在动态稀疏性利用方面的优势。
六、相关工作:SkipOPU 在学术版图中的位置
6.1 FPGA 上的 LLM 加速器
早期的 FPGA Transformer 加速器(如 FACT、FET-OPU)通常假设静态计算图,优化重点集中于密集或静态稀疏矩阵乘法。近年来的工作(如 FlightLLM、DFX)引入了运行时适应性,但其稀疏性支持仍主要局限于注意力机制内部(例如注意力头剪枝、词元剪枝),未能捕捉跨层、跨词元的异构重要性。
SkipOPU 首次在 FPGA 上实现了对词元级和层级动态剪枝的完整支持。其灵活性来源于三个层面的协同设计:可重配置的 PE 阵列、支持条件执行的非线性处理引擎(NPE)、以及可动态更新的 KV 缓冲系统。
6.2 非线性处理引擎(NPE)
高效处理非线性操作是 LLM 推理的挑战之一。VPE(2024)采用深度流水线来减少停顿,但其行优先处理模式与 PE 阵列的瓦片流输出不匹配,导致接口处存在缓冲延迟。DESA 和 METAL 等设计采用了部分解耦策略,但存在硬件开销过大或功能局限于早期 Transformer 模型(如 BERT)操作的问题。

图 5:非线性处理引擎(NPE)的微架构
SkipOPU 的 NPE 专为支持 Softmax、RMSNorm、SwiGLU 和 RoPE 等现代 LLM 非线性操作而设计。其核心是两个共享的归约单元,用于流水线式地增量计算最大值、指数和等统计量。通过位掩码机制,NPE 仅处理活跃词元,避免无效计算。例如,对于 RMSNorm,归约与路由决策并行执行,随后归一化单元直接读取片上缓冲的统计量进行计算。这种设计将非线性操作与 PE 阵列的流式输出无缝融合,消除了传统架构中的流水线气泡,其 64 路并行度也与 PE 阵列的输出宽度完美匹配。
SkipOPU 的非线性处理引擎(NPE,如图 5 所示)通过统一的瓦片流数据流,将 RoPE、SwiGLU 等现代大语言模型特有的非线性操作无缝集成至执行管线中。其核心设计遵循“共享归约单元 + 位掩码控制”原则:
- RMSNorm 与 Softmax 共享同一套统计量累加硬件。
- SwiGLU 与 RoPE 通过复用指数单元与乘法单元实现。
该设计使得集成这些操作所带来的整体额外硬件开销极小。
6.3 KV 缓存管理
现有方案如 vLLM 的 PagedAttention 主要解决内存碎片问题,而 ChatOPU 则通过归并访存操作来强化访问规律性。然而,这些方法均基于一个关键假设:KV 缓存的访问模式相对可预测。动态层剪枝技术恰恰打破了这一假设。
SkipOPU 提出的 KV 不变性缓冲可视为 PagedAttention 在时间维度上的扩展:vLLM 在空间维度(不同序列之间)对 KV 缓存进行分页管理,而 SkipOPU 则在时间维度(不同网络层之间)实现 KV 缓存的复用。两者具有互补性,未来的工作有望探索在动态剪枝场景下,同时优化空间与时间局部性的协同方案。
结语与展望
SkipOPU 是一项从算法特性到硬件架构深度协同设计的典范。其核心启示在于:
- 数据流优先于计算单元:通过将非线性操作与线性计算深度融合,SkipOPU 在不显著增加算术单元的情况下实现了端到端加速。这揭示了一个关键原则:在硬件加速设计中,“何时计算”往往比“如何计算”更为重要。
- 内存系统是动态推理的关键瓶颈:KV 不变性缓冲的设计表明,动态剪枝带来的内存访问随机性挑战是可以被克服的。通过利用算法层面的不变性(例如被跳过词元的 KV 缓存保持不变),能够将不规则的内存访问“规则化”,甚至实现超越物理带宽的有效吞吐。
- 混合精度需要体系结构层面的创新:Overpacking 与块浮点数累加的组合,展示了如何从指令集架构层面重新思考浮点计算——其目标并非追求每个操作的高精度,而是在保证端到端数值稳定性的前提下,最大化硬件利用效率。
未来方向:SkipOPU 当前虽为 SkipGPT 框架定制,但其核心设计原则——融合数据流、混合精度处理引擎、不变性缓冲——具备更广泛的适用性。可以预见,随着大模型向更长上下文、更细粒度动态化演进,类似的硬件-算法协同设计将成为必然趋势。
对于 FPGA 领域而言,SkipOPU 也提供了一个明确信号:在 GPU 主导的大语言模型推理市场中,FPGA 凭借其可重构数据流和近存计算能力,在处理动态、不规则工作负载方面,依然拥有不可替代的竞争优势。
关注“鲸栖”小程序,掌握最新AI资讯
本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/28451


