关键词:SW HW Co-design、mpGEMM、LLM、Inference、Quantization
基于 Transformer 的大型语言模型(LLMs)随着模型尺寸不断增大,在诸多任务中取得了显著成功,然而由于其巨大的计算和内存需求,部署颇具挑战性。
量化(即将数值从 FP32 等高精度格式转换为更低成本的数值标准,如 INT4、INT8 等)成为备受关注的解决方案。当前最先进的 LLM 量化算法引入了混合精度矩阵乘法(mpGEMM)的需求,即低精度权重与高精度激活相乘。
然而,像 GPU 和 TPU 这样的硬件加速器缺乏对高效 mpGEMM 的原生支持,导致在主顺序循环中进行低效的反量化操作(即将量化后的数值转换回高精度格式)。
为解决这一局限性,我们提出了 MixPE,专为 LLM 推理中的低比特量化设计的混合精度处理单元。MixPE 通过两大创新显著降低反量化开销,释放低比特量化的全部潜力。
- 鉴于量化组内共享缩放因子和零点,我们提出在组内 mpGEMM 后进行反量化,大幅削减反量化开销。
- MixPE 不依赖传统乘法器,而是运用高效的移位和加法操作执行乘法,优化计算和能效。
实验结果表明,MixPE 的速度比现有先进量化加速器快 2.6 倍,能耗降低 1.4 倍。
一、引言
大型语言模型(LLMs)在广泛的任务领域引发了一场新的变革,深刻影响着我们的日常生活。然而,LLMs 的巨大规模导致训练和推理这些模型时的高计算和能量成本。
AI 行业正在采用多种技术降低模型成本,量化是其中的关键技术之一,它将张量的各个值从 FP32 等高精度格式转换为更低成本的数值标准(如 INT4、INT8 和 FP16,因其广泛的硬件支持而广受欢迎)。
基于这些数据格式,最先进的整数量化算法可分为三类:
- 8 位权重和 8 位激活(W8A8)
- 4 位权重和 16 位激活(W4A16)
- 4 位权重和 8 位激活(W4A8)。
后两种混合精度方法(即用低精度权重和高精度激活量化 LLMs)因其能节省内存和计算成本,同时保持模型准确率而备受青睐。这是因为权重分布较为均匀且平坦,相对容易量化。
先前研究表明,用 8 位、4 位甚至 1 位量化 LLMs 的权重,对准确率影响不大。相反,激活是即时生成的,具有高方差,明显表现为动态异常值。这些异常值可能显著降低准确率。
混合精度量化将 LLM 推理的关键计算模式从传统的通用矩阵乘法(GEMM)转变为混合精度 GEMM(mpGEMM),即权重矩阵采用低精度(如 INT4),激活矩阵保持高精度(如 INT8/FP16)。然而,当前硬件(如 GPU 和 TPU)并不原生支持 mpGEMM。
因此,低比特 LLM 推理系统不得不采用基于反量化的 mpGEMM 方法。
具体来说,即在执行 GEMM 前,先将低比特权重反量化为高精度。这些额外操作在主循环中执行,可能成为性能瓶颈。当批量大小(即一次处理的数据量)较小时(≤4),反量化开销可能占总计算量的 20% 以上(见图 1 左图)。
同时,由于 GEMM 仍以高精度计算,基于反量化的 mpGEMM 无法充分利用低精度计算的优势。因此,降低反量化开销对于实现 LLM 推理的最优吞吐量至关重要。
基于此,我们引入了混合精度处理单元(MixPE),通过专门的 mpGEMM 解决方案加速低比特 LLM 推理。
与传统的基于反量化的方案不同,MixPE 直接执行混合精度 GEMM,并将反量化推迟到组内 GEMM 计算之后。这种方法利用了量化组内共享缩放因子和零点,从而更高效地处理低精度权重。
此外,为了充分发挥低精度计算的优势,MixPE 用高效的、低功耗的移位和加法操作取代传统乘法器,用于低比特权重与高比特激活的乘法运算。
通过软件(即 mpGEMM 后反量化)和硬件(即基于移位和加法的处理单元)的协同设计,MixPE 不仅降低了反量化开销,还利用低精度算术运算实现了高吞吐量、能效高的 LLM 推理。与传统的基于 INT8 的 TPU 相比,MixPE 在 LLM 推理上实现了超过 4 倍的速度提升(见图 1 右图)。
此外,我们提出了一种参数化的设计空间探索(DSE)框架,使我们能够评估各种 GEMM 加速器。该框架使我们能够描绘出帕累托前沿,突出数值保真度和硬件效率之间的最佳权衡。
我们的主要贡献如下:
- 提出 MixPE,一种新型硬件加速器,通过量化方案和处理单元设计的协同优化,以最小的反量化开销高效处理混合精度 GEMM;
- 提出了一种 DSE 框架,将设计空间形式化为数值保真度和硬件成本之间的权衡。通过全面扫设计变量,我们确定 MixPE 是数值准确性和性能的帕累托前沿;
实验结果表明:
- 在 W4A8 量化下,MixPE 的速度比先进量化加速器快 2.6 倍,能耗降低 1.4 倍。
- 对于 W4A16,MixPE 的速度比传统 FP16 乘法 PE 快 2.44 倍,能耗降低 68%。
# 帕累托前沿”(Pareto Frontier)
是指在多目标优化问题中,所有帕累托最优解
(Pareto Optimal Solutions)构成的
集合。这些解在多个目标之间实现了最佳权衡,
即任何一个目标的进一步改善都会导致其他
目标的恶化。换句话说,帕累托前沿上的每个
解都是非支配的(non-dominated),不存在
另一个解在所有目标上都优于它。
在硬件设计中,帕累托前沿用于描述在数值
保真度(numerical fidelity,如计算精度)
和硬件效率(hardware efficiency,如
功耗和面积)之间的最佳权衡。MixPE 建立了
新的帕累托前沿,意味着它在相同的硬件成本下,
能够提供更高的数值保真度,或者在保持相同
数值保真度的情况下,使用更少的硬件资源。
这表明 MixPE 在设计空间探索中找到了一组
最优的解决方案,这些方案在性能和资源消耗
之间达到了理想的平衡
二、相关工作
2.1 整数量化在大型语言模型(LLMs)中的应用
如今,大型语言模型的规模迅速扩大,这反过来又需要大量的硬件资源。例如,Llama-3-70B [9] 仅仅为了存储其模型权重(以 FP16 格式)就需要大约 148GB 的内存,这远远超出了现代 GPU(如 NVIDIA A100 或 H100)的容量。
除了比特精度,量化还可以通过不同的粒度实现,从而在准确性和效率之间进行不同的权衡。
除了比特精度,量化还可以通过不同的粒度实现,从而在准确性和效率之间进行不同的权衡。
- 对于整个张量共享一个缩放因子和零点的量化方式称为 per-tensor 量化 [11]。
- 将通道作为输入矩阵的最后一维,权重的 per-channel 量化或激活的 per-token 量化,意味着缩放因子 s 和零点 z 在张量的每一行内共享 [6]。
- 将每个通道划分为多个子组(g 列),per-group 量化进一步降低了参数共享的程度,通过在每个通道内的每个子组使用不同的缩放因子 S 和零点 z [8]。
粒度越细,量化越精确,但开销也越高。
此外,为了提高 4 位量化的准确率,通常会采用组量化。一个典型的组大小是 128 [1, 8, 10],即每个连续的 128 个元素作为一个组进行量化,从而更准确地表示每个组内的数据。
2.2 低比特
LLM 推理中的混合精度 GEMM(mpGEMM) 在仅解码器的 LLM 中,权重和激活使用不同的比特宽度,这就需要混合精度通用矩阵乘法(mpGEMM),其中权重矩阵使用低精度,而激活矩阵保持高精度。
当权重和激活的量化比特不同时,这种混合精度适用于多头注意力和前馈块中的主要 GEMM 操作(如图 2 所示)。然而,当前的商业硬件(如 GPU 和 TPU)主要支持传统的 GEMM,即两个输入具有相同的格式和比特宽度,缺乏对 mpGEMM 的原生支持。
现有的 mpGEMM 方法主要分为两类:间接 mpGEMM(主要是基于反量化的 mpGEMM)和直接 mpGEMM(包括基于查找表(LUT)的 mpGEMM 和基于处理单元(PE)的 mpGEMM 方法)。
2.2.1 间接 mpGEMM
基于反量化的 mpGEMM 首先将低精度权重提升到与高精度激活匹配的精度,然后执行传统的 GEMM [1, 2, 8]。例如,图中展示了基于反量化的 mpGEMM 的一个例子,其中 INT4 权重与 FP16 激活相乘。
尽管这种方法支持各种精度组合,但反量化引入了额外的操作,可能成为性能瓶颈。此外,由于 GEMM 在高精度下执行,基于反量化的 mpGEMM 无法充分利用低精度计算的优势。
2.2.2 直接 mpGEMM
基于查找表(LUT)的 mpGEMM 是一种直接 mpGEMM 方法,它预先计算高精度激活与有限集合的低精度权重的点积,然后用简单的查找表替换计算。
然而,由于现有 LLM 推理硬件(如 GPU)对 LUT 的支持有限,基于 LUT 的 mpGEMM 方法通常不如基于反量化的方案有效。此外,为每个可能的权重-激活组合存储查找表可能需要大量的内存,特别是随着数据格式范围的增加。另一种直接 mpGEMM 方法是设计专用的处理单元(PE),以直接执行混合精度 GEMM 计算。
BitFusion [15] 提议利用张量比特宽度的适应性,重用低精度组件(例如,4 位整数)用于更高精度的计算(例如,8 位整数),而无需额外开销。然而,BitFusion 仅限于整数类型,这限制了其量化效率,并且通常会导致内存和计算需求的增加。
OLAccel [16] 并行执行异常值的稀疏高精度计算和常规张量的密集低精度计算。然而,它将张量存储在片外存储器中,导致内存访问延迟更长,从而降低吞吐量。
ANT [17] 和 Olive [7] 都提出了新的数据格式,以高效存储张量中的大值。然而,这些方法需要专用的数据解码器,引入额外的面积和计算开销。相比之下,我们的工作 MixPE 引入了一种灵活的 mpGEMM 计算设计,支持整数和浮点格式,而不会引入硬件开销。
三、我们的方法
3.1 方法动机
量化权重和激活可以显著减少内存使用并提高计算吞吐量。尽管模型权重是预先知道的,并且通常具有均匀的分布,但由于 4 位整数格式的精度有限,因此难以实现准确的表示。
为了进一步提高精度,分组量化被广泛使用。该方法将权重矩阵划分为子组,并在每个组内进行量化。为了将组量化纳入传统的 GEMM(通用矩阵乘法)流程,最先进的量化算法(包括 TensorRT-LLM-W4A16 [2] 和 QServe-W4A8 [1])需要在主循环中进行反量化操作(如图 3 左图所示)。
主循环中的反量化过程引入了两个显著的效率瓶颈。
- 反量化需要对大型 权重矩阵进行额外的乘法和减法操作。在 LLM 推理中,批量大小 通常较小(例如 8、16、32),而 和 则大得多(例如 2048 或 4096)。在每次迭代中对如此大的矩阵进行上量化会增加大量开销,成为性能瓶颈。
- 左图中的 GEMM 操作仍然以高精度执行。这种高精度计算不仅降低了低比特量化本可以带来的性能提升,还导致功耗和内存带宽使用增加。
我们在图 3 右图中给出了我们基于组量化的 mpGEMM 设计。注意到每个组共享一组公共的缩放因子和零点值,我们提出首先执行混合精度 GEMM(步骤 1),然后进行每组的反量化(步骤 2)。
为了实现这一点,我们设计了一种混合精度处理单元,该单元针对高效的低比特计算进行了优化,从而充分发挥低精度算术运算的潜力。每个组的点积结果随后被反量化和累积以产生最终输出(步骤 3),从而显著减少主循环中的反量化开销。
3.2 矩阵乘法后的反量化(Dequantize After GEMM)
因此,设计一个高效的混合精度点积计算引擎对于实现 LLM 推理中的最佳 mpGEMM 性能至关重要。
3.3 混合精度处理单元(Mixed-Precision Processing Elements)
最先进的 LLM 推理量化算法通常将模型权重量化为低比特整数格式,从而实现高理论吞吐量和减少的内存占用。
基于上面的公式,我们通过移位和加法操作实现 MixPE,从而在权重为 INT4 和激活为 INT8 的情况下,高效执行混合精度 GEMM。
理论上,与当前张量核心中的 INT8 乘法模块相比,W4A8 的 MixPE 可以实现 2 倍的速度提升,节省 25% - 50% 的内存成本和通信成本,这对于扩展下一代硬件加速器非常有前景。
对于 W4A16 操作,尽管位移操作不能替代乘法器(因为它们不适用于浮点值),但仍存在高效技术可以实现快速的 2 的幂次缩放,而无需传统的高功耗乘法器。W4A16 的 MixPE 设计如下:
其中 表示一个专门设计的 RTL 模块,用于高效地将浮点值乘以 2 的幂次。FP16 遵循 IEEE 754 [20] 标准,具有 1-5-10
位格式:1 个符号位,5 个指数位和 10 个小数位(尾数),实际值为:
通过该格式,将 FP16 值乘以 2 的幂次只需调整指数位,而符号和尾数保持不变。
具体来说,我们首先对指数位进行移位操作,然后进行位运算加法,从而实现高效的方向二次方缩放。
该过程与 INT4×INT8 的程序类似,利用相同的移位和加法方法实现高效计算。
通过直接修改 FP16 的指数位,可以在无需传统高功耗乘法器的情况下,实现激活的方向二次方缩放。这种设计选择显著减少了 MixPE 在 W4A16 中的计算开销,最小化了操作次数,并避免了传统乘法器的延迟和能耗成本。
图 4 对比了传统乘法器基础 PE 设计与我们 MixPE 中的 INT4×INT8 权重-激活处理单元。同样的拓扑结构也适用于 W4A16,在其中我们还利用对 FP16 激活的指数位的移位和加法操作来实现方向二次方缩放。在传统的乘法器基础 PE 中,INT4 激活必须首先转换为 INT8,然后使用标准乘法器执行乘积累加操作(见图 4 左图)。这未能利用 INT4 的计算优势。
相比之下,MixPE 通过直接利用硬件友好的移位操作和优化的加法树,在 INT4 和 INT8 之间实现高效计算(见图 4 右图),显著提高功耗效率和吞吐量。
我们将 MixPE 集成到 systolic array(一种也用于商业深度学习加速器如 Google 的 TPU [21] 的结构)中,其架构设计如图 5 所示。该设计与实际情况相符,其中权重张量被量化为低比特宽度,而激活和输出张量保持高精度。因此,我们发现在输出 stationary 数据流的 systolic array 中可以实现最佳效果。
图 5 展示了将 MixPE 集成到输出 stationary systolic array 中的架构。该架构通过全局缓冲区与内存通信,包括输入/权重缓冲区、多个 MixPE 单元和输出缓冲区。
这里的创新是 MixPE 的设计,它用高效的移位和缩放模块取代了传统乘法器。通过集成 MixPE,systolic array 实现了硬件高效和节能的混合精度 GEMM 计算,推动了量化技术和 LLM 推理加速的发展。
3.4 多目标的设计空间探索
LLM 量化的主要目标是在推理期间减少内存使用和计算成本。量化方法通常需要在两个可能相互竞争的因素之间取得平衡:
- 量化精度,即量化相对于 FP32 全精度的质量损失
- 硬件效率,这结合了计算效率(矩阵乘法的能耗和硅面积)和内存效率(存储或传输张量所需的比特数)。
流行的量化格式包括 INT4、INT8 和 FP16,它们构成了最先进的量化方案(如 W4A8、W8A8 和 W4A16)的基础。这种多样化的数据格式和配置创造了一个复杂的设计空间,需要在精度、计算效率和内存效率之间进行仔细的权衡。
因此,我们首先将设计空间形式化为量化精度和硬件成本的函数。然后,我们全面探索设计变量以识别帕累托最优的设计配置。
3.4.1 量化精度
首先,为了评估量化精度,我们计算量化信噪比(SNR),这是一种已被证明能够可靠预测量化引起的端到端语言模型损失的指标 [22]。这种方法使我们能够在不需要对每种 LLM 量化配置进行昂贵实验的情况下,进行广泛的设计空间探索。具体来说,SNR 定义为原始(未量化)信号的功率与量化噪声功率的比率:
这一目标对应于减少公式中的分母项,即量化噪声,从而保留言号的原始数据的数值保真度。
一般来说,更高的 SNR 表示量化向量更准确地保留了原始非量化向量的方向和幅度,表示高质量的量化过程。
3.4.2 硬件设计成本
如图 5 所示,我们关注 systolic array 架构,这是一类在低功耗 TPU [21] 中广泛采用的加速器。
systolic array 基础的加速器高度可配置,涵盖广泛的性能、功耗、电路面积和内存成本的权衡设计空间。
图 5 中展示的加速器设计具有二维网格的并行处理单元(PE),采用平铺结构排列。PE 在每个维度中的数量(列数和行数)决定了芯片的纵横比,而 PE 的类型由输入数据格式确定。
具体来说,对于传统的相同输入数据格式的 GEMM,我们采用标准的 INT8×INT8 PE 和 FP16×FP16 PE,而对于混合精度 GEMM,我们利用提出的 MixPE 来处理 INT4×INT8 和 INT4×FP16 的 mpGEMM 操作。在 FPGA 硬件综合过程中,各种参数可以影响电路面积和功耗。
例如,硬件综合(Hardware Synthesis)工具可以将加法器和其他块映射到电路中,以减少关键路径延迟,但会增加面积 [23]。为了获得给定配置的核心面积,我们对每个配置进行硬件综合(Hardware Synthesis),采用易于实现的时序约束,并且只有输入和输出是寄存的。
这确保了硬件综合(Hardware Synthesis)实现选择针对所有设计中的最小面积。
- 为了同时考虑面积和能耗成本,我们采用归一化的面积-功耗乘积作为硬件成本。
- 为了评估量化精度,我们定义了一种统计方法,用于计算量化的 SNR 比率。
- 为了测量硬件效率,我们采用二维 systolic array,该阵列能够计算不同量化配置的硬件综合(Hardware Synthesis)功耗和面积。通过这两种参数化模型,我们可以在设计空间中探索不同的配置,并构建帕累托前沿,以捕捉量化精度和硬件效率之间的最佳平衡。
四、实验
4.1 实验参数
Accelerator Implementation 我们使用 Verilog RTL 实现了第 3.3 节中描述的 MixPE 以及传统的 GEMM PE。为了进行综合,我们使用了 Xilinx Vivado 2023.1 [24],在 Xilinx Zynq UltraScale+ ZCU104 评估板上进行,以便评估资源占用情况并进行静态和动态功耗估算。
为了简化表述,MixPE 设计称为 “MixPE-A8” 和 “MixPE-A16”,分别对应 W4A8 和 W4A16。此外,用 “INT8” 和 “FP16” 来表示传统的 INT8 和 FP16 乘法 PE。
Baselines 为了评估 MixPE 的端到端模型性能,我们将其与四个 PE 基线进行比较,包括传统的 INT8 PE 和 FP16 PE、BitFusion [15] 和 OLAccel [16]。这里我们没有将 ANT [17] 和 Olive [7] 包含在比较中,因为两者都向 systolic array 引入了额外的解码器,从而带来了额外的开销。
具体来说,BitFusion [15] 支持 4 位和 8 位整数类型的混合精度。OLAccel [16] 在专用的高精度 MAC 单元上计算大值。我们使用 CACTI [25] 来估计存储结构的面积、延迟和功耗。此外,我们开发了一个受到 DnnWeaver [26] 和 BitFusion [15] 启发的周期精确模拟器。
我们在四个开源的代表性 LLM 模型上评估 MixPE,包括 ViT-base [27]、ViT-Huge [27]、OPT-6.7B [28] 和 LLaMA-2-13B [29]。选择这些模型是为了全面评估 MixPE 在不同模型架构和规模下的性能。
Design Space Exploration 为了计算不同量化格式的 SNR(信噪比),我们使用了 Pile 数据集 [30],从中采样了 128 个随机数据点以获得具有代表性的激活分布。
对于权重分布,我们采用标准正态分布X ~ N(0,1) ,这在 LLM 工作负载中是常见的 [22]。虽然某些层可能由于非线性变换(例如 SwiGLU)而表现出重尾权重分布,但解决这些变化超出了本文的范围。
4.2 加速器硬件评估
如第 3.3 节所述,我们将 MixPE 集成到 systolic array 基础的硬件加速器中,并将其性能和能耗与商业 GPU(如 Nvidia Tensor Core [31] 和 Google TPU [21])中采用的 INT8 PE 和 FP16 PE 进行比较。
为了公平比较,所有硬件设计的频率均设置为 250MHz。列数和行数均为 4,形成 4 × 4 的 systolic array 结构。 在 FPGA 设计中,面积通常指的是所使用的硬件资源数量,包括查找表(LUT)、触发器(FF)、数字信号处理器(DSP)和输入输出(IO)。
图 6 展示了各种加速器组件的归一化面积利用率。值得注意的是,与标准 INT8 PE 相比,MixPE-A8 实现了 54% 的面积减少,而 MixPE-A16 将面积减少到 FP16 对应物的 77%,凸显了其资源效率。
在功耗方面,电路功耗可分为两个主要部分:动态功耗和静态功耗。图 6 的功耗比较显示,MixPE 设计在功耗效率方面表现出显著改进:
- 与 FP16 PE 相比,总功耗降低了 64%
- 与 INT8 PE 相比降低了 21%
具体来说,这种功耗降低主要来自动态功耗的减少,表明 MixPE 通过利用高效的移位和加法操作代替传统乘法器,有效减少了开关活动。
总之,MixPE 在面积和功耗效率方面显著优于传统的基于乘法器的 PE,使其成为资源受限的 LLM 部署中混合精度 GEMM 应用的理想选择。
4.3 加速器的设计空间探索
硬件综合加速器的性能(包括功耗和面积)会受到许多因素的影响,例如纵横比、全局缓冲区和高性能 DSP 的使用。因此,我们进行了设计空间探索,以深入了解不同参数对硬件加速器性能的影响。
图 7 展示了不同配置的数值保真度和硬件成本之间的权衡,揭示了与传统 systolic array 设计相比,MixPE 建立了新的帕累托前沿。特别是,对于相同的硬件成本,MixPE 设计始终展现出更高的数值保真度,如其更高的信噪比所示。这一优势源于 MixPE 的高效移位和加法模块,该模块最小化了资源使用和能耗,使其成为实际场景中高效 LLM 部署的有吸引力的选择。
4.4 模型性能与能耗
我们评估了不同加速器上 LLM 的性能,批量大小为 8。在实验中,我们将 MixPE 与四个基线设计进行了比较:BitFusion [15]、OLAccel [16] 和传统的 INT8 和 FP16 PE。BitFusion [15] 采用 4 位和 8 位 INT 类型的混合精度方案,我们将 OLAccel [16] 扩展以支持具有 4 位权重和 8 位激活量化的 Transformer 模型。根据原始论文,BitFusion 和 OLAccel 某些层需要 8 位 GEMM。为了清晰起见,所有加速器都使用相同的每组量化方案,组大小为 128:MixPE-A8、OLAccel、BitFusion 和 INT8 PE 使用 W4A8,而 MixPE-A16 和 FP16 PE 使用 W4A16。
因此,主要区别在于 mpGEMM 策略,因此性能比较仅关注加速器性能,指标基于模型吞吐量和能效。
图 8 展示了归一化的加速比和能耗结果。图 8 的上图表明,MixPE-A8 在延迟加速方面具有最明显的优势。具体来说,MixPE-A8 分别比 OLAccel、BitFusion 和 INT8 快 2.62 倍、3.58 倍和 4.42 倍。另一方面,MixPE-A16 比其 FP16 对应物快 2.44 倍,甚至由于 dequantization-after-GEMM 策略大幅减少了周期数,还超过了其他 W4A8 基线(即 BitFusion、OLAccel 和 INT8)。同时,由于语言模型的独占解码器架构相似,差异主要在于层数和隐藏状态参数,因此不同模型的 MixPE 加速比保持一致。
图 8 的下图比较了不同设计的归一化能耗,包括静态能耗和动态功耗(DRAM、片上缓冲区和核心)。MixPE-A8 展现出最低的能耗,平均比其他设计降低 2.21 倍。具体来说,MixPE-A8 分别比 OLAccel、BitFusion 和 INT8 降低了 1.39 倍、2.44 倍和 2.78 倍的功耗。此外,MixPE-A16 平均降低了 FP16 的能耗 68%。
值得注意的是,随着模型规模的增加,能耗降低变得更加显著。
例如,在三个较大的语言模型上,MixPE-A16 的能耗甚至低于低比特的 BitFusion 和 INT8,突出了其可扩展性。这种增强的能效可归因于 MixPE-A16 中优化的移位和加法模块,它们利用低比特精度数据最大化计算效率。总之,通过协同优化量化算法(特别是 GEMM 后反量化策略)和硬件加速器(即移位和加法 PE 设计),MixPE 充分利用了低比特精度量化的优点,显著降低了能耗和计算开销。
4.5 反量化开销的消融研究
我们测量了在 MixPE 和 INT8 PE 上混合精度量化算法的反量化开销。我们的分析重点是应用于 OPT-6.7B 的 W4A8 量化方案,批量大小从 2 到 32 不等。
图 9 展示了 MixPE 和 INT8 PE 的反量化开销。结果表明,与 INT8 PE 相比,MixPE 显示出显著较低的反量化开销。由于计算负载相对较小,这种减少在较低的批量大小下更为明显。在实际的 LLM 部署设置中,批量大小通常较小但序列长度较长,MixPE 成为更高效的选择,在实际推理任务中提供了显著的能效和计算效率提升。
五、结论
在这项工作中,我们提出了 MixPE,一种专为以最小反量化开销高效处理混合精度 GEMM 而设计的新型硬件加速器。其关键见解在于利用每组参数共享来实现 mpGEMM 后反量化,从而减少主循环中的开销。
为了充分利用低精度权重的优势,我们提出了一种专门的基于移位和加法的处理单元,以实现无需能耗密集型乘法器的 mpGEMM。MixPE 通过量化方案和硬件加速器的协同设计,将 LLM 量化的效率提升到了一个新的水平。此外,我们对设计变量进行了详尽的探索,表明 MixPE 建立了数值保真度和硬件效率之间的帕累托前沿。
最后,MixPE 在性能上超越了现有加速器,实现了 2.6 倍的速度提升和 1.4 倍的能耗降低。
参考文献
- Y. Lin, H. Tang, S. Yang, Z. Zhang, G. Xiao, C. Gan, and S. Han, “Qserve: W4a8kv4 quantization and system co-design for efficient llm serving,” arXiv preprint arXiv:2405.04532, 2024.
- Nvidia, “Tensorrt-llm: A tensorrt toolbox for optimized llm inference,” 2023.
- T. Dettmers, M. Lewis, Y. Belkada, and L. Zettlemoyer, “Gpt3. int8 (): 8-bit matrix multiplication for transformers at scale,” Advances in Neural Information Processing Systems, vol. 35, pp. 30 318–30 332, 2022.
- Z. Yao, R. Yazdani Aminabadi, M. Zhang, X. Wu, C. Li, and Y. He, “Zeroquant: Efficient and affordable post-training quantization for large-scale transformers,” Advances in Neural Information Processing Systems, vol. 35, pp. 27 168–27 183, 2022.
- S. Ma, H. Wang, L. Ma, L. Wang, W. Wang, S. Huang, L. Dong, R. Wang, J. Xue, and F. Wei, “The era of 1-bit llms: All large language models are in 1.58 bits,” arXiv preprint arXiv:2402.17764, 2024.
- G. Xiao, J. Lin, M. Seznec, H. Wu, J. Demouth, and S. Han, “Smoothquant: Accurate and efficient post-training quantization for large language models,” in International Conference on Machine Learning, 2023.
- C. Guo, J. Tang, W. Hu, J. Leng, C. Zhang, F. Yang, Y. Liu, M. Guo, and Y. Zhu, “Olive: Accelerating large language models via hardware-friendly outlier-victim pair quantization,” in Proceedings of the 50th Annual International Symposium on Computer Architecture, 2023.
- J. Lin, J. Tang, H. Tang, S. Yang, W.-M. Chen, W.-C. Wang, G. Xiao, X. Dang, C. Gan, and S. Han, “Awq: Activation-aware weight quantization for on-device llm compression and acceleration,” Proceedings of Machine Learning and Systems, vol. 6, pp. 87–100, 2024.
- A. Dubey, A. Jauhri, A. Pandey, A. Kadian, A. Al-Dahle, A. Letman, A. Mathur, A. Schelten, A. Yang, A. Fan et al., “The llama 3 herd of models,” arXiv preprint arXiv:2407.21783, 2024.
- Y. Zhao, C.-Y. Lin, K. Zhu, Z. Ye, L. Chen, S. Zheng, L. Ceze, A. Krishnamurthy, T. Chen, and B. Kasikci, “Atom: Low-bit quantization for efficient and accurate llm serving,” Proceedings of Machine Learning and Systems, vol. 6, pp. 196–209, 2024.
- M. Nagel, M. Fournarakis, R. A. Amjad, Y. Bondarenko, M. Van Baalen, and T. Blankevoort, “A white paper on neural network quantization,” arXiv preprint arXiv:2106.08295, 2021.
- G. Park, B. Park, M. Kim, S. Lee, J. Kim, B. Kwon, S. J. Kwon, B. Kim, Y. Lee, and D. Lee, “Lut-gemm: Quantized matrix multiplication based on luts for efficient inference in large-scale generative language models,” arXiv preprint arXiv:2206.09557, 2022.
- S. Maleki, “Look-up mai gemm: Increasing ai gemms performance by nearly 2.5 x via msgemm,” arXiv preprint arXiv:2310.06178, 2023.
- Z. Mo, L. Wang, J. Wei, Z. Zeng, S. Cao, L. Ma, N. Jing, T. Cao, J. Xue, F. Yang et al., “Lut tensor core: Lookup table enables efficient low-bit llm inference acceleration,” arXiv preprint arXiv:2408.06003, 2024.
- H. Sharma, J. Park, N. Suda, L. Lai, B. Chau, J. K. Kim, V. Chandra, and H. Esmaeilzadeh, “Bit fusion: Bit-level dynamically composable architecture for accelerating deep neural network,” in 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA), 2018.
- E. Park, D. Kim, and S. Yoo, “Energy-efficient neural network accelerator based on outlier-aware low-precision computation,” in 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA), 2018.
- C. Guo, C. Zhang, J. Leng, Z. Liu, F. Yang, Y. Liu, M. Guo, and Y. Zhu, “Ant: Exploiting adaptive numerical data type for low-bit deep neural network quantization,” in 2022 55th IEEE/ACM International Symposium on Microarchitecture (MICRO), 2022.
- H. Wang, Z. Zhang, and S. Han, “Spatten: Efficient sparse attention architecture with cascade token and head pruning,” in 2021 IEEE International Symposium on High-Performance Computer Architecture (HPCA), 2021.
- L. Zou, W. Zhao, S. Yin, C. Bai, Q. Sun, and B. Yu, “Bie: Bi-exponent block floatingpoint for large language models quantization,” in Forty-first International Conference on Machine Learning, 2024.
- W. Kahan, “Ieee standard 754 for binary floating-point arithmetic,” Lecture Notes on the Status of IEEE, vol. 754, no. 94720-1776, p. 11, 1996.
- N. P. Jouppi, C. Young, N. Patil, D. Patterson, G. Agrawal, R. Bajwa, S. Bates, S. Bhatia, N. Boden, A. Borchers et al., “In-datacenter performance analysis of a tensor processing unit,” in Proceedings of the 44th annual international symposium on computer architecture, 2017.
- B. Darvish Rouhani, R. Zhao, V. Elango, R. Shafipour, M. Hall, M. Mesmakhosroshahi, A. More, L. Melnick, M. Golub, G. Varatkar et al., “With shared microexponents, a little shifting goes a long way,” in Proceedings of the 50th Annual International Symposium on Computer Architecture, 2023.
- V. Sklyarov, I. Skliarova, A. Barkalov, and L. Titarenko, Synthesis and Optimization of FPGA-based Systems Springer Science & Business Media, 2014, vol. 294.
- AMD, “Installing the vivado design suite - 2023.1 english,” 2023.
- N. Muralimanohar, R. Balasubramonian, and N. P. Jouppi, “Cacti 6.0: A tool to model large caches,” HP laboratories, vol. 27, p. 28, 2009.
- H. Sharma, J. Park, E. Amaro, B. Thwaites, P. Kotha, A. Gupta, J. K. Kim, A. Mishra, and H. Esmaeilzadeh, “Dnnweaver: From high-level deep network models to fpga acceleration,” in the Workshop on Cognitive Architectures, 2016.
- D. Alexey, “An image is worth 16x16 words: Transformers for image recognition at scale,” arXiv preprint arXiv: 2010.11929, 2020.
- S. Zhang, S. Roller, N. Goyal, M. Artetxe, M. Chen, S. Chen, C. Dewan, M. Diab, X. Li, X. V. Lin et al., “Opt: Open pre-trained transformer language models,” arXiv preprint arXiv:2205.01068, 2022.
- H. Touvron, L. Martin, K. Stone, P. Albert, A. Almahairi, Y. Babaei, N. Bashlykov, S. Batra, P. Bhargava, S. Bhosale et al., “Llama 2: Open foundation and fine-tuned chat models,” arXiv preprint arXiv:2307.09288, 2023.
- L. Gao, S. Biderman, S. Black, L. Golding, T. Hoppe, C. Foster, J. Phang, H. He, A. Thite, N. Nabeshima et al., “The pile: An 800gb dataset of diverse text for language modeling,” arXiv preprint arXiv:2101.00027, 2020.
- J. Choquette, W. Gandhi, O. Giroux, N. Stam, and R. Krashinsky, “Nvidia a100 tensor core gpu: Performance and innovation,” IEEE Micro, vol. 41, no. 2, pp. 29–35, 2021.
END
作者:港中文,清华,华为
来源:NeuralTalk
推荐阅读
- 混合CPU-GPU调度+Cache管理:MoE推理Prefill1.3倍、Decode1.7倍加速!
- SAM突破多模态分割 | SAM2+语义记忆模块,实现跨模态语义理解登顶DELIVER
- CMU与Meta提出LithOS:节省 GPU51% 容量、26%能耗,迈向高效机器学习操作系统
- 单机H200最快DeepSeek V3和R1推理系统优化秘籍
- SGLang 源码学习笔记:Cache、Req与Scheduler
欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区嵌入式AI专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。