论文状态:已完成

CAMformer: Associative Memory is All You Need

发表:2025/11/25
原文链接PDF 下载
价格:0.100000
价格:0.100000
已有 3 人读过
本分析由 AI 生成,可能不完全准确,请以原文为准。

TL;DR 精炼摘要

本文提出了CAMformer,一种新颖的硬件加速器,通过将注意力机制重新解释为关联记忆操作,并使用电压域二进制注意力内容寻址存储器(BA-CAM)实现恒定时间的相似度搜索。该方法在BERT和视觉变换器等负载下表现出超过10倍的能量效率、最高4倍的吞吐量提升和6-8倍的面积降低,同时保持近乎无损的准确性。

摘要

Transformers face scalability challenges due to the quadratic cost of attention, which involves dense similarity computations between queries and keys. We propose CAMformer, a novel accelerator that reinterprets attention as an associative memory operation and computes attention scores using a voltage-domain Binary Attention Content Addressable Memory (BA-CAM). This enables constant-time similarity search through analog charge sharing, replacing digital arithmetic with physical similarity sensing. CAMformer integrates hierarchical two-stage top-k filtering, pipelined execution, and high-precision contextualization to achieve both algorithmic accuracy and architectural efficiency. Evaluated on BERT and Vision Transformer workloads, CAMformer achieves over 10x energy efficiency, up to 4x higher throughput, and 6-8x lower area compared to state-of-the-art accelerators--while maintaining near-lossless accuracy.

思维导图

论文精读

中文精读

1. 论文基本信息

1.1. 标题

CAMformer: Associative Memory is All You Need

1.2. 作者

Tergel Molom-Ochir, Benjamin F. Morris, Mark Horton, Chiyue Wei, Cong Guo, Brady Taylor, Peter Liu, Shan X. Wang, Deliang Fan, Hai "Helen" Li, and Yiran Chen。 作者们主要隶属于杜克大学 (Duke University),部分作者也来自斯坦福大学 (Stanford University) 和亚利桑那州立大学 (Arizona State University)。

1.3. 发表期刊/会议

预印本 (Preprint) 平台 arXiv。

1.4. 发表年份

2025年 (根据发布时间 2025-11-24T21:57:11.000Z)。

1.5. 摘要

Transformers 模型由于其注意力 (attention) 机制涉及查询 (queries) 和键 (keys) 之间密集的相似度计算,导致二次方 (quadratic) 复杂度,面临可扩展性挑战。本文提出了 CAMformer,一种新颖的加速器,它将注意力机制重新解释为一种关联记忆 (associative memory) 操作,并使用电压域二进制注意力内容寻址存储器 (voltage-domain Binary Attention Content Addressable Memory, BA-CAM) 来计算注意力得分 (attention scores)。这种方法通过模拟电荷共享 (analog charge sharing) 实现恒定时间 (constant-time) 的相似度搜索,用物理相似度感知 (physical similarity sensing) 取代了数字算术 (digital arithmetic)。CAMformer 集成了分层两阶段 top-k 过滤 (hierarchical two-stage top-k filtering)、流水线执行 (pipelined execution) 和高精度上下文化 (high-precision contextualization),以实现算法准确性和架构效率。在 BERTVision Transformer 工作负载上进行评估,CAMformer 实现了超过 10x 的能量效率 (energy efficiency)、高达 4x 的吞吐量 (throughput) 提升,以及 6-8x 更低的面积 (area),同时保持了近乎无损的准确性 (near-lossless accuracy)。

1.6. 原文链接

原文链接: https://arxiv.org/abs/2511.19740v1 PDF 链接: https://arxiv.org/pdf/2511.19740v1.pdf 发布状态: 预印本。

2. 整体概括

2.1. 研究背景与动机

Transformer 模型在自然语言处理、计算机视觉和语音识别等多个领域取得了革命性进展,这主要归功于其通过自注意力 (self-attention) 机制建模长距离依赖关系的能力。然而,注意力机制的计算和内存需求,尤其是其关于序列长度 (sequence length) 的二次方 (quadratic) 复杂度,对 Transformer 模型在资源受限环境中的部署以及高效处理长序列构成了巨大挑战。

传统的硬件加速器通常通过优化注意力机制中的矩阵乘法 (MatMul) 操作(例如 QKTQ K^TAV 计算)来解决这一瓶颈。尽管采用了低精度算术 (low-precision arithmetic)、稀疏性利用 (sparsity exploitation) 和内存分块 (memory tiling) 等技术,但注意力机制对密集矩阵操作的依赖导致了大量数据移动和能量消耗,这是一个根本性问题。

本文的动机在于,提出一种全新的视角:将注意力机制视为一种基于内容的内存检索 (content-based memory retrieval),类似于内容寻址存储器 (Content-Addressable Memory, CAM) 系统执行的操作。通过将注意力的计算模型与 CAM 的关联检索能力对齐,可以探索一种能够固有地支持高效注意力计算的硬件架构。

2.2. 核心贡献/主要发现

CAMformer 旨在通过利用 CAM 结构来执行注意力操作,从而提高吞吐量、降低能耗并提供可扩展性优势。其主要贡献如下:

  • 注意力机制的重构 (Reconceptualization of Attention): 提出了将注意力机制解释为一种关联记忆操作的新颖观点,使其与 CAM 功能对齐。这意味着查询 (queries) 不再是与键 (keys) 进行传统意义上的数值计算,而是像在 CAM 中进行内容匹配一样,通过相似度来“解锁”相关信息。
  • 基于 CAM 的注意力得分计算 (CAM-based Attention Score): 引入了一种新的注意力得分模块,它利用电压域二进制注意力内容寻址存储器 (BA-CAM)。BA-CAM 通过模拟电荷共享 (analog charge sharing) 在恒定时间 (constant-time) 内完成相似度搜索,从而取代了传统的数字算术运算,大大降低了电路复杂性。
  • CAMformer 架构 (CAMformer Architecture): 设计了一个集成了 CAM 结构以执行注意力计算的硬件加速器,减少了对传统矩阵乘法的依赖。该架构通过分层两阶段 top-k 过滤、流水线执行和高精度上下文化,实现了算法准确性和架构效率。
  • 卓越的性能提升:BERTVision Transformer 工作负载上进行评估,CAMformer 实现了超过 10倍 的能量效率、高达 4倍 的吞吐量提升,以及 6-8倍 更低的面积,同时保持了近乎无损的准确性。

3. 预备知识与相关工作

3.1. 基础概念

  • Transformer 模型 (Transformer Model): Transformer 是一种基于自注意力机制的神经网络架构,由 Google 在2017年提出。它彻底改变了自然语言处理 (NLP) 领域,并迅速扩展到计算机视觉 (CV) 等其他领域。Transformer 模型的核心在于其能够并行处理输入序列中的所有元素,并通过注意力机制捕捉长距离依赖关系,克服了传统循环神经网络 (RNN) 和卷积神经网络 (CNN) 在处理长序列时的局限性。

  • 自注意力机制 (Self-Attention Mechanism): 自注意力机制是 Transformer 模型的核心组成部分,它允许模型在处理序列中的每个元素时,都能考虑到序列中所有其他元素的重要性。其基本思想是将输入序列中的每个词元 (token) 转换为三个向量:查询 (Query, QQ)、键 (Key, KK) 和值 (Value, VV)。 自注意力计算公式为: Attention(Q,K,V)=softmax(QKTdk)V \mathrm{Attention}(Q, K, V) = \mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

    • QQ (Query, 查询): 表示当前要处理的词元。
    • KK (Key, 键): 表示序列中所有词元,用于与查询进行匹配。
    • VV (Value, 值): 表示序列中所有词元的实际信息,根据匹配结果进行加权聚合。
    • dkd_k: 键向量的维度,用于缩放点积结果,防止点积过大导致 softmax 梯度过小。
    • QKTQK^T: 计算查询与所有键的点积相似度,生成注意力得分矩阵。
    • softmax()\mathrm{softmax}(\cdot): 对注意力得分进行归一化,使其和为1,表示每个值向量的权重。
    • ()V(\cdot)V: 将归一化后的注意力权重应用于值向量,进行加权求和,得到最终的注意力输出。
  • 二次方复杂度 (Quadratic Complexity): 在自注意力机制中,计算 QKTQK^T 矩阵时,如果序列长度为 NN,查询矩阵 QQ 的维度为 N×dkN \times d_k,键矩阵 KK 的维度为 N×dkN \times d_k,那么 KTK^T 的维度为 dk×Nd_k \times N。它们相乘的结果是 N×NN \times N 的矩阵。这个 N×NN \times N 的矩阵乘法以及后续的 softmax 操作的计算复杂度为 O(N2dk)O(N^2 \cdot d_k)。当序列长度 NN 很大时,这种二次方复杂度会导致计算量和内存消耗急剧增加,成为 Transformer 模型的主要瓶颈。

  • 矩阵乘法 (Matrix Multiplication, MatMul): 矩阵乘法是线性代数中的基本运算,也是许多深度学习模型(包括 Transformer)中的核心计算。例如,QKTQ K^T 和注意力输出乘以值矩阵 (A V) 都是矩阵乘法。传统的 MatMul 通常通过数字电路实现,涉及大量的乘法和加法运算,需要大量的数据移动和计算资源。

  • 内容寻址存储器 (Content-Addressable Memory, CAM) / 关联记忆 (Associative Memory): CAM 是一种特殊的存储器,它通过内容而不是地址来检索数据。与传统随机存取存储器 (Random Access Memory, RAM) 不同,CAM 允许同时将输入数据(称为查询或搜索关键字)与所有存储条目进行比较,并返回匹配数据的地址。这种并行搜索能力使得 CAM 在需要快速数据匹配和检索的应用中非常高效,例如 IP 查找、转发引擎和深度随机森林加速等。CAM 的工作原理是将输入数据广播到内存阵列中,每个单元将其与存储内容进行比较。如果找到匹配项,则返回相应的地址。这种机制消除了顺序搜索的需要,显著减少了搜索时间并提高了数据密集型任务的性能。

  • 汉明相似度 (Hamming Similarity): 汉明相似度是汉明距离 (Hamming Distance) 的一种度量,用于衡量两个等长二进制字符串之间对应位置上不同比特的数量。汉明距离越小,汉明相似度越高。例如,1011010011 的汉明距离为2(第三位和第五位不同),汉明相似度为 3/53/5。在 CAMformer 中,通过 BA-CAM 对二进制查询和键进行 XNOR 运算,并累加匹配的比特,来在模拟域中计算汉明相似度。

  • 模拟电荷共享 (Analog Charge Sharing): 模拟电荷共享是一种在模拟电路中实现加法或求平均值等运算的技术。在 BA-CAM 中,当查询比特与存储的键比特匹配时,一个预充电的电容器会保持高电平;不匹配时,则放电。沿着匹配线 (matchline) 的电荷共享机制允许模拟地累积匹配结果,从而直接将汉明相似度表示为电压值。这种方法取代了传统的数字计数逻辑 (popcount logic),实现了更高效、更快的相似度计算。

  • PVT 变异 (PVT Variations): PVT 是指工艺 (Process)、电压 (Voltage) 和温度 (Temperature) 的缩写。这些因素的变化会影响集成电路的性能、功耗和可靠性。例如,工艺变化会导致晶体管的尺寸和特性参数变化;电压变化会影响电路的开关速度和功耗;温度变化会影响晶体管的阈值电压和迁移率。一个鲁棒的电路设计应该能够在高 PVT 变异下保持稳定和准确的性能。

3.2. 前人工作

  • 传统 MatMul 优化: 为了缓解 TransformerMatMul 的计算瓶颈,研究人员提出了多种硬件加速技术,例如:

    • 低精度算术 (Low-precision arithmetic): 使用更少的比特来表示数值,如 INT8BF16,以减少计算量和内存带宽。
    • 稀疏性利用 (Sparsity exploitation): 通过跳过零值或近似零值的计算,减少不必要的运算。
    • 内存分块 (Memory tiling): 将大矩阵划分为小块,以更好地利用片上缓存 (on-chip cache) 和减少数据移动。 尽管这些方法有所帮助,但它们仍然围绕着 MatMul 的基本计算模式,未能从根本上改变其二次方复杂度。
  • 计算内存 (Compute-in-Memory, CiM) 方法: CiM 是一种将计算逻辑嵌入到内存单元附近或内部的架构范式,旨在减少数据在处理器和内存之间移动带来的能耗和延迟。

    • XNOR-NE [29]: 一种硬件加速器 IP,用于 21.6-fJ/op 的二值神经网络 (Binary Neural Network, BNN) 推理。它通常在位线上执行 XNOR 运算和 popcount(计数置位比特数)以实现相似度计算。
    • BitFusion [30]: 一种位级动态可组合架构,用于加速深度神经网络。 CiM 方法通常需要额外的外围电路(如 Flash ADC 和加法树)来累积和数字化结果,增加了延迟和面积开销。
  • 时间域 CAM (TD-CAM) [28]: TD-CAM 是一种基于时间域信号处理的 CAM,用于二值神经网络加速器。它通过感应放电延迟来编码相似度得分,即匹配的比特越多,放电延迟越长。然而,TD-CAM 需要时间差放大器 (Time-Difference Amplifier, TDA) 和精确的时间匹配和校准,这引入了时序复杂性并降低了鲁棒性。

  • 汉明注意力蒸馏 (Hamming Attention Distillation, HAD) [32]: HAD 是一种将 Transformer 模型中的查询 (Query, QQ) 和键 (Key, KK) 二值化的技术,旨在实现高效的长上下文 Transformer。它通过将浮点查询和键映射到二进制表示,可以在保持模型大部分准确性的同时,显著降低计算和内存成本,为 CAMformer 中使用二进制 QQKK 奠定了算法基础。

3.3. 技术演进

该领域的技术演进可以概括为从传统数字 MatMul 加速向内存内计算 (In-Memory Computing) 的转变,特别是利用内容寻址存储器 (CAM)的关联特性。

  1. 早期优化阶段: 集中于优化 MatMul 操作,通过低精度量化稀疏化内存分块等手段,提升数字加速器(如 TPU)的效率。这些方法虽然有效,但受限于 MatMul 本身的二次方复杂度,在处理长序列时仍面临瓶境。
  2. CiM 探索阶段: 随着 BNN 的兴起,计算内存 (Compute-in-Memory) 架构开始探索将 XNOR 等二值运算集成到内存阵列中,以减少数据传输。XNOR-NEBitFusion 是这一阶段的代表。然而,这些方法通常仍依赖于数字外围电路进行累加和数字化,增加了复杂性和开销。
  3. CAM 引入阶段: 认识到注意力机制的本质是一种关联记忆操作,CAM 被视为一种更自然的匹配硬件。TD-CAM 是早期尝试之一,它利用时间域信号处理来编码相似度。但其对时间敏感和校准需求高,限制了其广泛应用。
  4. CAMformer 的创新阶段: CAMformer 代表了 CAM 应用于 Transformer 注意力加速的最新进展。它通过引入电压域 BA-CAM,解决了 TD-CAM 的鲁棒性问题,实现了恒定时间模拟域汉明相似度计算,同时结合了分层稀疏过滤流水线等架构优化,实现了前所未有的能效和吞吐量。

3.4. 差异化分析

CAMformer 与现有方法的核心区别和创新点在于:

  • 注意力机制的根本性重构:
    • 与传统 MatMul 加速器 (TPU, WSE 等) 的区别: 传统加速器关注如何更高效地执行密集的矩阵乘法,而 CAMformer 彻底改变了注意力计算的底层范式,将其从数值密集计算转变为基于内容的关联记忆检索。这使得 QKTQK^T 操作不再是数字乘法,而是模拟域的相似度搜索
  • BA-CAM 的优势:
    • CiM (XNOR-NE, BitFusion 等) 的区别: CiM 通常在位线 (bit-lines) 上执行 XNORpopcount,并通过列复用 ADC 进行数字化,这增加了外围电路和序列化开销。BA-CAM 则在匹配线 (matchline)上直接通过模拟电荷共享实现汉明相似度的累积,消除了数字 popcount 逻辑,并使用共享的 SAR ADC 进行数字化,显著降低了复杂度、面积和功耗。它真正实现了计算和存储的统一。
    • TD-CAM 的区别: TD-CAM 使用时间域延迟来编码相似度得分,需要时间差放大器 (TDA)、紧密的时间匹配和校准,对 PVT 变异敏感。BA-CAM 则采用电压域方案,将相似度直接编码为电压信号,具有线性响应、更强的 PVT 鲁棒性、更简单的数字集成,且无需 TDA 或时序校准,实现了恒定时间计算。
  • 算法-架构协同优化:
    • 全二值化 QQKK: 结合 Hamming Attention Distillation (HAD) 等算法,将查询和键完全二值化,使得 BA-CAM 的模拟相似度计算成为可能,并大幅减少了片上存储需求。

    • 分层稀疏注意力得分排名 (Hierarchical Sparse Attention-Score Ranking): 采用两阶段 top-k 过滤机制,在早期阶段进行粗略过滤(每16个块保留 top-2),随后进行最终排名,这不仅减少了片上得分存储,还允许提前预取值向量 (VV),有效隐藏了 DRAM 延迟。

    • 精细和粗粒度流水线 (Fine-grained and Coarse-grained Pipelining): 在每个阶段内部和不同阶段之间都采用了流水线技术,极大地提高了硬件利用率和整体吞吐量。

      综上所述,CAMformer 通过在硬件层面重新构想注意力机制,利用鲁棒高效的模拟内存内计算,并与二值化稀疏化等算法优化紧密结合,从根本上解决了 Transformer 的可扩展性挑战,实现了超越现有最先进加速器的性能。

4. 方法论

4.1. 方法原理

CAMformer 的核心思想是将 Transformer 的注意力机制从传统的密集矩阵乘法操作重新解释为一种关联记忆 (associative memory) 操作。这种重解释使得注意力得分的计算可以通过内容寻址存储器 (Content Addressable Memory, CAM) 来高效完成,特别是通过一种新颖的电压域二进制注意力 CAM (BA-CAM)。

其背后直觉是:注意力机制本质上是在海量“键-值”对中,根据“查询”与“键”的相似度,找到并聚合最相关的“值”。这恰好与 CAM 的工作原理不谋而合——CAM 就是通过内容而非地址来检索和匹配数据。CAMformer 利用 BA-CAM 的物理特性,通过模拟电荷共享 (analog charge sharing) 在恒定时间 (constant time) 内直接感知查询与存储键之间的汉明相似度 (Hamming similarity),从而取代了传统的数字逻辑乘加运算。这种方法消除了大量的数据移动和数字计算,显著提高了能量效率和吞吐量,并降低了面积。

下图(原文 Figure 1)形象地展示了将注意力视为一种“键-锁”机制:

Fig. 1: Attention as a key-lock mechanism. The query vector (Q) is used to determine similarity with stored keys (K), producing an attention score. The resulting soft selection determines which value vectors (V) to aggregate. This metaphor illustrates attention as an associative memory operation, where queries "unlock" relevant stored information. 该图像是一个示意图,展示了注意力机制中的查询向量(Q)、键(K)及值(V)的关系。图中通过注意力得分矩阵展示了查询向量与键之间的相似度,指示哪些值向量将被聚合。此外,强调了在特定键的上下文中如何选择合适的值,这一过程将注意力视为一种关联记忆操作。

图中的查询向量(Q)就像一把钥匙,用于确定与存储的键(K)之间的相似度,从而产生注意力得分。这些得分决定了哪些值向量(V)将被软选择和聚合。这种比喻将注意力描绘成一个关联记忆操作,其中查询“解锁”了相关的存储信息。

4.2. 核心方法详解 (逐层深入)

4.2.1. 二进制注意力 CAM (BA-CAM)

BA-CAMCAMformer 的核心计算引擎,负责高效计算二进制查询和键之间的注意力得分。

4.2.1.1. 电路级设计 (Circuit-Level Design)

  1. 单元设计 (Cell Design): CAMformer 采用了一个 10T1C (10晶体管1电容) 的 CAM 单元,专为部分匹配 (partial-match) 和二进制向量-矩阵乘法 (binary vector-matrix multiplication, VMM) 操作而设计。

    • 每个单元在 SRAM 逻辑中存储1比特数据。
    • 其匹配结果表示在一个 22fF MIM 电容中。
    • 通过 XNOR 逻辑与查询比特进行比较。
    • 当匹配时,预充电的电容保持高电平;否则,放电。
    • 沿着匹配线 (matchline) 的电荷共享机制实现了汉明相似度 (Hamming similarity) 的模拟累积,取代了数字的 popcount 逻辑。
    • 该设计在四个阶段运行:precharge (预充电)、broadcast (广播)、match (匹配)、和 charge share (电荷共享)。它支持流水线操作且避免了破坏性读出。
  2. 阵列与匹配线架构 (Array & Matchline Architecture): BA-CAM 阵列通过在 KT{0,1}ˉdk×NK^T \in \bar{\{0, 1\}}^{d_k \times N} 的列上广播查询 Qˉ{0,1}ˉdk×1\bar{Q} \in \bar{\{0, 1\}}^{d_k \times 1} 来计算二进制 VMM

    • 比特级匹配结果以 [0, 1] 范围内的模拟电压形式累积在每条匹配线上,产生 A[0,1]1×NA \in [0, 1]^{1 \times N}

    • 这些电压与汉明相似度成线性比例,并通过共享的 6bitSARADC6-bit SAR ADC (逐次逼近寄存器模数转换器) 进行数字化。

    • TD-CAM (时间域 CAM) 不同,后者使用时间域延迟感应并需要时间差放大器 (TDA),BA-CAM 的电压域方案更简单、更快,并且对 PVT (工艺、电压、温度) 变异更鲁棒。

    • 这种线性、无延迟的感应模型消除了时序校准的需求,并能高效扩展到更大的阵列和更高的吞吐量,而不会增加模拟电路的复杂性。

      下图(原文 Figure 2)展示了一个示例 2×62 \times 6 BA-CAM 模块的阵列级架构,用于二进制注意力计算。每行都基于汉明相似度。

      Fig. 2: Array-level architecture of an example \(2 { \\times } 6\) BA-CAM module's array used for binary attention computation. Each row based on Hamming similarity. 该图像是一个示意图,展示了一个 2×62 \times 6 的BA-CAM模块的数组架构,用于二进制注意力计算。该模块通过哈明相似度比较每一行,右侧展示了存储在CAM中的KK矩阵及输入向量的匹配结果。

下图(原文 Figure 3)展示了 BA-CAM 的匹配线电压特性和 PVT 鲁棒性:

Fig. 3: (a) Matchline voltage traces for varying partial matches in \(1 \\times 1 0\) BA-CAM. (b) PVT analysis across corners for \(1 6 { \\times } 6 4\) array. 该图像是图表,展示了 1 imes 10 BA-CAM 中不同比特匹配情况下的匹配线电压变化情况(左侧)以及在 1 6 imes 6 4 数组中匹配比特数量与电压的关系(右侧)。

(a) 显示了在 1×101 \times 10 BA-CAM 中,不同部分匹配(即不同汉明相似度)情况下匹配线电压轨迹。可见,电压与匹配比特数呈线性关系。 (b) 显示了在 16×6416 \times 64 阵列中,在不同工艺、电压、温度 (PVT) 角落条件下的 BA-CAMPVT 分析,表明其具有高鲁棒性。

4.2.1.2. 微架构与 VMM 引擎 (BIMV - Binary In-Memory Vector-Matrix Multiplication)

  1. BIMV 操作: CAMformer 使用建立在 BA-CAM 阵列上的二进制内存内向量-矩阵乘法 (BIMV) 引擎来实现二进制 QKTQ K^T 运算。
    • 每个 BA-CAM 阵列的行存储一个二进制键 (来自 KTK^T)。

    • 查询向量被广播到整个阵列。

    • 比特级 XNOR 运算并行发生,匹配的比特电荷共享到匹配线上。

    • 由此产生的电压编码了汉明相似度,并由一个简单的 ADC/比较器 感应,从而消除了数字算术运算,实现了恒定延迟计算。

    • CAM 在匹配线(时间/电压)上执行相似度计算,而 CiM (内存内计算) 则在位线 (bit-lines) 上执行 XNOR + popcount,并通过列复用 ADC 进行数字化,这增加了外围/序列化开销(如表 I 所示)。

    • BA-CAM 通过使用 6bitADC6-bit ADC 线性缩放匹配线输出,将得分 ss 映射到 [0,1][64,64][0, 1] \to [-64, 64] 范围,同时保留注意力得分的排序。

    • 与需要 SRAM 抓取、外部 XNOR-popcount 和顺序累积的数字 BIMV (例如 XNOR-NE [29], BitFusion [30]) 不同,CAM 统一了计算和内存。

    • TD-CAM [28] 虽然也移除了数字 popcount 并支持行并行,但它将得分编码为放电延迟,需要 TDA、严格的延迟匹配和校准,引入了时序复杂性并削弱了鲁棒性。

      以下是原文 Table I,比较了不同 BIMV / 注意力得分模块的电路级特性:

      Feature CiM [29] TD-CAM [28] BA-CAM (Ours)
      Sensing BL sum(XNOR+Accumulate) Time ML Voltage ML
      Similarity No (popcount) Yes (delay) Yes (voltage)
      Peripherals Flash ADC (MUX)+ Adder Tree TDA + tune Shared SAR
      Tech 65 nm 65 nm 65 nm
      Module area High (ADC) Med-High(TDA) Low (sharedSAR)
      VDD 0.61.0 V 1.2V 1.2 V
      Freq 18.5 MHz 200 MHz 500 MHz
      Overall err. 7% (pred.) 7.76% 1.12%*
      PVTrobustness Moderate(Calibrated ADC) Low(time-domain) High(voltage-sensed)
      Complexity Very high(ADC+Adder Tree) High (TDA) Low (noMAC/popcnt)

注:* 模拟在 σ=1.4%\sigma = 1.4\% 下。

BA-CAM 通过电压而非时间来编码相似度:每个匹配的比特都会向匹配线增加电荷;感应到的电压直接反映相似度,消除了延迟路径调整和 TDA。与 TD-CAM 的非线性延迟不同,BA-CAM 产生线性电压响应,具有更强的 PVT 容忍度,并且更干净地集成到数字电路(如表 I 所示)。它能灵活扩展,不需要多数阈值投票。在 PVT 变异下,BA-CAM 将匹配线偏差保持在 5.05% 以内,平均误差低至 1.12%(在 TT/SS/FFTT/SS/FF 工艺角之间),优于先前的 TD-CAM(显示延迟偏差高达 7.76%\leq 7.76\%)。BA-CAM 完全避免了基于时序的感应——通过物理方式(电压)在恒定时间内计算相似度——消除了外部逻辑、对齐和校准,并提供了节能、完全内存内关联计算;数字 BIMV 模拟关联,而 BA-CAM 是真正的关联。

  1. 矩阵-向量乘法 (Matrix-Vector Multiplication) 示意图: 下图(原文 Figure 4)展示了在 BA-CAMBIMV 的操作。

    Fig. 4: Illustration of matrix-vector multiplication. Comparison of conventional (left top) versus CAM-based (left bottom). Tiling steps for larger matrix-vector operations (right). 该图像是示意图,展示了矩阵-向量乘法的过程。左侧比较了传统方法与基于内容寻址存储器(BA-CAM)的方法,右侧说明了更大矩阵-向量操作的分块步骤。图中还展示了不同大小及维度的矩阵操作。

    左上方展示了传统的 BIMV 方法,数字组件使用数字逻辑执行乘法。左下方展示了 BA-CAM 阵列如何在模拟域中执行二进制乘法/匹配和累积,产生 [0, 1] 范围内的部分结果。这些值通过固定的函数乘法和减法单元转换为以0为中心的有符号值。

    右侧展示了如何使用分块 (tiling) 来泛化 BIMV,以处理大于 CAM 阵列尺寸的张量:Q{1,+1}1×dkQ \in \{-1, +1\}^{1 \times d_k}KT{1,+1}dk×NK^T \in \{-1, +1\}^{d_k \times N}

    • 假设 dkd_kNN 分别是 CAMWCAM_W (CAM 宽度) 和 CAMHCAM_H (CAM 高度) 的倍数,否则可以应用填充 (padding)。

    • 步骤 ①: 将一个 CAMW×CAMHCAM_W \times CAM_H 大小的 KTK^T 块加载到 BA-CAM 阵列中。

    • 步骤 ②: 将一个 CAMWCAM_W 大小的 QQ 向量段加载到查询寄存器中。

    • 步骤 ③: 执行关联分块 MAC (乘加) 操作,接收大小为 CAMWCAM_W 的部分输出。

    • 步骤 ④: 如果 N>CAMWN > CAM_W,则进行水平分块 (tile horizontally) 并将部分结果连接到最终结果向量中。

    • 如果 K > CAM_H (原文误写为 K > CAM_H,应是 d_k > CAM_H), 则必须进行垂直分块 (tile vertically) 并将部分结果累积到最终结果向量的相同段中(重复步骤 ①-④)。

      对于更高精度的 VV 向量,CAMformerKTK^T 条目分解为二进制切片(从 LSBMSB),并对每个切片运行 BIMM。切片输出经过数字移位和累积,在不改变 CAM 路径的情况下增加了精度。这支持二进制整数 MatMul 和量化为 int2int4int8VV

下图(原文 Figure 5)展示了 BA-CAM 中每个操作的能量与矩阵维度 MM 的关系。

Fig. 5: Per-op energy vs. matrix dimension \(M\) in BA-CAM. Larger \(M\) reduces energy by amortizing programming cost. Dashed lines show search-only and total energy bounds. 该图像是图表,展示了在BA-CAM中每个操作的能量与矩阵维度 MM 的关系。随着 MM 的增大,能量因摊销编程成本而减少,虚线显示了仅搜索和整体能量的界限。

图中显示,随着 MM 值的增大,编程成本被摊销,从而降低了每个操作的能量消耗。虚线表示了仅搜索和总能量的界限。

4.2.2. CAMformer 架构

CAMformer 作为一个注意力加速器,集成到包含其他加速处理单元 (XPUs,如 GPUs、TPUs) 的大规模深度学习 (DL) 系统中,这些 XPU 负责处理前馈 (feed-forward, FF) 层等密集矩阵乘法。CAMformer 通过共享内存与 XPUs 进行通信,用于传输二进制 QQKK 张量和 BF16 (bfloat16) VVAA 张量。CAMformer 使用本地 DMA (直接内存访问) 引擎和内存控制器,在计算期间快速访问全局内存。当前设计主要针对解码器风格 (decoder-style) 的因果 (causal) 注意力进行优化。

CAMformer 包含三个流水线阶段(如原文 Figure 6 所示): CAMformerAttn(Q,K,V)=SoftMax(Top32(QKT))V \begin{array} { r l } & { \mathrm { C A M f o r m e r-Attn } ( Q , K , V ) } \\ & { \qquad = \mathrm { S o f t M a x } \big ( \mathrm { T o p } { - } 3 2 ( Q K ^ { T } ) \big ) \cdot V } \end{array}

  • 关联 (Association): 通过 BA-CAM 计算 QKTQ K^T 并启动分层稀疏排名。
  • 标准化 (Normalization): 完成排名并应用 softmax,得到 A^=SoftMax(Top32(QKT))\hat{A} = \overline{\mathrm{SoftMax}}(\mathrm{Top}-{32}(QK^T))
  • 上下文化 (Contextualization): 执行高精度稀疏 MV 运算,得到 A=AˉVA = \bar{A} V。 每个阶段都是可分离的、直通的,并消费/生产前一/后一阶段的数据。

下图(原文 Figure 6)展示了 CAMformer 的系统集成和架构概览。

该图像是一个示意图,展示了CAMformer的工作流程和结构。图中左侧显示了数据流从DRAM到CAMformer的过程,包括DMA、XPU、BA-CAM等模块。中央部分描述了注意力计算的关联过程,采用二进制注意力内容寻址存储器(BA-CAM)及后续的标准化和上下文化模块。右侧则涉及输出到DRAM的过程。整体设计旨在提高变压器模型的能源效率和处理能力。 该图像是一个示意图,展示了CAMformer的工作流程和结构。图中左侧显示了数据流从DRAM到CAMformer的过程,包括DMA、XPU、BA-CAM等模块。中央部分描述了注意力计算的关联过程,采用二进制注意力内容寻址存储器(BA-CAM)及后续的标准化和上下文化模块。右侧则涉及输出到DRAM的过程。整体设计旨在提高变压器模型的能源效率和处理能力。

图中的数据流从 DRAMCAMformer,包括 DMAXPUBA-CAM 等模块。中央部分描述了注意力计算的关联过程,采用 BA-CAM 及后续的标准化和上下文化模块。右侧则涉及输出到 DRAM 的过程。

4.2.2.1. 关联阶段 (Association Stage)

  • 计算来自二进制 Q, K 的注意力得分。
  • SRAM 存储完整的二值化 KK,它不在关键路径上,因为许多查询可以重用一个 KK
  • 查询缓冲区 (Query buffer) 容纳单个查询 (batch size = 1)。
  • BA-CAM 执行二值化 MVM (见 Sec. II-B1)。
  • 尽管批处理可以提高 QKTQ K^T 的能量效率,但会增加下游硬件的开销,因此 CAMformer 使用 batchsize=1batch size = 1
  • CAM 阵列尺寸为 16×6416 \times 64:高度为16减少了 ADC 开销;宽度为64避免了 dk=64d_k=64 时的垂直分块 (见 Sec. II-B1)。对于更大的 dkd_k,累积寄存器 (accumulation register) 支持垂直分块。
  • 对于每个分块 (tile),CAMformer 编程 BA-CAM 并与查询执行关联分块 MAC 操作;ADC 精度覆盖整个匹配范围。
  • 一个 bitonic Top-2 选择每个分块的最高得分;这些得分被保留用于稀疏注意力,其他得分被丢弃。bitonic sorter 也使得稀疏性易于配置。
  • 每个分块的 Top-2 得分进入一个潜在 top 寄存器,其索引发送给本地内存控制器以预取相应的 VV 条目。
  • CAMformer 使用 g=16g=16 个分块,每个分块 Top-2 \Rightarrow 总体 Top-32
  • kk 值固定了返回索引的数量(V-buffer 深度),因此将 k=32k=32V-SRAM 容量协同设计:足够大以缩小候选范围,足够小以限制精度损失;更大的 kk 值提供收益递减。
  • Hoeffding 不等式 (Hoeffding's inequality) 可用于确保在二值相似度下(例如,平均 m=dkm=d_k 个伯努利匹配)召回率 (recall) 为1。Hoeffding 不等式表明 Pr[drop any true top-k]k(Nk)exp(2mδmin2)\mathrm{Pr}[\text{drop any true top-}k] \leq k(N-k)\exp(-2m\delta_{\min}^2),这与 HAD 的二值化 Q/Ktop- N$` 稀疏化一致。

4.2.2.2. 标准化阶段 (Normalization Stage)

  • 从关联阶段产生的 128 个候选注意力得分中选择 top-32
  • 一个 bitonic-sorter Top-32 模块提供了运行时稀疏性灵活性。为了减少面积,使用一个 64 输入模块,并在批次之间进行优化,因为每 16 个分块组会产生 32 个新的 top-2 候选(在最初的 32 个分块之后)。
  • SoftMax 引擎使用一个 512B LUT (查找表)、一个 BF16 累加器和一个 BF16 除法器。
  • 对于 32 个 8-bit 得分中的每一个,通过 LUT 计算 exp(x)/dk\exp(x)/\sqrt{d_k},在计算过程中累积分母,并在完成后进行归一化。
  • 输出是有效的概率:每个值在 [0, 1] 之间且总和为1。

4.2.2.3. 上下文化阶段 (Contextualization Stage)

  • 在此阶段计算 BF16 Attention 张量。
  • 使用更高精度的 BF16 对于保持模型准确性至关重要。
  • Value SRAM 已加载了足够多的有效条目,可以开始执行乘加 (MAC) 操作。

4.2.3. 优化 (Optimizations)

  1. 全二值化注意力得分 (Fully Binarized Attention-Score):

    • QQKK 完全二值化,使得通过关联 BA-CAM 可以进行模拟 QKTQ K^T 运算 (见 Sec. II)。
    • 将片上存储(用于查询缓冲区和键 SRAM)的需求减少到 BF166.25%
    • 由此产生的有界得分范围也使得 SoftMax 的实现非常廉价:一个小 LUT 即可处理 exp()\exp(\cdot) 和归一化。
  2. 精细粒度流水线 (Fine-grained Pipelining):

    • 在每个阶段的关键路径上采用精细粒度流水线来加速。

    • 关联阶段: 利用精细粒度流水线策略,使得流水线不同部分的分块步骤可以并发操作。

    • 标准化阶段:SoftMax 模块中利用精细粒度流水线。由于该阶段不在关键路径上,累加和除法是串行执行的。通过使用流水线 BF16 除法器,SoftMax 操作的总延迟从 32tdiv32t_{\mathrm{div}} 大幅减少到 31+tdiv31+t_{\mathrm{div}},其中 tdivt_{\mathrm{div}}BF16 除法器的端到端延迟。

    • 上下文化阶段:MAC 操作中利用精细粒度流水线。

      下图(原文 Figure 7 左侧)展示了精细粒度流水线和 CAM 序列化延迟对关联阶段的影响。

      Fig. 7: CAMformer pipelining strategies. Left: Fine-grained pipelining overlaps CAM operations within the association stage. Right: Coarse-grained pipelining enables query-level parallelism across all stages. 该图像是图示,展示了CAMformer的流水线策略。左侧展示了多个塔的序列化延迟和处理阶段,右侧则说明了查询间的关系以及各阶段之间的最大延迟与单查询延迟的关系。

左侧图示了多个塔的序列化延迟和处理阶段。

  1. 粗粒度流水线 (Coarse-grained Pipelining):

    • 除了每个阶段内的精细粒度流水线,还在阶段之间进行粗粒度流水线。这通过确保每个阶段都保持忙碌来提高硬件利用率。

    • 整体吞吐量由最长阶段的延迟决定。其他阶段将产生相当于其延迟与最长阶段延迟之差的停滞时间。

    • 在设计空间探索 (Sec. IV-B) 中平衡各阶段的吞吐量,以最大化硬件利用率。

      上图(原文 Figure 7 右侧)展示了粗粒度流水线策略和相应的总无操作时间。 右侧图示了查询间的关系以及各阶段之间的最大延迟与单查询延迟的关系。

  2. 分层稀疏注意力得分排名 (Hierarchical Sparse Attention-Score Ranking):

    • 使用两阶段 top-k 机制来减少片上得分存储并实现 VV 预取。
    • 第一阶段: 在每个分块处理过程中,保留每 16 个得分中的 top-2
    • 第二阶段: 对所有保留的 top-2 得分进行最终排名。
    • 每个 top-2 的触发都会让 MC/DMA 获取相应的 VV 条目。
    • VVDRAM 中是连续布局的:64 x 166 的行,因此 64 行适合一个 8KB 页面。在没有交错的情况下,一个 tRCt_{\mathrm{RC}} (行周期时间) 服务每组 64 个得分;使用 HBM3 tRC=48nst_{\mathrm{RC}} = 48\mathrm{ns} [33],流水线完全隐藏了 DRAM 延迟。所需带宽约为 50GB/s50 GB/s,一个 HBM3 通道即可维持 [34]。

5. 实验设置

5.1. 数据集

CAMformer 的评估使用了以下数据集和模型:

  • BERT-Large [46]:

    • 来源与特点: BERT (Bidirectional Encoder Representations from Transformers) 是一种基于 Transformer 的深度双向语言表示预训练模型,广泛用于各种自然语言理解任务。BERT-Large 是其更大的版本,具有更多的层和参数。
    • 使用场景: 用于 CAMformer 的单查询注意力处理 (single query attention processing) 评估,配置为 16 个注意力头 (heads),键和值维度 dk=dv=64d_k = d_v = 64,序列长度 n=1024n = 1024。这是 Transformer 模型中常见的配置。
    • 目的: 评估 CAMformer 在处理典型 Transformer 模型中注意力计算的性能、能效和面积。
  • ImageNet [48]:

    • 来源与特点: 一个大规模的分层图像数据库,包含超过 1400 万张带标签的图像,涵盖 2 万多个类别,广泛用于计算机视觉任务,特别是图像分类。
    • 使用场景: 用于评估 DeiT 模型 (Data-efficient Image Transformers) 在使用 CAMformer 的两阶段 HAD (Hamming Attention Distillation) 机制时的 Top-1 准确率。
    • 目的: 验证 CAMformer 所采用的 Q/K 二值化和两阶段 top-k 过滤技术在图像分类任务中对模型准确率的影响。
  • GLUE (General Language Understanding Evaluation) [49]:

    • 来源与特点: 一个用于自然语言理解的多任务基准和分析平台,包含多个不同的 NLP 任务,如文本蕴含、情感分析、问答等。
    • 使用场景: 用于评估 CAMformer 的两阶段 HAD 机制在这些 NLU 任务上的准确率表现。
    • 目的: 验证 CAMformer 在更广泛的 NLP 任务中对模型准确率的影响,确保其提出的优化方案不会导致显著的性能下降。

5.2. 评估指标

论文中使用的评估指标及其说明如下:

  1. 能量效率 (Energy Efficiency, EE)

    • 概念定义: 能量效率衡量加速器完成单位查询所需的能量。该值越高,表示加速器在能耗方面的表现越好,即以更少的能量处理更多的查询。
    • 数学公式: EE=Number of QueriesTotal Energy Consumption (mJ)(queriesmJ) EE = \frac{\text{Number of Queries}}{\text{Total Energy Consumption (mJ)}} \quad \left( \frac{\text{queries}}{\text{mJ}} \right)
    • 符号解释:
      • EE: 能量效率,单位是 queries/mJ
      • Number of Queries\text{Number of Queries}: 在给定时间内处理的查询总数。
      • Total Energy Consumption (mJ)\text{Total Energy Consumption (mJ)}: 处理这些查询所消耗的总能量,单位是毫焦耳 (mJ)。
  2. 吞吐量 (Throughput, T)

    • 概念定义: 吞吐量衡量加速器在单位时间内能够处理的查询数量。该值越高,表示加速器处理速度越快,性能越好。
    • 数学公式: T=Number of QueriesTotal Time (ms)(queriesms) T = \frac{\text{Number of Queries}}{\text{Total Time (ms)}} \quad \left( \frac{\text{queries}}{\text{ms}} \right)
    • 符号解释:
      • TT: 吞吐量,单位是 queries/ms
      • Number of Queries\text{Number of Queries}: 在给定时间内处理的查询总数。
      • Total Time (ms)\text{Total Time (ms)}: 处理这些查询所花费的总时间,单位是毫秒 (ms)。
  3. 面积 (Area)

    • 概念定义: 面积指加速器在芯片上实际占用的物理空间大小。该值越小,表示硬件设计越紧凑,成本可能越低,更适合集成。
    • 单位: mm2\text{mm}^2 (平方毫米)。
  4. 功耗 (Power)

    • 概念定义: 功耗指加速器在运行过程中单位时间消耗的能量。该值越小,表示加速器在持续工作时越节能,产生的热量也越少。
    • 单位: W\text{W} (瓦特)。
  5. Top-1 准确率 (Top-1 Accuracy)

    • 概念定义: Top-1 准确率是分类任务中常用的评估指标,它衡量模型预测的最高概率类别是否与真实标注数据 (ground truth) 标签完全一致的比例。例如,在图像分类中,如果模型预测最有可能是“猫”,而真实标签也是“猫”,则计为一次正确。
    • 数学公式: Top-1 Accuracy=Number of Correct Top-1 PredictionsTotal Number of Samples×100% \text{Top-1 Accuracy} = \frac{\text{Number of Correct Top-1 Predictions}}{\text{Total Number of Samples}} \times 100\%
    • 符号解释:
      • Number of Correct Top-1 Predictions\text{Number of Correct Top-1 Predictions}: 模型预测的最高概率类别与真实标签匹配的样本数量。
      • Total Number of Samples\text{Total Number of Samples}: 参与评估的所有样本总数。
  6. GLUE 分数 (GLUE Score)

    • 概念定义: GLUE (General Language Understanding Evaluation) 是一个用于评估自然语言理解模型性能的多任务基准。GLUE 分数通常是模型在 GLUE 基准中包含的多个 NLU 任务(如 MNLI、QQP、QNLI 等)上表现的平均值。这个分数越高,表示模型在广泛的语言理解任务上的综合性能越好。
    • 数学公式: GLUE 分数没有单一的普适性数学公式,它是一个由多个子任务指标(如准确率、F1 分数、相关系数等)加权或平均而成的复合分数,具体取决于 GLUE 评估的官方实现。
    • 符号解释: GLUE 分数是一个百分比值或类似指标,直接反映模型在 GLUE 基准上的综合表现。
  7. GOPS/W (Giga Operations Per Watt)

    • 概念定义: GOPS/W 是每瓦特千兆操作次数,衡量加速器在单位功耗下能够执行的理论计算操作次数。这个指标综合了性能和能效,值越高表示能源利用效率越高。
    • 数学公式: GOPS/W=Total Operations (Giga Operations)Power Consumption (W) \text{GOPS/W} = \frac{\text{Total Operations (Giga Operations)}}{\text{Power Consumption (W)}}
    • 符号解释:
      • Total Operations (Giga Operations)\text{Total Operations (Giga Operations)}: 在给定时间内执行的总操作次数,以十亿次操作为单位。
      • Power Consumption (W)\text{Power Consumption (W)}: 加速器的功耗,单位为瓦特。

5.3. 对比基线

论文将 CAMformer 与一系列最先进的学术加速器和工业产品进行了比较,以展示其性能优势。

  • 学术加速器:

    • MNNFast [35]: 一个用于内存增强神经网络 (Memory-Augmented Neural Networks, MANN) 的快速可扩展系统架构。
    • A3 [36]: 一个通过近似技术加速神经网络中注意力机制的加速器。
    • SpAtten [37]: 一个高效的稀疏注意力架构,通过级联词元和头剪枝 (cascade token and head pruning) 实现。
    • HARDSEA [38]: 一个混合模拟 ReRAM 聚类和数字 SRAM 内存内计算加速器,用于 Transformer 中的动态稀疏自注意力。
  • 工业产品:

    • Cerebras WSE2 [45]: Cerebras Wafer-Scale Engine 2,一个面向深度学习的晶圆级集成芯片,以其超大规模计算能力而闻名。

    • Groq TSP [47]: Groq Tensor Streaming Processor,一个高度优化的张量流处理器,旨在实现极低的延迟和高吞吐量。

    • Google TPUv4 [44]: Google Tensor Processing Unit v4,Google 自研的第四代 TPU,专为加速 Google 的机器学习工作负载而设计。

      选择这些基线的原因在于它们代表了 Transformer 加速领域中不同技术路径和成熟度的最先进水平,包括传统的数字 MatMul 优化、稀疏性利用、内存内计算以及专用架构。通过与这些基线的比较,CAMformer 能够全面展示其在能效、吞吐量、面积和准确性方面的优越性。

6. 实验结果与分析

6.1. 核心结果分析

CAMformerBERT-Large (16个头,dk=dv=64d_k = d_v = 64,序列长度 n=1024n = 1024) 和 Vision Transformer 工作负载上进行了评估,并与最先进的学术加速器和工业产品进行了比较。

以下是原文 Table II,CAMformer 变体与现有架构解决方案在 1 GHz 下的性能比较:

Accelerator Q/K/V bits Core (#) Thruput (qry/ms) Energy Eff. (qry/mJ) Area (mm2) Power (W)
MNNFast [35] 32/32/32 1 28.4 284 1.00*
A3 [36] 8/8/8 1 52.3 636 2.08 0.82
SpAtten/8[ [37] 12/12/12 1 85.2 904 1.55 0.94
HARDSEA [38] 8/8/8 12 187† 191† 4.95 0.92
CAMformer 1/1/16 1 191 9045 0.26 0.17
CAMformerMHA 1/1/16 16 3058 9045 4.13 2.69

注:MNNFast 未报告 Q/K/V 精度;视为 FP32 (32/32/32)。SpAtten 使用渐进式 MSB+LSB 量化(例如,6+4),具有高达12b 的片上数据路径。† 从 802.1 GOPS 和 821.3 GOPS/W 转换,假设 4.3 GOP/查询。

主要发现:

  • 卓越的能效提升: CAMformer (单核) 实现了 9045qry/mJ9045 qry/mJ 的能量效率,远超所有对比基线。即使是多核的 HARDSEA (12核) 也只有 191qry/mJ191 qry/mJCAMformer 的能量效率比最先进的加速器高出超过 10倍。这主要归功于其利用 BA-CAM 在模拟域进行恒定时间相似度计算,避免了大量的数字乘加运算和数据移动。
  • 显著的吞吐量提升: 单核 CAMformer 达到了 191qry/ms191 qry/ms 的吞吐量,与 HARDSEA (12核) 的 187qry/ms187 qry/ms 相当。当扩展到 CAMformerMHA (16核) 时,吞吐量飙升至 3058qry/ms3058 qry/ms。这表明 CAMformer 架构具有良好的可扩展性,在多头注意力 (Multi-Head Attention, MHA) 场景下能实现高达 4倍 的吞吐量提升。
  • 极低的面积: 单核 CAMformer 的面积仅为 0.26mm20.26 mm^2,比 A3 (2.08mm22.08 mm^2)、SpAtten (1.55mm21.55 mm^2) 和 HARDSEA (4.95mm24.95 mm^2) 等基线低 6-8倍。这得益于 BA-CAM 单元的紧凑设计、共享 SAR ADC 以及模拟计算减少了数字逻辑的面积开销。即使 CAMformerMHA (16核) 的面积 (4.13mm24.13 mm^2) 也远低于 HARDSEA 的 12 核设计。
  • 低功耗: 单核 CAMformer 的功耗仅为 0.17 W,显著低于所有对比基线。这对于资源受限环境的部署至关重要。

与工业产品的比较: 下图(原文 Figure 10)展示了 CAMformer (及预测的扩展性) 位于研究的帕累托前沿,超越了 TPUv4WSE2 在每面积性能和每瓦特性能方面的表现。

Fig. 10: CAMformer (and projected scaling) lies on the research Pareto frontier, surpassing TPUv4 and WSE2 in performance-per-area and performance-per-watt; points report effective GOPS/W at the Table II Q/K/V precisions under fixed accuracy/latency, not peak TOPS. 该图像是图表,展示了CAMformer在性能与能效方面的优势,位于研究Pareto前沿,超越了TPUv4和WSE2。图中数据点呈现了在固定准确性/延迟下,各个加速器的每面积性能与每瓦特性能的关系。

图中显示,在固定的准确性/延迟下,CAMformer(及其在 45nm22nm 节点下的预测扩展)所定义的帕累托前沿,超越了 TPUv4WSE2 所定义的工业产品前沿。这进一步证实了 CAMformer 在学术和工业背景下的领先地位。

6.2. 消融实验/参数分析

6.2.1. 设计空间探索 (Design Space Exploration)

论文通过精细粒度流水线和数据并行优化来平衡 CAMformer 三个阶段的吞吐量。

下图(原文 Figure 9)展示了 CAMformer 各阶段的吞吐量:

Fig. 9: CAMformer throughput by stage. Fine-grained pipelining and parallelism boost association and contextualization stages, enabling balanced pipeline performance. 该图像是图表,展示了 CAMformer 在不同阶段的归一化吞吐量。数据表明,归一化阶段的吞吐量显著高于关联和上下文化阶段,达到 2.44 倍的提升。图中使用不同颜色和模式标识各阶段的吞吐量。

图中显示,归一化阶段的吞吐量显著高于关联和上下文化阶段,达到 2.44 倍的提升。精细粒度流水线和并行化提升了关联和上下文化阶段,实现了平衡的流水线性能。

  • 吞吐量平衡: 归一化阶段通过稀疏注意力优化,以最小的并行度提供了足够的吞吐量。上下文化阶段则需要 8 个并行 MAC 单元才能与关联阶段的吞吐量匹配。通过这种平衡,实现了最佳的硬件利用率。

    下图(原文 Figure 8)展示了 CAMformer 的能量和面积分解:

    Fig. 8: Breakdown of CAMformer energy and area. Energy is dominated by BF16 MACs and Value SRAM, while area is split across all stages with largest contributions from SRAM and normalization logic. 该图像是一个饼图,展示了CAMformer在能量和面积方面的分布。能量主要由BF16 MACs和Value SRAM主导,而面积的最大贡献来自SRAM和归一化逻辑。

饼图直观展示了 CAMformer 在能量和面积方面的分布。能量主要由 BF16 MACsValue SRAM 主导,而面积的最大贡献来自 SRAM 和归一化逻辑。

  • 能量分解: 能量主要由上下文化阶段 (57%) 消耗,这主要是由于 BF16 精度要求。从组件来看,Value/Key SRAM 占总能量的 3131%/20%MAC 单元占 26%BA-CAM12%。这表明尽管 BA-CAM 本身能效很高,但处理高精度值向量的 MAC 和数据存储仍是主要的能耗来源。
  • 面积分解: 面积主要分布在 SRAM (42%)、Top-32 模块 (26%) 和处理单元。SRAM 仍然是主要的面积贡献者。

6.2.2. 算法准确性 (Algorithmic Accuracy)

CAMformer 结合了汉明注意力蒸馏 (Hamming Attention Distillation, HAD) [32] 算法,该算法将 QQKK 二值化,并在 ImageNet [48] 和 GLUE [49] 上仅导致 <3<3%top-1 准确率下降。

CAMformer 用两阶段 top-k 机制取代了单阶段 top-k,以实现早期过滤和预取,减少存储并隐藏 DRAM 延迟。由此引入的精度损失可忽略不计:

  • ImageNet 准确率:DeiT 模型上,即使使用小的第一阶段 kk 值(例如 k2k \geq 2),准确率也保持在基线附近,降级极小(0.2%\leq 0.2\%)。

    以下是原文 Table III,两阶段 HADDeiT 模型上的 Top-1 准确率:

    first stage k DeiT-B DeiT-S DeiT-T
    HAD baseline 79.24 75.60 66.58
    k=8 79.27 75.68 66.53
    k=4 79.26 75.65 66.48
    k=2 79.16 75.29 65.86
    k=1 78.11 72.32 61.03

从表中可以看出,当第一阶段 k2k \geq 2 时,DeiT 模型的 Top-1 准确率与 HAD 基线相比变化微小,表明两阶段 top-k 过滤对图像分类任务的准确率影响很小。

  • GLUE 准确率:GLUE 基准测试中,使用组大小为 16 的两阶段 HAD,当第一阶段 k=2k=2k=4k=4 时,准确率与单阶段基线相当,平均降级小于 0.4%

    以下是原文 Table IV,使用组大小为 16 的两阶段 HADGLUE 准确率:

    Metric HAD baseline first-stage k=4 first-stage k=2
    MNLI 82.45/82.84 82.37/82.98 82.31/82.74
    QQP 90.11 90.01 89.87
    QNLI 89.68 89.60 89.54
    SST-2 91.63 91.42 91.28
    CoLA 55.47 55.16 54.90
    STS-B 87.46 87.27 87.27
    MRPC 83.82 83.87 83.87
    RTE 65.70 64.33 64.62
    Avg 80.81 80.54 80.48

GLUE 准确率结果显示,即使 k=2k=2k=4k=4,各项子任务的性能与 HAD 基线相比也仅有微小下降。这证明 CAMformer 在实现高效二进制注意力推理的同时,能够通过两阶段 HAD 机制保持近乎无损的准确性。

6.3. 总结

CAMformer 通过将注意力重新解释为关联记忆操作,并利用电压域 BA-CAM 进行高效的相似度计算,实现了突破性的能效、吞吐量和面积优势。结合分层两阶段 top-k 过滤流水线优化CAMformer 在保持近乎无损准确性的同时,克服了 Transformer 注意力机制的传统瓶颈。这些结果表明,CAMformer 为未来Transformer 加速器提供了一个极具前景的硬件范式。

7. 总结与思考

7.1. 结论总结

本文提出了 CAMformer,一款新颖的硬件加速器,它通过将 Transformer 模型的注意力机制重新诠释为一种关联记忆 (associative memory) 操作,从根本上解决了传统注意力机制的二次方复杂度挑战。CAMformer 的核心创新在于引入了电压域二进制注意力内容寻址存储器 (BA-CAM),该技术通过模拟电荷共享 (analog charge sharing) 实现恒定时间 (constant-time) 的相似度搜索,从而用物理相似度感知 (physical similarity sensing) 取代了传统的数字算术运算。

CAMformer 的设计集成了多项优化:

  1. 电路级创新: BA-CAM 采用 10T1C 单元和电压域匹配线架构,实现了高效、鲁棒的汉明相似度计算。

  2. 微架构优化: BIMV 引擎通过分块 (tiling) 处理大张量,并支持更高精度的 VV 向量处理。

  3. 系统级架构: CAMformer 作为注意力加速器与 XPU 协同工作,采用三阶段流水线(关联、标准化、上下文化)。

  4. 关键优化: 全二值化查询和键、精细/粗粒度流水线、以及分层两阶段 top-k 稀疏注意力得分排名,有效降低了存储需求、隐藏了 DRAM 延迟并提高了硬件利用率。

    BERTVision Transformer 工作负载上的实验结果表明,CAMformer 相比于最先进的加速器,实现了超过 10倍 的能量效率、高达 4倍 的吞吐量提升,以及 6-8倍 更低的面积,同时通过两阶段汉明注意力蒸馏 (HAD) 保持了近乎无损的准确性

7.2. 局限性与未来工作

论文作者指出了 CAMformer 的一些潜在局限性和未来研究方向:

  • 当前优化方向: CAMformer 当前主要针对解码器风格 (decoder-style)因果 (causal) 注意力进行了优化。这意味着其在编码器-解码器 (encoder-decoder)编码器 (encoder) 模型的非因果注意力(non-causal attention)场景下的适应性可能需要进一步探索和优化。
  • 长上下文的可扩展性: 对于更长的上下文序列,CAMformer 的扩展需要按比例提供更大的 BA-CAM (用于键) 和 V-SRAM (用于值)。尽管每步的 top-k V-buffer 大小是固定的,但KV 缓存 (KV-cache) 的内存会随着序列长度的增长而增加。这意味着在处理极其长的序列时,面积和功耗可能仍然会成为挑战。未来的工作可以探索更动态或更灵活的资源分配机制,以适应超长序列而无需过度配置硬件。
  • 算法-硬件协同设计: 尽管 CAMformer 已经展示了出色的协同设计,但进一步探索更先进的二值化、量化感知训练 (quantization-aware training) 技术,以与 BA-CAM 的模拟特性更紧密地结合,可能会带来更高的准确性和效率。

7.3. 个人启发与批判

7.3.1. 个人启发

这篇论文提供了一个非常深刻的启发:

  1. 范式转变的价值: CAMformer 最重要的贡献在于其对注意力机制的范式转变。将注意力从“矩阵乘法”重新定义为“关联记忆”,这不仅仅是优化计算,而是从根本上改变了问题的解决方式。这种思维方式的转变,对于解决其他计算密集型深度学习任务也具有指导意义。当传统数字计算面临瓶颈时,重新审视底层操作的本质,并探索新的物理计算模式(如模拟内存内计算),可能是突破性进展的关键。
  2. 模拟计算的复兴: 在数字计算占据主导地位的今天,CAMformer 成功利用模拟电荷共享进行高效相似度感知,展示了模拟计算在特定任务上的巨大潜力。它不仅提高了效率,还增强了对 PVT 变异的鲁棒性,解决了 TD-CAM 等早期模拟方案的痛点。这提示我们,在特定场景下,数字和模拟混合计算可能会是未来高性能、低功耗计算的重要方向。
  3. 算法与架构的深度协同: CAMformer 的成功并非单一技术突破,而是二值化算法 (HAD)CAM 硬件、两阶段 top-k 过滤多级流水线等多种技术深度协同的结果。这种从算法到电路、再到系统架构的垂直整合,是实现极致性能提升的关键。对于未来的研究,应该鼓励这种跨层次的协同设计。

7.3.2. 批判与潜在改进

尽管 CAMformer 取得了显著成就,但仍存在一些值得探讨的潜在问题和改进方向:

  1. 二值化与精度权衡的边界:

    • 问题: 论文声称“近乎无损的准确性”,但“近乎”意味着仍有损失。虽然在 ImageNetGLUE 上损失很小(0.4%\leq 0.4\%),但在对精度要求极高的场景(如医疗、金融等)或更复杂的 Transformer 模型(如超大语言模型)中,这种损失是否能被接受?
    • 改进方向: 可以探索更精细的混合精度方案,例如,在 BA-CAM 内部使用二值化,但在某些关键路径或特定层的计算中保留更高精度(如 int2/int4/int8int2/int4/int8),或者结合更先进的量化感知训练 (Quantization-Aware Training, QAT) 方法,进一步缩小二值化带来的精度差距。
  2. 长上下文的可扩展性限制:

    • 问题: 论文提到“对于更长的上下文,CAMformer 需要按比例配置更大的 BA-CAM (键) 和 V-SRAM (值)”。这意味着,当序列长度达到数万甚至数十万时(这对当前和未来的 LLM 来说越来越常见),这种“按比例”增加硬件面积和功耗,可能仍然会遇到物理和成本上的瓶颈。
    • 改进方向:
      • 探索动态可配置BA-CAM 阵列,能够根据实际序列长度和注意力模式动态调整其有效尺寸。
      • 研究更高级的稀疏化近似注意力算法,如分层注意力窗口注意力FlashAttention 等,使其在硬件层面与 BA-CAM 更好地融合,以更少的 CAM 资源覆盖更长的上下文。
      • 结合 chiplet异构集成技术,将 BA-CAMSRAM 等组件以模块化方式部署,以更灵活地扩展。
  3. 通用性与灵活性:

    • 问题: CAMformer 目前主要优化用于解码器风格 (causal) 注意力。Transformer 模型有多种变体和更复杂的注意力机制(如 Multi-Query Attention (MQA)Grouped-Query Attention (GQA)FlashAttention 等),CAMformer 如何高效支持这些变体仍需进一步研究。
    • 改进方向: BA-CAM 的基础单元可能需要进行修改,以支持不同类型的相似度计算或更复杂的匹配逻辑。例如,对于 MQAGQA,可以通过并行多个查询广播或共享键缓存来提高效率。
  4. 模拟-数字接口的挑战:

    • 问题: 尽管 BA-CAM 宣称其电压域设计对 PVT 变异鲁棒性高,且 SAR ADC 为共享,但模拟电路与数字逻辑(如 BF16 MACSoftMax LUT)的接口和转换仍然是潜在的挑战。ADC 的精度和速度、模拟信号的噪声和漂移,都可能影响整体系统性能和可靠性。
    • 改进方向: 进一步优化 ADC 设计,例如采用更高能效的 ADC数字辅助校准技术,以确保模拟信号到数字信号转换的准确性和效率。同时,对模拟部分进行更全面的噪声分析抗干扰设计
  5. 软件栈和编程模型:

    • 问题: 作为一种新型加速器,CAMformer 需要一个与其硬件特性匹配的软件栈和编程模型,以便开发者能够高效地利用其优势。这可能涉及到新的编译器优化、运行时系统以及与现有深度学习框架的集成。
    • 改进方向: 开发专门的 SDKAPI,让开发者可以轻松地将 Transformer 模型映射到 CAMformer 架构上,并提供工具链来自动进行 Q/K 二值化、top-k 策略选择等优化。

相似论文推荐

基于向量语义检索推荐的相关论文。

暂时没有找到相似论文。