• 文章标题: MicroScopiQ: 通过离群点感知微缩放量化加速基础模型
  • 作者: Akshat Ramachandran, Souvik Kundu, Tushar Krishna
  • 机构: Georgia Institute of Technology, Intel Labs

A1 主要贡献

本文旨在解决基础模型(FMs)量化中的一个核心挑战:离群点(outliers) 的存在。这些大幅值特征使得FMs的量化比传统DNNs更为困难。现有的离群点感知算法-架构协同设计技术存在两难困境:一类方法(A组)将离群点保持在较高精度以保证准确率,但这会牺牲硬件效率和内存对齐;另一类方法(B组)将离群点和内联点(inliers)量化到相同精度以提高硬件效率,但会牺牲模型准确率。

为了解决这种相互排斥的问题,本文提出了一个根本性问题:能否有效利用剪枝来辅助离群点感知的量化,从而在保持高准确率的同时实现硬件效率?

为回答此问题,本文提出了 MicroScopiQ,一种新颖的面向基础模型(FMs)的训练后量化(PTQ)协同设计技术。MicroScopiQ的核心贡献如下:

  1. 提出一种剪枝与量化相结合的新框架:MicroScopiQ将离群点量化到比内联点高一倍的精度,并基于Hessian信息剪枝掉最不重要的权重。然后,它将离群点权重的额外比特重新分配到这些被剪枝的位置。这种设计既保证了内存对齐(因为每个张量元素的平均比特预算是固定的),又允许离群点保持更高的精度,从而实现了高准确率和硬件效率的统一。

  2. 设计高效的加速器架构:为了高效支持MicroScopiQ,本文设计了一个名为 ReCoN (Redistribution and Coordination NoC) 的智能片上网络(NoC)架构。ReCoN以极低的开销和高吞吐量处理高精度离群点的重组,从而简化了对高精度离群点的支持。该加速器利用ReCoN和一个由简单的同构INT处理单元(PE)组成的阵列,并且支持多精度(2/4位)操作。

  3. 不依赖离群点局部性假设:与以往的技术不同,MicroScopiQ不假设离群点权重的任何局部性,这使其能够广泛适用于各种基础模型。

  4. 实现SOTA的压缩与性能:MicroScopiQ是首个将LLMs和VLMs的PTQ压缩推向极限的协同设计技术,权重有效比特宽度(EBW)约为2.36位。实验表明,在不同的权重/权重-激活量化设置下,MicroScopiQ均取得了SOTA的量化模型准确率。与现有架构相比,其单位面积性能(TOPS/mm²)提升高达3倍,能耗降低高达2倍。

下表总结了MicroScopiQ与先前离群点感知量化技术的对比。

Table 1: MicroScopiQ与先前的离群点感知量化技术的比较,分为A组[68, 99]和B组[29]。

A3 背景知识与动机

背景知识

模型量化

一个典型的量化过程【【51, Yuhang Li, et al. Brecq: Pushing the limit of post-training quantization by block reconstruction. arXiv preprint arXiv:2102.05426 (2021).】, 【74, Akshat Ramachandran, et al. CLAMP-ViT: Contrastive Data-Free Learning for Adaptive Post-Training Quantization of ViTs. ECCV (2024).】, 【76, Akshat Ramachandran, et al. OuroMamba: A Data-Free Quantization Framework for Vision Mamba Models. arXiv preprint arXiv:2503.10959 (2025).】】包括两个步骤:给定数据格式($D_f$)和位宽($b$)建立量化参数,以及将高精度张量映射到量化表示。对于一个典型的对称量化(零点为0)【【103, Yilong Zhao, et al. Atom: Lowbit quantization for efficient and accurate llm serving. Proceedings of Machine Learning and Systems 6 (2024), 196–209.】】,张量 $W$ 的缩放因子($s$)由下式给出:

其中 $max_{D_f}$ 是数据格式可表示的最大值【【74, Akshat Ramachandran, et al. CLAMP-ViT: Contrastive Data-Free Learning for Adaptive Post-Training Quantization of ViTs. ECCV (2024).】】。对于 $b$ 位INT量化, $max_{D_f, b} = 2^{b-1} - 1$。确定量化参数后,量化后的张量由下式给出【【74, Akshat Ramachandran, et al. CLAMP-ViT: Contrastive Data-Free Learning for Adaptive Post-Training Quantization of ViTs. ECCV (2024).】】:

在模型量化中,量化参数可以在不同粒度上共享,以权衡准确率和开销。按开销递增顺序,有逐张量量化(缩放因子在所有张量元素间共享)、逐通道量化(缩放因子在张量的每行/列共享),以及分组量化(参数在行或列中更细粒度的 $g$ 个元素组(如64、128等)之间共享)。本文对内联点和离群点分别采用MX-INT和MX-FP量化。

微缩放(Microscaling)数据格式

MX数据格式由先前工作【【16, Bita Darvish Rouhani, et al. With shared microexponents, a little shifting goes a long way. In Proceedings of the 50th Annual International Symposium on Computer Architecture. 1–13.】, 【78, Bita Darvish Rouhani, et al. Microscaling data formats for deep learning. arXiv preprint arXiv:2310.10537 (2023).】】提出,并由开放计算项目(Open Compute Project)【【70, Open Compute Project. 2024. OCP Microscaling Formats MX V1.0 Spec.】】标准化。如图1所示,MX是块数据表示(BDR)【【16, Bita Darvish Rouhani, et al. With shared microexponents, a little shifting goes a long way. In Proceedings of the 50th Annual International Symposium on Computer Architecture. 1–13.】】的一种变体,它定义了一种使用共享缩放因子来共同表示一组值的格式。它利用了细粒度(level-1, $g_1$)和超细粒度(level-2, $g_2$)的多级二次幂缩放【【15, Steve Dai, et al. Vs-quant: Per-vector scaled quantization for accurate low-precision neural network inference. Proceedings of Machine Learning and Systems 3 (2021), 873–884.】, 【21, Mario Drumond, et al. Training dnns with hybrid block floating point. Advances in Neural Information Processing Systems 31 (2018).】】。MX数据格式由四个部分定义:i) 缩放因子(level-1, 2),ii) 数据类型($D_f$),iii) 位宽($b$),和 iv) 组大小($g_1, g_2$)。本文将MX-FP格式表示为MX-FP-$b_{g1,g2}$。本文采用【78】中提出的MX-FP数据格式版本,使用多级缩放。MX-FP的level-1缩放因子根据公式1计算。而对于level-2缩放因子,我们发现MX-FP利用了FP值的共享指数域【【93, Naigang Wang, et al. Training deep neural networks with 8-bit floating point numbers. Advances in neural information processing systems 31 (2018).】】(在图1中称为 $\mu E$)。我们将在§4.2中展示,通过利用这一洞察,即共享 $\mu E$ 的概念,我们能够用INT格式表示FP离群点,从而实现简单、同构的基于INT的PE设计。对于内联点,我们遵循【70】采用单级缩放因子的MX-INT-$b_{g1}$。这是因为INT格式没有指数域,因此类似于MX-FP的level-2缩放因子不适用。为简化理解,MX-INT-$b_{g1}$内联点量化可被视为使用E8M0缩放因子的INT分组量化。


Figure 1: MX-FP数据格式的描述,包含level-1缩放因子和level-2微指数($\mu E$),其中$g_1$和$g_2$是这两个因子共享的组大小。

动机

现有技术的局限性

在表1中,我们比较了A组的候选方案GOBO【【99, Ali Hadi Zadeh, et al. Gobo: Quantizing attention-based nlp models for low latency and energy efficient inference. In 2020 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 811–824.】】和B组的OliVe【【29, Cong Guo, et al. Olive: Accelerating large language models via hardware-friendly outlier-victim pair quantization. In Proceedings of the 50th Annual International Symposium on Computer Architecture. 1–15.】】。GOBO通过将离群点保持在全精度来实现高准确率,它使用稀疏表示将离群点与低精度内联点分开存储,并附带离群点索引(见图3(b))。然而,这导致了高有效位宽(EBW),并且压缩稀疏存储和多精度导致非对齐和随机的内存访问,严重影响推理延迟。此外,GOBO的离群点处理在硬件上效率低下,需要复杂的PE。类似地,最近的一项工作【37】提出将权重向量分解为独立的内联点和离群点向量,并以不同精度量化,离群点精度更高。OliVe【29】通过将内联点和离群点量化到相同精度(低EBW)但使用不同数据格式来确保对齐的内存访问。它通过剪枝离群点旁边的值作为标识符来区分内联点和离群点格式(见图3(c))。然而,OliVe导致显著的准确率下降,尤其是在低精度时(见图2(b)),原因有二:1) 牺牲了一个内联点数值编码专门用作标识符,减少了量化范围内的可表示值数量;2) 对离群点局部性的僵化假设——即离群点从不相邻,且几乎总是只有内联点与离群点相邻,这导致了意外的离群点剪枝。此外,OliVe需要相当复杂的PE设计,并产生显著的编码/解码开销。本文展示了尽管将离群点量化到更高精度和不同格式,我们仍能确保内存对齐、简单的PE设计和最小的硬件开销。


Figure 2: (a) 逐层离群点和相邻离群点占总权重百分比的分布,(b) OliVe-W4A16和MicroScopiQ-W2A16在不同基准上的量化准确率比较。

相邻离群点的重要性

与先前的工作【【29, Cong Guo, et al. Olive: Accelerating large language models via hardware-friendly outlier-victim pair quantization. In Proceedings of the 50th Annual International Symposium on Computer Architecture. 1–15.】, 【68, Eunhyeok Park, et al. Energy-efficient neural network accelerator based on outlier-aware low-precision computation. In 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA). IEEE, 688–698.】】类似,我们利用3σ规则【【71, Friedrich Pukelsheim. 1994. The three sigma rule. The American Statistician 48, 2 (1994), 88–91.】】将权重分类为离群点。图2(a)展示了不同FM中离群点和相邻离群点占总权重百分比的分布。橙色箱线图显示,离群点最高占比约为5.1%,它们在FM中普遍存在,保留其值对于维持量化模型准确率至关重要。重要的是,从绿色箱线图中,我们观察到现代FM平均每层拥有超过0.5%的相邻离群点,某些FM层峰值超过2%。这与OliVe评估的模型(如BERT【19】和OPT【102】)形成鲜明对比,后者的相邻离群点比例低于0.04%(比LLaMA3和LlaVa等FM低两个数量级)。这表明,虽然剪枝离群点旁边的值对于BERT等模型可能是理想的,但对于大多数现代FM来说是次优的,因为它会移除关键的离群点值,导致更高的准确率下降。如图2(b)所示,OliVe在4位量化时由于其对离群点局部性的假设而导致显著的准确率下降。与OliVe不同,MicroScopiQ不是简单地剪枝相邻值,而是利用Hessian信息【【25, Elias Frantar, et al. Gptq: Accurate post-training quantization for generative pre-trained transformers. arXiv preprint arXiv:2210.17323 (2022).】】来识别最不重要的值进行剪枝,确保离群点被保留。这直接转化为高量化模型准确率,使得MicroScopiQ在2位设置下在不同FM上始终优于OliVe。

离群点的精度和数据格式

像GOBO【99】这样的A组技术能够在内联点极端量化(<4位)的情况下仍实现高量化模型准确率,原因在于将离群点保持在更高精度。这在超低位宽量化中尤其关键,因为如果内联点和离群点被量化到相同精度,由于表示范围减小,离群点的量化误差会更高。我们在表7中展示了这种效应对MicroScopiQ量化FM准确率的影响,其中当内联点和离群点均为2位时,FM性能较差,而离群点为4位时则较好。此外,最近的工作【94】证明,基于FP的格式对LLMs的量化性能优于INTs。为了验证这一点,我们在表7中比较了MX-INT与MX-FP在内联点和离群点量化中的表现。显然,对离群点使用MX-FP而非MX-INT能带来更好的性能,这是由于FP具有更高的动态范围,这在极端量化水平下尤其有益。在本文中,我们将离群点量化到比内联点高一倍(2×)的精度,对离群点使用MX-FP,对内联点使用MX-INT。

A2 方法细节

MicroScopiQ量化方法论

我们在图3(a)中概述了MicroScopiQ量化方法,并在算法1中详细说明。MicroScopiQ支持各种组大小粒度和任意的内联点及离群点(2倍于内联点)数据精度。为简单起见,我们以内联点和离群点精度为2/4位和4/8位,以及内联点组大小为128、离群点组大小为8为例进行解释。


Figure 3: (a) 所提出的MicroScopiQ量化框架概述,展示了对一个LLM权重矩阵样本的内联点和离群点量化及离群点比特重分配方法。与先前的量化框架(b) GOBO和(c) OliVe的比较。

初步准备

层级量化建模。MicroScopiQ量化框架通过将每层划分为多个行并逐行量化来对FMs进行层级训练后量化。具体而言,对于给定的输入校准数据集 $X$,在层 $l$ 的目标是找到一个量化权重集 $Q \in R^{d_{out} \times d_{in}}$,以最小化该层所有行与全精度权重 $W \in R^{d_{out} \times d_{in}}$ 相比的平方误差和。这可以表示为:

Hessian信息利用。我们通过泰勒级数展开【【32, Babak Hassibi, et al. Optimal brain surgeon and general network pruning. In IEEE international conference on neural networks. IEEE, 293–299.】】来评估方程3的二阶导数,即Hessian矩阵【【32, Babak Hassibi, et al. Optimal brain surgeon and general network pruning. In IEEE international conference on neural networks. IEEE, 293–299.】, 【47, Yann LeCun, et al. Optimal brain damage. Advances in neural information processing systems 2 (1989).】】。注意,由于Hessian仅依赖于输入数据,因此对所有行都是相同的,其表达式为 $H = 2XX^T$。其逆矩阵为 $H^{-1} = (2XX^T + \lambda I)^{-1}$。我们利用Hessian信息来识别具有小“显著性”的权重进行剪枝(算法1中第17行)。需要剪枝的内联点数量由离群点的数量决定。

误差最小化更新。为了提高量化性能,我们借鉴了【【25, Elias Frantar, et al. Gptq: Accurate post-training quantization for generative pre-trained transformers. arXiv preprint arXiv:2210.17323 (2022).】】的思想,在量化某一行权重时调整未量化行的权重以最小化净误差。使用Hessian进行权重更新的相关方程(算法1中第31行)是通过求解方程3的拉格朗日量得到的。然而,每次量化一行就更新所有剩余行会带来巨大的计算开销,这对于十亿级参数的FM是不可行的。因此,如【25】所指出的,我们将行划分为大小为128行的非重叠连续行块(rB),并将未量化行的更新限制在每个rB内部。我们只在当前块的所有元素都量化完毕后才更新rB之外的行(算法1中第36行),这样通过按rB分组更新,最小化了单个更新的次数,并实现了一个数量级的加速。

算法 1: MicroScopiQ 量化框架

内联点与离群点权重 quantization

步骤1:内联点与离群点识别及量化。在步骤1(图3(a),算法1)中,待量化的每一行首先被划分为多个大小为 $g_{MaB} = 128$ 的非重叠连续宏块(MaB)。所有内联点在一个MaB内进行量化并共享缩放因子。每个MaB再被细分为多个大小为 $g_{\mu B} = 8$ 的非重叠连续微块($\mu B$),十六个$\mu B$组成一个MaB。每个$\mu B$中的离群点共享相同的缩放因子。量化过程首先使用3σ规则识别每个MaB中的内联点和离群点。然后,根据方程1为MaB中的所有内联点计算一个共享的8位二次幂缩放因子($2^{s_{in}}$),并将内联点量化为2位或4位,从而实现MX-INT-(2/4)$_{128}$量化。

离群点预处理。我们观察到,在所有考虑的FM中,每个MaB中的内联点缩放因子总是一个负二次幂。我们利用这个观察来减小离群点的量级,方法是将MaB中的所有离群点值乘以该内联点缩放因子($2^{s_{in}}$),这也可以看作是除以$2^{-s_{in}}$,以便与方程2保持一致。这种预处理通过在实际离群点量化前预先减小其动态范围,使离群点量化变得更容易。

离群点量化。与内联点不同,离群点是按$\mu B$进行量化的,以减少因在较大组大小上共享缩放而产生的量化误差(见§7)。在识别出$\mu B$中的离群点后,我们计算一个共享的8位MXScale,它由level-1的二次幂缩放因子($2^{s_1}$)和level-2的微指数($\mu E$)拼接而成。level-1的$s_1$缩放因子根据方程1计算,得到MXScale的7位或5位MSB,取决于$\mu E$的大小是1位还是3位的LSB——这对应于FP格式的指数大小(如图3(a)步骤2所示)。$\mu B$中的离群点按方程2用($2^{s_1}$)进行缩放,然后分别量化为e1m2/e3m4 FP格式【78】,对应$b=4$或8位。离群点量化后,通过提取$\mu B$中所有离群点的共同指数来获得level-2缩放因子或$\mu E$。这个过程产生了MX-FP-$b_{8,8}$离群点量化。最终的离群点缩放因子是$2^{s_{out}}$,其中$s_{out}$表示为$s_{out} = s_{1,out} + \mu E - s_{in}$。最终离群点缩放因子中的$s_{in}$项解释了在离群点预处理过程中乘以$2^{s_{in}}$(或除以其倒数)的影响。

通过N:M结构化剪枝进行离群点值编码

步骤2:离群点比特重组。为了形式化步骤2,我们假设一个$\mu B$中有$k$个离群点被量化为MX-FP-4$_{8,8}$。在$k$个离群点间共享1位的$\mu E$后,每个离群点有1个符号位($S$)和2个尾数位($m_1m_0$)。内联点是2位的二进制补码MX-INT,有1个符号位和1个数值位。由于离群点比特有2个尾数位和1个符号位,为了确保对称的离群点分布,我们复制其符号位,并将每个符号位分配给一个尾数,从而创建并划分为大小各为2位的Upper和Lower两半,模仿内联点MX-INT的结构,即$\{S m_1, S m_0\}$(见图3(a),步骤2)。虽然我们以一个具体例子展示了此过程,但它可以推广到其他位宽的内联点和离群点格式,其中剩余的离群点比特需要被重组成Upper和Lower两个可分配的半部分,每部分大小为$b_{op}$(每个元素比特预算),$b_{op}$代表每个PE的操作位宽。

步骤3:离群点比特重分配。在步骤3中,为了确保层的$b_{op}$和数据类型固定,以实现对齐的内存访问和简单的PE设计,我们将离群点的LSB(Lower半部分)分配到$\mu B$内被剪枝的最不重要的内联点位置。对于$\mu B$中的$k$个离群点,我们通过Hessian信息识别出$k$个最不重要的内联点位置进行剪枝(见算法1),形成一个($g_{\mu B}$-$k$):$g_{\mu B}$的结构化剪枝模式【【36, Geonhwa Jeong, et al. Vegeta: Vertically-integrated extensions for sparse/dense gemm tile acceleration on cpus. In 2023 IEEE International Symposium on High-Performance Computer Architecture (HPCA). IEEE, 259–272.】, 【88, Wei Sun, et al. DominoSearch: Find layer-wise fine-grained N: M sparse schemes from dense neural networks. Advances in neural information processing systems 34 (2021), 20721–20732.】】,即剪枝后每$g_{\mu B}$个值中有($g_{\mu B}$-$k$)个非零值。为了追踪$\mu B$中每个离群点的对应半部分,我们维护一个逐$\mu B$的排列列表(注意:如果$\mu B$中没有离群点,则不存储排列列表)。每个有离群点的$\mu B$的排列列表由$g_{\mu B}$个元素组成(每个$\mu B$支持的最大离群点数),每个元素以6位格式$\{Upper_{loc}, Lower_{loc}\}$存储离群点Upper和Lower半部分的位置(见图3(a)步骤3)。注意,如果离群点数量 > $g_{\mu B} / 2$,$\mu B$的大小应选择为$2 \times (\# \text{outliers})$,以避免由于需要为每个离群点剪枝两个内联点而导致的准确率下降。虽然在我们评估的所有模型中,$g_{\mu B} = 8$时并未出现这种情况,但此功能仅为展示MicroScopiQ对未来模型的灵活性。

有效位宽(EBW)计算

EBW计算公式。我们遵循【【25, Elias Frantar, et al. Gptq: Accurate post-training quantization for generative pre-trained transformers. arXiv preprint arXiv:2210.17323 (2022).】, 【103, Yilong Zhao, et al. Atom: Lowbit quantization for efficient and accurate llm serving. Proceedings of Machine learning and systems 6 (2024), 196–209.】】将EBW报告为存储每个元素(包括元数据)所需的平均比特数。MicroScopiQ量化FM的EBW在不同模型间动态变化,并取决于离群点百分比和$\mu B$大小的选择。对于INT-$b_{op}$内联点和MX-FP-2$b_{op,g_{\mu B}}$离群点量化,如果$\mu B$中没有离群点,该$\mu B$的EBW为$EBW_0 = b_{op}$。如果$\mu B$中存在离群点,EBW为$EBW_1 = (g_{MaB} \times b_{op} + g_{\mu B} \times |\text{MXScale}| + |\text{Permutation list}|) / g_{\mu B}$,对于$g_{\mu B}=8$,MXScale为8位,排列列表大小为24位(见§4.3),这相当于6位。由于内联点缩放因子在较大的组大小$g_{MaB}$上共享,其对EBW的贡献可以忽略不计。此外,每个$\mu B$使用一个1位标识符来标明是否存在离群点元数据,其开销对EBW的贡献可忽略(0.05-0.09位)。对于一个有$L$层、每层有$N$个$\mu B$、其中$k\%$的$\mu B$包含离群点的FM,其EBW由以下公式给出:


MicroScopiQ 加速器架构

架构概览

整体架构与数据流。图4展示了集成到标准权重固定(weight stationary)脉动阵列中的MicroScopiQ加速器架构。该加速器针对吞吐量进行了优化,所有计算单元(PE阵列、ReCoN等)内部都采用了交错流水线阶段。图5展示了MicroScopiQ与片上和片外存储器的交互。片外存储器被建模为HBM2,带宽为256 GB/s。MicroScopiQ量化张量的片外存储器布局(图5)包含两部分:量化权重和元数据。片上采用两级存储层次结构:2MB的L2全局SRAM从DRAM加载数据,并通过带宽为64 GB/s的OCP-SRAM接口【【86, H Ekin Sumbul, et al. System-level design and integration of a prototype AR/VR hardware featuring a custom low-power DNN accelerator chip in 7nm technology for codec avatars. In 2022 IEEE Custom Integrated Circuits Conference (CICC). IEEE, 01–08.】】传输到MicroScopiQ的缓冲区。

计算流程。通过图4中的编号步骤,我们解释MicroScopiQ加速器的计算流程,并在图6(a-c)中演示了一个带有内联点和离群点权重的2x2 GEMM操作的映射和调度:
1. 权重映射:一个或多个$\mu B$的权重被映射到每个PE行。每个PE根据精度接收一个高精度权重(如4位)或多个打包的低精度权重(如两个2位)。
2. PE行0(无离群点):PE行0从左侧接收量化的输入激活(iAct),从顶部接收输入累加值(iAcc)。PE执行权重与iAct的乘法。由于该行没有离群点,PE将乘法结果与iAcc累加,并将部分和向下传递到PE行1。
3. PE行1(有离群点):PE行1从顶部接收部分和,并同样执行权重与iAct的INT乘法。同时,可以并行计算输出缩放因子(§5.5)。
4. ReCoN处理:由于映射到PE行1的$\mu B$有离群点,控制器将所有PE输出定向到ReCoN。PE行1将累加操作卸载到ReCoN,因为离群点的两半分布在不同位置并映射到不同PE。ReCoN接收到来自行1的输出后,重新排序并计算FP离群点的部分和。
5. 数据流重定向:控制器通知PE行2期望从ReCoN而不是上一行接收输入部分和。如果PE行1是最后一行,则输出激活(oActs)被定向到oAct缓冲区。
6. 后处理:oActs进行后处理(缩放和量化)。后处理操作可以与其余计算重叠,以隐藏计算和内存访问延迟。


Figure 4: MicroScopiQ集成到WS脉动阵列中。

Figure 5: MicroScopiQ内存组织。

Figure 6: 在一个2 × 2 MicroScopiQ加速器上调度GEMM操作的示例。

片上存储与控制

权重/激活组织。输入激活(iActs)作为8位INT存储在iAct缓冲区中。权重缓冲区以4位粒度存储权重;在较低精度(2位)时,每个缓冲区位置同时存储两个2位权重。来自控制器的MODE信号指定了权重缓冲区中的比特格式。

指令缓冲区 (IB)。IB存储MicroScopiQ量化FM推理所需的所有元数据,特别是离群点分布的排列列表(即ReCoN的配置)和缩放因子。

MicroScopiQ控制器。控制器为所有单元生成适当的控制信号。它在功能上与标准脉动阵列控制器【【84, Hardik Sharma, et al. Bit fusion: Bit-level dynamically composable architecture for accelerating deep neural network. In 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA). IEEE, 764–775.】】非常相似,但增加了支持ReCoN、多精度PE和后处理单元的功能。与传统控制器不同,MicroScopiQ控制器使用握手信号对流入PE阵列的iActs和iAccs进行细粒度控制,以解决因ReCoN导致的流水线深度增加问题。


Figure 7: (a) 多精度PE,(b) 同步缓冲器和 c) ReCoN交换机的微架构。

多精度PE阵列

多精度支持。我们在图7(a)中描绘了多精度的MicroScopiQ PE。现有的多精度加速器通常采用自下而上的方法,使用低精度PE并组合相邻PE来支持更高精度,但这会牺牲吞吐量。我们通过MODE信号采用不同策略:在较低精度(2位)时将共享相同右行iAct的多个权重映射到同一个PE,或在较高精度(4位)时映射单个权重。这使得在高精度操作时能利用PE阵列的并行性,而在低精度时通过并行评估多个部分和来提高吞吐量。

乘法阶段。我们提出了一个受【【57, Yuhao Liu, et al. High Flexibility Designs of Quantized Runtime Reconfigurable Multi-Precision Multipliers. IEEE Embedded Systems Letters (2023).】, 【92, Yaman Umuroglu, et al. Bismo: A scalable bit-serial matrix multiplication overlay for reconfigurable computing. In 2018 28th International Conference on Field Programmable Logic and Applications (FPL). IEEE, 307–3077.】】启发的乘法器树架构,用于多精度INT乘法。权重和iAct被划分到四个4位×2位乘法器中计算部分和($p_{00}, p_{01}, p_{10}, p_{11}$)。根据MODE信号,这些部分和通过加法器和移位器的组合来提供不同位精度权重与iAct的乘法结果(Res):

累加阶段。该阶段接收乘法阶段的输出(Res)以及来自ReCoN或前一个PE行的iAcc。控制器通过Outlier_Present信号通知加法阶段根据PE中是否存在内联点/离群点权重来修改累加行为。如果Res对应于内联点权重与iAct的乘法,则Res与iAcc相加。如果Res对应于离群点半部分与iAct的乘法,则实际的离群点累加被卸载到ReCoN,通过拼接Res和iAcc来完成,以防止不正确的离群点部分和计算。


Figure 8: 端到端示例,说明MicroScopiQ在一个4 × 4 PE阵列(仅显示两行)上的工作原理。

重分配与协调片上网络(ReCoN)

ReCoN概述。ReCoN是MicroScopiQ加速器中的一个多级蝶形NoC,它在PE行之间进行时间复用和共享。与在PE内部处理离群点的OliVe【29】和GOBO【99】相比,这是一种成本效益更高的方式,因为PE数量众多,后两种方案会产生更大的成本。

ReCoN拓扑。ReCoN由$N(log_2(N) + 1)$个{2输入,2输出}的ReCoN交换机组成,呈多级蝶形NoC拓扑【【44, Tushar Krishna, et al. Smart: Single-cycle multihop traversals over a shared network on chip. IEEE micro 34, 3 (2014), 43–56.】】。ReCoN的每个阶段也接收PE使用的相同iActs,以便于FP离群点的隐藏位处理。

ReCoN输入接口。ReCoN被所有PE行共享和时间复用。在输入端,列式仲裁器在控制器信号的指导下协调和解决不同PE行之间的争用。由于脉动阵列计算的偏斜数据流,来自同一行不同列的部分和不会在同一周期到达ReCoN输入。一个同步缓冲器(图7(c))被放置在ReCoN和列式多路复用器之间,通过不同长度的缓冲器组来同步来自不同列的输入到达时间。

ReCoN交换机。这是一个{2输入,2输出}的交换机(图7(c)),根据一个3位配置执行三种主要操作:
- Pass (=):将输入从左(右)端口传递到左(右)输出端口。
- Swap (×):将输入从左(右)输入定向到右(左)输出。
- Merge (||):当交换机分别在其左、右端口接收到$P_{Upper,Res}$和$P_{Lower,Res}$时触发此功能。交换机从两个输入中分离Res和iAcc,并选择Upper结果的iAcc进行累加。Upper和Lower半部分的Res分别被移位1次和2次,以解释MX-FP格式中尾数的小数点位置。移位后的Res与相应的iAcc累加。为了计入FP格式的隐藏位(1.0)对离群点部分和的贡献,我们还将iAct加到上述累加中。

ReCoN输出接口。重新排序的部分和被路由到PE阵列的下一行,或者如果输入来自最后一个PE行,则路由到oAct缓冲区。

后处理与缩放计算单元

输出缩放因子计算。对于$g_{MaB}=128$的共享输出缩放因子计算为 $s_{final} = s_{in} + s_{out}$ ($s_{out}$的展开见§4.2)。$s_{final}$的计算与PE阵列中的处理无关,因此我们将其与oActs的处理重叠以隐藏计算延迟。由于我们为内联点和离群点维护不同的尺度,并且oAct缩放因子是基于离群点缩放因子($s_{out}$)计算的,因此仅由内联点权重计算生成的oActs会根据图4中“后处理和缩放计算单元”所示的移位值进行移位,以确保与最终缩放因子一致。最后,oActs通过简单的右移(因为是二次幂缩放因子)进行缩放,并量化为MX-INT-(4/8)$_{128}$,然后发送到外部存储器或路由回iAct缓冲区。

MicroScopiQ工作流程示例

端到端示例。图8展示了一个端到端的示例,我们使用一个4×4的脉动阵列(显示2行),其中PE行0的$\mu B$中有一个离群点和三个内联点,PE行1则全是内联点权重。我们假设$\mu B=4$,内联点和离群点量化格式分别为MX-INT-2$_{128}$和MX-FP-4$_{4,4}$。
1. 期望输出:首先,我们展示了一个包含一个离群点的$\mu B$,其在共享$\mu E$后的实际FP值为1.5$_{10}$。对于给定的iAct=32$_{10}$和iAcc=8$_{10}$,如果没有离群点分布,一个“离群点专用PE”的实际部分和将是56$_{10}$。
2. 权重映射:将分布了离群点的$\mu B$映射到PE行0。
3. PE行0计算与路由:PE行0为列1和2中的内联点计算部分和输出,而对于另外两个有离群点的列,它输出$P_{Upper,Res}$和$P_{Lower,Res}$。PE行0的输出通过ReCoN路由。
4. ReCoN处理:在ReCoN中,内联点在所有阶段都直接通过。在列3的level 1交换机执行一次交换操作,将离群点的下半部分输出重定向到上半部分,同时通过另一个端口发送iAcc。在level 2,接收到$P_{Lower,Res}$的交换机再次执行交换。最后在level 3,离群点的输出半部分被合并,得到$P_{out}$,其值与期望输出匹配。
5. 后续计算:来自ReCoN的部分和被发送到PE行1,该行执行MAC操作并将其发送到下一行,因为没有离群点权重。所有行类似地执行操作,直到计算出最终的部分和。


Figure 9: 在GPU上进行W4A4 MicroScopiQ GEMM的图示。

MicroScopiQ在GPU中的集成

软件:核函数级优化

寄存器缓存。我们实现了一个虚拟缓存层,以在warp内高效地分配离群点。每个线程块不是从共享内存加载和合并离群点,而是使用shfl_sync(m, r, t)【【7, Eli Ben-Sasson, et al. Fast multiplication in binary fields on gpus via register cache. In Proceedings of the 2016 International Conference on Supercomputing. 1–12.】】进行warp内通信。

张量核上的GEMM。由于MicroScopiQ对离群点使用MX-FP格式,对内联点使用MX-INT,合并离群点后的混合瓦片(图9中的迭代0)必须首先反量化为FP16才能执行GEMM。相比之下,纯内联点瓦片(迭代1)可以利用4位INT张量核进行高效加速,但仍需要INT32到FP16的反量化以便在K维度上与其他瓦片进行累加。我们实现了这种块级的动态决策以提供最大性能。然而,重复反量化和缺乏多精度支持是GPU上的一个显著瓶颈。

硬件:潜在的张量核修改

张量核修改。每个张量核【【1, Hamdy Abdelkhalik, et al. Demystifying the nvidia ampere architecture through microbenchmarking and instruction-level analysis. In 2022 IEEE High Performance Extreme Computing Conference (HPEC). IEEE, 1–8.】, 【14, NVIDIA Corporation. 2017. Inside Volta: The World’s Most Advanced Data Center GPU.】】执行16位FEDP(四元素点积)。因此,每个4位张量核可以执行16个EDP。高效加速MicroScopiQ需要在张量核内同时支持INT+FP。遵循§5.4中ReCoN的功能,每个16EDP操作需要一个可变右移位器(内联点:>> 0,离群点上半部分:>> 1,离群点下半部分:>> 2)来处理离群点乘积的FP尾数。在典型的GPU芯片尺寸下,增加一个移位器的开销可以忽略不计(约0.1%)。

A4 实验环境

  • 模型与数据集:

    • LLMs: OPT, LLaMA2, LLaMA3, Phi-3 (SLM), Mixtral (MoE)。
    • VLMs: OpenFlamingo, VILA, LlaVa。
    • CNNs/SSMs: ResNet50, VGG16, VMamba, Vim。
    • 校准数据集: 从PILE数据集中随机抽取256个样本用于FMs;从ImageNet训练集中抽取64个样本用于CNN/SSM。
    • 评估基准:
      • LLMs: WikiText2 (PPL), BoolQ, HellaSwag, PIQA, ARC-c, MMLU, Winogrande。
      • VLMs: COCO captioning, VQAv2, VizWiz, TextVQA, GQA。
      • CNNs/SSMs: ImageNet (Top-1 accuracy)。
  • 硬件配置:

    • 算法实现: 单个NVIDIA H100 GPU。
    • 加速器设计: 基于TSMC 7nm工艺库进行综合与布局布线,峰值时钟频率1GHz。
    • GPU仿真: 扩展GPGPU-Sim和AccelSim用于Ampere GPU。
  • 软件配置:

    • 算法实现: PyTorch。
    • 加速器实现: Verilog RTL, Synopsys Design Compiler, Innovus。
    • 性能评估: 使用CACTI评估片上存储器,使用基于DnnWeaver和BitFusion的周期精确模拟器进行端到端性能评估。
    • GPU实现: CUDA核函数,PyTorch前端。使用AccelWattch和GPUWattch进行能耗估算。
  • 对比基线:

    • 算法: OmniQuant, AWQ, GPTQ, Atom, SDQ。
    • 协同设计/加速器: OliVe, GOBO, ANT, OLAccel, AdaptivFloat, MTIA, Eyeriss-v2。
    • GPU: FP16 TensorRT-LLM, W4A4 Atom核函数。

A5 实验结果

LLM量化结果

  • 仅权重(Weight-Only)量化 (W4A16, W2A16):

    • 结果: 如表2所示,MicroScopiQ在所有LLMs和量化设置上始终优于所有基线。在W4A16下,它实现了近乎无损的量化性能。在W2A16下,优势更为明显,PPL得分比基线低多达2.04。与SDQ相比,PPL得分低多达2.06,这得益于其灵活的剪枝+量化策略。
    • 有效位宽 (EBW): 对于2位和4位内联点量化,MicroScopiQ的EBW分别为2.36和4.15位,远低于GOBO(15.6, 18.17位)。
      Table 2: LLMs的量化结果。报告WikiText2困惑度(越低越好)。
  • 权重-激活(Weight-Activation)量化 (W4A4, W2A8):

    • 方法: MicroScopiQ通过将激活量化的难度迁移到权重(迁移强度α可高达0.7),简化了激活的量化。
    • 结果: 如表2所示,MicroScopiQ的PPL得分比基线低多达7.4倍,并且优于Atom。
      Table 3: LLaMA2-70B在LLM基准上的量化性能比较。
  • 基准准确率:

    • 结果: 如图2(b)和表3所示,W2A16的MicroScopiQ在多个LLM基准任务上的准确率比W4A16的OliVe高出≥8%,并且比OmniQuant高出多达9%。这证明了MicroScopiQ在保留模型性能方面的优越性。

VLM量化结果

  • 结果: 如图10所示,在对OpenFlamingo-9B和VILA-7B的仅权重(W4A16和W2A16)量化中,MicroScopiQ始终优于所有基线。在W4A16下,准确率下降不到1%;在W2A16下,准确率下降不到4%,甚至优于一些W4A16的基线。
  • 定性分析: 如图11所示,在COCO字幕生成任务中,W2A16的MicroScopiQ量化模型能生成准确的图像描述,而OliVe则会出现错误(例如,将“船”误识别为“货车”)。

    Figure 10: VLMs的仅权重量化,OpenFlamingo-9B [5]在COCO, VQAv2上的表现,以及VILA-7B [54]在VizWiz和TextVQA上的表现。

    Figure 11: OpenFlamingo-9B [5]在8-shot COCO字幕生成任务上的定性结果,使用了OliVe (W4)和MicroScopiQ (W2)的仅权重量化。红色和绿色文本分别表示不正确和准确的字幕。

CNN和SSM量化结果

  • 结果: 如表4所示,MicroScopiQ在CNNs和SSMs上也表现出色。在W4A4/W4A8下实现近无损性能,在W2A4下准确率下降≤3%。对于SSM模型,其准确率比SOTA的QMamba高出多达30%。
    Table 4: 非Transformer模型的量化结果。报告在ImageNet上的Top-1准确率(%)(越高越好)。

加速器结果

  • 计算面积与密度: 如表5所示,对于一个64×64阵列,MicroScopiQ的计算开销仅为8.63%,低于OliVe的9.90%。其计算密度(TOPS/mm²)比OliVe高近2倍,比GOBO高14倍。
    Table 5: 7nm工艺下64 × 64阵列的计算面积和密度比较。
  • 等准确率性能与能耗比较:
    • 设置: 通过混合精度设置,使所有模型的准确率与W4A4 MicroScopiQ的准确率相差在±2%以内。MicroScopiQ-v1 (W4A4)和v2 (WxA4, 大部分层为2位)进行比较。
    • 结果: 如图12所示,MicroScopiQ v1和v2分别实现了1.50倍和2.47倍的平均加速。在能耗方面,v2比基线平均低1.5倍。

      Figure 12: 不同加速器的等准确率比较。MicroScopiQ-v1和-v2在同一加速器上执行,对应两种不同的数据精度分布。

GPU结果

  • 实际GPU吞吐量: 如表6所示,未优化的MicroScopiQ核函数性能不佳,而优化后的核函数(MS optim.)性能与SOTA的Atom相当,同时准确率更高。
  • GPU仿真与对比: 仿真结果(表6)显示,修改后的张量核(MTC)可实现最高吞吐量。与A100 GPU相比,在等带宽和等计算资源下,MicroScopiQ加速器v2实现了1.7倍的加速,且能效更高(图13)。
    Table 6: 不同量化方法在A100 GPU和GPU仿真上的归一化Token生成吞吐量比较(括号内为Wikitext困惑度)。


    Figure 13: MicroScopiQ加速器与A100 GPU的比较:(a) 归一化延迟,(b) 归一化能耗。

算法消融实验

  • 各组件影响: 表7展示了逐步加入MicroScopiQ各项技术对LLaMA3-8B PPL的影响。关键步骤在于将离群点量化为更高精度的MX-FP-4$_{8,8}$,这显著恢复了因降至2位INT而损失的性能。
  • KV缓存量化: 采用【59】中的2位KV缓存量化技术,对性能影响甚微。
  • 与OmniQuant结合: 将MicroScopiQ与OmniQuant的方法(LWC和LET)结合,性能提升高达22%(表8)。
  • 离群点组大小: 图14分析了不同$\mu B$大小的影响,结果表明$\mu B=8$在准确率、EBW和离群点多样性之间取得了最佳平衡。
    Table 7: 在LLaMA3-8B PPL上逐步加入不同量化技术的效果。

    Table 8: MicroScopiQ与OmniQuant集成后的LLM量化性能。


    Figure 14: 离群点组大小对MicroScopiQ量化的LLaMA3-8B的Wikitext-v2困惑度(PPL)和EBW的影响。∞表示逐张量粒度。

时间复用的ReCoN分析与可扩展性

  • ReCoN单元数量: 实验表明,对于64×64的PE阵列,访问ReCoN的冲突率低于3%(图16(b))。增加ReCoN单元数量可以减少延迟,对于高达128×128的阵列,8个ReCoN单元足以达到峰值性能,延迟改善21%,计算面积仅增加1.58倍(图18(a))。
  • 可扩展性: 如图17所示,随着PE阵列规模扩大,单个ReCoN的面积开销变得微不足道(在128×128阵列中仅占3%)。即使有8个ReCoN,开销也仅为11%。
  • 在现有NoC加速器上的开销: 将MicroScopiQ集成到MTIA和Eyeriss-v2等现有NoC加速器中,计算面积增加分别仅为3%和2.3%(图18(b)),表明集成开销极小。

    Figure 15: 具有不同数量ReCoN单元的MicroScopiQ加速器的不同变体。

    Figure 16: (a) 带注释的MicroScopiQ平面图(64×64阵列)。(b) 64 × 64 PE阵列访问ReCoN的冲突百分比。

    Figure 17: MicroScopiQ和OliVe在不同PE阵列大小下的面积比较。展示了具有不同数量ReCoN单元的三个MicroScopiQ版本。

    Figure 18: (a) 时间复用的ReCoN单元对计算面积和推理延迟的影响,(b) MicroScopiQ在基于NoC的加速器[11, 23]中的实现开销。

A6 结论

本文介绍了MicroScopiQ,一种新颖的基础模型训练后量化协同设计技术。MicroScopiQ通过以下方式解决了离群点感知量化问题:a) 对离群点使用更高精度的MX-FP,对内联点使用更低精度的INT,以保持准确率;b) 利用剪枝来分配额外的离群点比特,确保内存对齐和硬件效率。MicroScopiQ加速器配备了多精度PE和ReCoN NoC,能高效处理分布式的离群点。MicroScopiQ是首个在仅2.36位的有效位宽下为LLMs和VLMs实现SOTA压缩的PTQ技术,其推理性能比现有加速器高3倍,能耗低2倍。