存内计算芯片设计新范式:AccelCIM框架如何打破“纸上最优”魔咒?

当算力密度与能效比成为AI芯片追求的终极目标时,基于SRAM的存内计算(CIM)技术被寄予厚望。然而,一个现实困境随之浮现:面对像LLaMA-3这类动辄数十亿参数的大模型,片上存储容量显得捉襟见肘。

既然模型无法完全“常驻”于芯片内部,那么数据在片内与片外之间的流动方式,便成为了决定性能的关键变量。这正是本文的核心切入点。作者一针见血地指出,过往众多CIM加速器研究往往流于“想当然”:

  • 它们要么假设模型可以完全塞入片内,忽略了权重搬运带来的巨大开销;
  • 要么默认采用某种固定数据流,根本没有探讨其他可能更优的架构组合。

更为致命的是,许多研究在设计评估中依赖理想化的分析模型,完全忽视了物理实现阶段布局布线所带来的面积与功耗代价。这可能导致在设计空间探索中,选出一个“纸上最优、流片即翻车”的方案。

  • AccelCIM: Systematic Dataflow Exploration for SRAM Compute-in-Memory Accelerator
  • https://arxiv.org/pdf/2604.17692
  • 1.2万字,阅读约45分钟,播客版约18分钟

为打破这一僵局,AccelCIM框架应运而生。其最锋利的刃口在于,将“宏单元架构”与“阵列数据流”视为一个需要协同优化的整体,并祭出了后布局PPA评估这把衡量真实物理世界的标尺。

研究不仅发现脉动阵列在面积效率上普遍优于广播式互连,更揭示了一个关键取舍:“计算与I/O重叠”这个看似能提速的特性,竟会牺牲高达45% 的能效。这印证了文中的洞见:“在带宽受限的设计中启用计算与I/O重叠可以提升面积效率,但这以损失能效为代价。”

这种贯穿“算法-架构-物理实现”的务实设计哲学,让AccelCIM为大模型时代的存算一体芯片设计,提供了前所未有的深刻洞察。

本文目录

  • 关键问题
    • 问题一:关于“最优数据流普适性”的矛盾
    • 问题二:关于“计算-I/O重叠”性价比的质疑
  • 一、引言
  • 二、背景与动机
    • 2.1 CIM加速器设计
    • 2.2 CIM宏单元设计
  • 三、AccelCIM框架
    • 3.1 AccelCIM架构
    • 3.2 AccelCIM数据流
    • 3.3 CIM宏阵列生成器
  • 四、评估
    • 4.1 实验设置
    • 4.2 主要结果
    • 4.3 性能分析
    • 4.4 案例研究:LLM推理
  • 五、结论
  • 参考文献

关键问题

问题一:关于“最优数据流普适性”的矛盾

论文核心发现是“WS-Systolic-NOL”在多数情况下面积效率最优,并最终在不同模型上推荐了不同数据流(如对175B模型推荐WS,对8B模型推荐OS)。一个尖锐的架构设计矛盾随之浮现:如果脉动阵列(Systolic)和权值固定(WS)在面积效率上确实优于广播(Broadcast),且物理实现的可扩展性更强,为何在真正的超大模型(GPT-3 175B)和长序列场景下,最优设计却回退到了论文认为物理实现挑战更大、路由资源开销更高的“WS-Systolic”组合? 这是否暗示,目前提出的“广播互连面积开销大”这一架构黄金法则,当面对大模型不可规避的权值卸载压力时,实际上是从“计算效率优先”被迫让步给了“存储墙瓶颈下的数据重用优先”?

论文的核心发现——脉动阵列在面积效率上优于广播互连——是基于物理实现开销得出的架构级结论,与具体负载的权值驻留策略无关。在GPT-3 175B等超大模型场景下,最优数据流重新指向WS-Systolic-NOL,并不意味着上述法则被推翻,恰恰是在多维度设计约束共同作用时,其面积效率优势从宏阵列层级延续到了多核系统层级。

这一现象可从两个层次理解:

  1. 面积效率的压倒性优势:下图8(a)的帕累托前沿显示,WS-Systolic-NOL在全性能区间几乎始终优于OS-Systolic-OL等使能重叠的变体。 当扩展到几十个核心时,单核心的面积差异会被急剧放大,此时面积效率成为比时延更稀缺的硬约束,选择WS-Systolic是主动拥抱面积效率最优解,而非被动让步。

图8:AccelCIM中不同数据流的帕累托前沿。该图是评估部分的核心结果之一,将不同数据流方案在面积和功耗维度上的极限性能可视化。帕累托前沿意味着在这些方案中,无法在不牺牲面积(或功耗)的情况下进一步提升性能。脉动阵列(Systolic)方案普遍位于广播(Broadcast)方案的左下方,意味着在达到相同性能时,脉动方案所需的芯片面积更小,优势明显。这为芯片架构师选择数据流提供了直观且量化的依据。

  1. 访存行为的匹配,而非“存储墙让步”:Large DNN场景下权重必须频繁在片内外交换,但这并不天然有利于广播数据流。相反, OS-Systolic-OL的“列内权值共享”虽然在中小模型推理时具备时延优势(因为权值更新次数少),但当模型极大、权值不得不反复从片外加载时,其列内广播的并行度受限于单个CIM核心的规模,而WS-Systolic-NOL通过权重水平脉动,能以更少的全局广播线实现相同的数据重用距离,反而在面积效率上更优 。因此,这不是从“计算效率优先”向“数据重用优先”让步,而是WS-Systolic在“计算密度×面积效率”这一乘积项上,天然比广播数据流更适应需要大量权重更新的场景。

综上,GPT-3 175B选择WS-Systolic-NOL,恰恰证明了面积效率作为架构黄金法则在多核扩展中的决定性作用,而非其退场。

问题二:关于“计算-I/O重叠”性价比的质疑

计算-I/O重叠的能效悖论:加速还是拖累?

论文明确指出,启用计算-I/O重叠会导致能效下降25%至35%,并据此得出了一个战术性结论:该技术“仅对带宽受限设计有利”(Takeaway #3)。然而,若从更宏观的系统视角审视,这一权衡背后隐藏着一个深刻的战略矛盾:实验数据显示,启用重叠最多只能带来50%的时延优化(在高计算密度宏中,实际收益往往因计算时间远大于I/O时间而微乎其微),却要以牺牲三分之一的能效为代价。在追求能效极限的边缘计算场景中,这种以大幅牺牲能效换取有限性能提升的特征,是否从根本上宣判了“计算-I/O重叠”是一种得不偿失的设计?更进一步,这种技术路线是否正在将CIM加速器引向歧途——为了缓解因设计不当造成的带宽瓶颈,反而破坏了存内计算最核心的能效优势?

论文对计算-I/O重叠的分析并非全盘否定,而是将其从“默认启用”的教条中解放出来,还原为一种需要根据宏架构和负载特性精细调控的设计选项。这非但不会将CIM引入歧途,反而是防止架构设计“一刀切”、真正实现宏-阵列协同设计的关键一步。

论文的证据链有力支撑了这一审慎立场:

  1. 成本量化与收益边界:论文精确量化了启用重叠带来的25%–35%能效下降以及最多50%的周期数优化上限,并指出在典型高计算密度宏中,实际时延收益十分有限。这为性价比评估划定了清晰的边界,使设计师能够在“能效大幅牺牲”与“时延有限提升”之间做出明智决策。

图12:支持计算-I/O重叠的CIM宏单元对能效和面积效率的影响。 该图展示了“计算-I/O重叠”这一微架构特性对PPA的双向影响,有力地支持了作者的观点:这并非一个非黑即白的特性。当芯片面临严苛的面积约束,且系统中存在大量因等待权重更新而闲置的计算单元时,该“重叠”机制尽管耗电,却能节省可观面积;反之,若追求极致能效,则应谨慎或禁用此特性。这再次凸显了面向目标应用进行设计空间探索的价值。

  1. 对面积效率的意外收益:图12(b)显示,当并行通道数PC较大时,启用重叠反而能提升面积效率。原因是:多个Bank竞争单一I/O端口造成的权值更新瓶颈,会迫使其他宏闲置,浪费阵列面积;重叠通过隐藏更新延迟,提升了整体面积利用率。 这证明重叠并非全无用处,只是其适用范围收窄至带宽受限的特定宏配置。

[[TABLE_3]]
表3:不同大语言模型推理任务的优化设计点。 表格列出了Qwen3-0.6B、LLaMA-3系列、GPT-3 175B的最优设计方案:边缘小模型选用OS-Systolic-OL,超大模型选用WS-Systolic-NOL,且最优设计均采用低存储计算比。边缘场景靠重叠流水线降低延迟,云侧超大模型则靠无重叠设计压低功耗与面积。结果证实CIM加速器的最优设计与模型规模、部署场景强相关,验证了宏-阵列协同设计与精准PPA评估的必要性,为LLM推理CIM加速器的定制化设计提供了直接实践参考。

  1. 场景化推荐的实践智慧:论文并未宣判其“得不偿失”。在表3的LLM推理案例研究中,边缘场景下的最优设计均采用OS-Systolic-OL,而非NOL。这说明在对时延敏感且单核面积约束不极端的边缘场景,重叠带来的时延获益被判定为值得付出的能效代价。只有当计算任务扩展到GPT-3 175B这样对单核面积极端敏感的多核系统时,重叠的能效劣势才使其被NOL取代。

结论:启用计算-I/O重叠并非一种被滥用的妥协,而是在性能、能效、面积三角中一个有清晰坐标的调节旋钮。论文通过提供精确的成本模型,将这一特性的选择从“信条之争”转变为严谨的定量设计决策。这正是有助于CIM加速器设计走向成熟、避免误入歧途的系统性贡献,而非相反。


一、引言

基于SRAM的存内计算已成为加速深度神经网络的一项极具前景的技术。通过在SRAM位单元阵列内部紧密集成乘累加单元,SRAM CIM提供了优于分立式架构的计算密度和能效。这些优势使SRAM CIM成为在DNN加速器内实现矩阵单元的有力构建模块。CIM的巨大潜力不仅激发了广泛的学术研究[1, 3, 5, 13, 15, 16, 18–20, 23–25],也推动了跨不同应用领域的商业应用,例如用于大语言模型服务的d-Matrix [6]、用于自动驾驶的Houmo [11]和用于智能移动设备的MediaTek [17]。

SRAM CIM加速器的广泛应用范围使得数据流设计对性能至关重要。先前的CIM加速器研究通常针对可以完全容纳在片内存储器中的DNN模型[1, 13, 25]。然而,随着DNN模型尺寸不断扩大,许多当代模型已无法完全存储在芯片上。例如,d-Matrix Corsair [6]集成了2 GB的SRAM CIM,但仍无法容纳LLaMA-3系列中拥有80亿参数的最小成员[7]。

因此,面向大型DNN模型的SRAM CIM加速器必须有效管理片内/片外数据移动。

  • 在架构层面,必须仔细调度权重更新和计算,以最大化性能和能效。
  • 在电路层面,CIM宏单元及其互连必须协同设计,以最小化集成开销并确保可扩展性。

尽管已有大量关于CIM加速器设计和自动化的研究,但这些工作尚不能充分应对上述新兴需求。

[[TABLE_1]]
表1:与现有SRAM CIM加速器设计自动化相关研究的对比。 该表格从阵列数据流、阵列互连、宏容量、计算-I/O重叠、宏级PPA、阵列级PPA六大维度,对比了AutoDCIM、CiMLoop、CIM-MXU与AccelCIM的核心差异。现有研究存在明显局限:AutoDCIM缺失阵列数据流与互连设计,CiMLoop仅采用权重固定数据流且依赖分析模型,CIM-MXU宏容量固定、阵列PPA仅用分析模型。AccelCIM支持权重/输出固定双数据流、广播/脉动双互连,宏容量灵活,同时完成宏与阵列级后版图PPA评估,填补了现有研究评估维度缺失的短板,为CIM加速器设计提供了完整对比基准。

表1总结了相关研究及其在CIM加速器设计空间构建和设计评估方面的方法,我们从中识别出以下局限性:

  1. 对宏阵列组织的探索有限。现有的架构建模框架主要采用权重固定数据流与输入广播互连[1, 13, 15, 20, 25],而未探索诸如输出固定数据流[24]和脉动互联[4, 22, 24]等替代方案。因此,仍然缺乏对CIM宏单元空间布局的原则性比较。

  2. 对CIM宏单元能力的简化假设。大多数框架假设其CIM宏单元支持同时进行计算和I/O访问,即计算-I/O重叠[8, 9]。然而,此功能涉及减少端到端延迟与物理实现开销之间的系统级设计权衡,这些框架忽视了这一点。

  3. 对CIM宏单元和空间布局的设计评估不精确

因此,这种不精确的评估可能导致次优的CIM加速器设计。

  • 首先,用于评估不同CIM宏单元的分析模型通常保真度有限,因为它们仅针对非常有限的硅原型集合进行了校准[13, 18]。
  • 此外,阵列级物理设计的影响在很大程度上被忽略了。布局和布线会给面积占用带来不小的集成开销。

为弥补这些研究空白,本文提出了AccelCIM,一个面向SRAM CIM加速器的系统化数据流探索框架。通过建立全面的数据流设计空间并系统探索端到端系统质量结果的设计权衡,AccelCIM能够为目标DNN模型自动识别帕累托最优的CIM加速器数据流设计。本文的主要贡献总结如下:

  • 我们构建了一个系统化的CIM加速器数据流设计空间,涵盖了宏阵列的空间布局和宏单元设计选项。
  • 我们构建了一个严谨的CIM加速器设计评估器,以精确地对架构性能和版图后实现成本进行建模。
  • 我们对代表性的DNN应用进行了设计探索,并提供了富有洞察力的结论。

本文的其余部分组织如下:第二节介绍背景和动机。第三节介绍AccelCIM框架。第四节介绍评估结果。最后,第五节总结本文。

二、背景与动机

本节将介绍CIM加速器的相关背景,并阐明我们开展系统性数据流探索的动因。

2.1 CIM加速器设计

如图1所示,SRAM CIM加速器涵盖多个设计层级。

图1:典型CIM加速器的设计层次结构。SRAM CIM有限的存储容量使得数据流设计对实现高效数据移动至关重要。该图揭示了CIM加速器的分层架构:底层为CIM宏单元,中间层由多个宏单元通过特定数据流互连构成CIM核心,顶层则由多个核心通过片上网络连接形成CIM引擎。这一结构清晰表明,数据流设计并非孤立问题,而是贯穿宏单元内部、宏单元之间乃至核心之间的系统性挑战。尤其在处理大模型时,每一层的组织方式都直接影响数据搬运的开销。

CIM宏单元是SRAM单元阵列与乘累加单元的紧密集成体,通常通过手动版图设计或定制的自动化设计工具制作[3, 5, 16, 23]。多个CIM宏单元通过固定的硬件数据流互连形成CIM核心,多个核心再通过灵活的片上网络进一步连接,构成完整的CIM引擎。

CIM加速器各层级的设计选项构成了庞大的设计空间,催生了一系列设计空间探索研究[1, 13, 15, 20, 25]。然而,这些工作对CIM核心组织的设计权衡关注有限,这促使我们进行更系统的探索:

  1. 权重固定数据流被现有研究广泛采用,其前提是目标DNN模型通常能完全装入片内存储器。在此设定下,权重交换开销通常被视为一次性成本,或相对计算而言可忽略。然而,对于需要在片内/片外存储器之间交换权重的大型DNN模型,这一结论可能不再成立。
  2. 输入广播互连因其简易性也被普遍采用。然而,其物理实现颇具挑战性,因为核心缓冲区和CIM宏单元之间的全局连线会占用大量布线资源,导致其可扩展性差。

2.2 CIM宏单元设计

我们动机的另一来源是对CIM宏单元设计变体的后布局评估。我们利用开源的CIM宏单元编译器[12]生成了图2和图3中的结果。

图2:不同计算容量下CIM宏单元能效与频率的分布。该图直观展示了一个核心设计权衡:计算容量更大的宏单元(意味着集成度更高、并行度更高)通常能效更好,但最高工作频率却更低。这是因为较大的宏单元内部走线更长、负载更大,限制了其运行速度。这暗示着选择宏单元并非越大越好,需要在吞吐量(频率乘以算力)和能效之间找到最佳平衡点,为系统级设计空间探索提供了关键的物理约束。图3:启用计算-I/O重叠时CIM宏能效/面积效率相对退化的直方图。该图显示启用计算-I/O重叠后,CIM宏能效下降25%-60%、面积效率下降5%-25%。现有研究默认启用该功能,未系统评估其系统级影响。AccelCIM将其设为可选设计参数,发现该功能虽能降低权重更新延迟,但会显著增加硬件电路开销。该量化结果为设计决策提供依据:带宽充足场景可关闭该功能保障能效,带宽受限场景可启用以提升面积效率。

我们的分析揭示了两个在先前CIM加速器DSE研究中被广泛忽视的CIM宏单元设计权衡:

  1. 宏单元容量引入了能效与性能之间的设计权衡,如图2所示。具有更多比特乘法器的大容量CIM宏单元,由于定制的计算-存储集成而展现出更优能效;而乘法器更少、时序关键路径更短的小容量宏单元则可工作在更高频率。遗憾的是,这些物理特性在之前的系统级探索中未被恰当建模,可能导致次优设计。
  2. 计算-I/O重叠最小化了权重交换开销,但增加了功耗和硅面积,如图3所示。

尽管存在这种权衡,先前的研究通常默认启用此特性,对其系统级影响的评估非常有限。

三、AccelCIM框架

本节首先在3.1节介绍AccelCIM的数据流设计空间,然后在3.2节详细阐述数据流变体的架构建模,最后在3.3节介绍后布局设计评估流程。

3.1 AccelCIM架构

为分析AccelCIM中性能、面积和功耗之间的权衡,我们考虑了CIM宏单元以及宏阵列布局的联合设计空间。表2总结了相关设计参数及其候选值。

表2:AccelCIM的设计空间。该表格将设计空间划分为宏级与阵列级,明确各参数候选值。宏级涵盖累加长度、并行通道、计算-I/O重叠等8项参数,阵列级包含阵列尺寸、数据流、互连方式3项参数,覆盖电路到架构全层级。参数决定计算粒度、数据调度模式与硬件功能开关,全面的设计空间可覆盖主流CIM加速器方案。AccelCIM结合贝叶斯优化遍历该空间,能高效搜索帕累托最优解,适配DNN、LLM等不同场景的定制化设计需求。

宏单元 AccelCIM采用与[10]类似的CIM宏单元设计模板,如图4所示。

图4:AccelCIM CIM宏单元模板。该模板展示了一个高度参数化的CIM宏单元内部结构。其核心思想是将权重分块存储在多个存储体中,每个存储体又进一步切分为多个子阵列以支持并行计算。图中清晰地标示了并行度、局部存储深度、累加长度等关键设计参数,这些参数正是构成其庞大设计空间的基础。此模块化设计使得探索不同容量和计算能力的宏单元成为可能。

  • 该CIM宏单元包含PC个存储体,每个存储体存储一个由LSL个权重行和AL个权重列组成的权重块。
  • 在每个存储体内,位宽为的权重块被分割为2比特的片段,并分布式地存储在多个子阵列中。
  • 每个子阵列都增配了用于MAC操作的外围电路,包括比特乘法器和加法器树。
  • I/O接口专用于权重更新。值得注意的是,先前的工作通常默认假定CIM宏单元支持同时进行计算和权重更新[20, 24]。虽然这一特性减少了权重更新的待处理延迟,但它也需要额外的硬件资源(例如,位线和字线驱动器)。

因此,AccelCIM将计算-I/O重叠视为一个可选特性,并探索其相关的设计权衡。

CIM宏单元按如下方式计算通用矩阵-向量乘法:对于一个位宽为的输入向量,输入缓冲器将其两个比特切片广播到所有SRAM子阵列(步骤❶),同时字线驱动器在每个SRAM子阵列内激活一行(步骤❷)。这触发外围比特乘法器并行计算乘积(步骤❸)。乘法结果首先被送到子阵列级加法器树进行通道方向上的规约(步骤❹),然后被送入存储体级加法器树进行权重方向上的规约(步骤❺)。

由于组合逻辑已流水线化以缩短关键路径并提高CIM宏单元的工作频率,该规约需要PS个周期才能完成。忽略流水线化累加逻辑的填充和排空延迟,CIM宏单元的计算行为可总结如下:每个CIM宏单元每个周期计算输入激活向量与PC个权重行之间的PC个并行点积。

3.2 AccelCIM数据流

在本节中,我们讨论表2中的参数如何为图5所示的四种阵列级数据流管理全局矩阵乘法的分块和调度。

表2:AccelCIM的设计空间。该表格将设计空间划分为宏级与阵列级,明确各参数候选值。宏级涵盖累加长度、并行通道、计算-I/O重叠等8项参数,阵列级包含阵列尺寸、数据流、互连方式3项参数,覆盖电路到架构全层级。参数决定计算粒度、数据调度模式与硬件功能开关,全面的设计空间可覆盖主流CIM加速器方案。AccelCIM结合贝叶斯优化遍历该空间,能高效搜索帕累托最优解,适配DNN、LLM等不同场景的定制化设计需求。图5:AccelCIM数据流。该图对比了四种阵列级数据流在时空上的数据移动模式。权重固定(WS)与输出固定(OS)的区别在于权重和激活数据在阵列中是保持不动还是被传递。广播(Broadcast)与脉动(Systolic)的区别在于数据是同时发给所有单元还是以流水线方式依次传递。这四种组合直接决定了宏单元间的互连复杂度、数据重用模式和并行效率,是架构探索的核心。

宏单元级GEMM

4/6 部分:打破性能瓶颈的微架构与自动化设计

深入CIM宏单元内部的数据流

每个CIM宏单元负责存储一个尺寸为 [LSL, TL] 的权重块,并处理一个尺寸为 [LSL, 1] 的激活块。一个“权重行”指的是所有PC个存储体中,位于同一行索引上的权重集合。这些PC个存储体在执行计算时是并行的,但权重更新过程则是串行的。因此,处理一个激活块与一个权重行所需的周期数为 T_compute,而更新一个权重行所需的周期数为 T_update,其中 T_update 由CIM宏单元固有的权重写入速度 W_speed 决定。

对于单个权重块和激活块内部的乘累加运算,其循环结构是:外循环遍历LSL个权重行,内循环遍历TL个激活列。在处理多个输入时,系统会保持同一条字线(Word Line)处于激活状态。通过最小化字线的翻转次数,这种方法在相同的面积和性能约束下,有效降低了CIM宏单元内部的开关功耗。一旦宏单元完成对当前权重行的乘累加计算,它便会立即启动对该行的权重更新,随后再处理下一个权重行。值得注意的是,同一个激活块会被重复使用,与后续的权重行依次相乘,直到所有LSL个权重行都处理完毕。所有数据流都遵循这一基本的循环嵌套结构;它们之间的核心区别在于,在每次块矩阵乘法期间,激活值和权重值是如何在不同阵列之间移动的。

阵列级GEMM:不同数据流的对比

对于 WS-Broadcast 数据流,其规约树结构要求所有宏单元必须同时开始和结束计算。当一个宏单元完成对当前权重行的计算后,权重更新会以逐行的方式在每一列中进行,宏单元会按顺序接收更新。由于下一轮的激活块必须同时传递给所有宏单元,因此当某一列中有一个宏单元正在更新其权重时,该列中的其他宏单元会处于空闲状态,既不进行权重更新,也不参与计算。

相比之下,WS-Systolic 数据流通过在行间以 D 个周期的延迟水平交错地输入激活块,巧妙地避免了上述问题。一旦一个激活块完成了对当前权重行的计算,新的权重便会以类似的交错方式进入每一列。这种机制确保了每个宏单元在完成计算后,能够立即开始更新其当前的权重行,从而使得所有宏单元在计算和权重更新之间,至少有一项任务在执行,避免了空闲等待。

对于 OS-Broadcast 数据流,激活值的移动模式与WS-Broadcast相同,但权重更新方式不同:同一列内的宏单元共享一个公共的权重块,更新后的权重会被同步广播给该列中的所有宏单元。

而在 OS-Systolic 数据流中,一旦宏单元完成了局部的计算,它就会开始用从上游邻居传来的权重来更新其当前的权重行。权重更新完成后,宏单元会从其左侧的邻居接收下一轮激活块的初始比特,这些比特将在当前周期立即用于计算。

计算与I/O的重叠

如果宏单元支持计算与I/O重叠,那么当宏单元完成当前权重行的乘法后,下一行的乘累加计算可以与当前行的权重更新并发启动。反之,如果不支持重叠,计算必须等待权重更新完全结束后才能开始。

WS-Broadcast 数据流中,所有宏单元同步执行计算,因此需要在阵列中进行逐行的权重更新。当支持计算-I/O重叠时,下一权重行的计算会在更新期间,使用相同的激活块继续进行。如果满足条件 T_compute >= T_update,则所有宏单元的权重可以在下一轮激活块送达前更新完毕,从而有效解决了宏单元空闲的问题。

对于其他数据流,启用计算-I/O重叠可以降低延迟,但整体的流程框架基本保持不变。其主要影响是减少了每个宏单元在计算和权重更新上所花费的总延迟。如果不支持计算-I/O重叠,单个权重块与激活块相乘所需的周期数由下式给出:
T_total_no_overlap = LSL * (T_compute + T_update)

启用计算-I/O重叠后,块矩阵乘法的周期数减少为:
T_total_overlap = LSL * max(T_compute, T_update) + min(T_compute, T_update)

因此,周期数的优化率为:
R = (T_total_no_overlap - T_total_overlap) / T_total_no_overlap

理论上,启用计算-I/O重叠最多可减少 (LSL - 1) / (LSL + 1) 的延迟。然而,在大多数DNN加速器的最佳性能设计中,由于SRAM CIM的计算密度很高,T_compute 通常比 T_update 大数倍,因此实际能获得的延迟减少往往比较有限。

3.3 CIM宏阵列生成器

为了能够精确评估各种设计在物理版图后的质量,我们开发了一个自动生成器,用于生成CIM宏阵列的版图,其工作流程如图6所示。

图6:AccelCIM的宏阵列生成器工作流程。该流程图展示了从宏单元和阵列规格描述到最终版图的自动化过程。它首先利用CIM宏单元编译器生成宏单元GDSII版图,并提取其.lib(时序/功耗库)和.lef(几何信息库)文件。随后,根据阵列规格生成RTL网表,并使用Cadence Genus进行综合,最后在Innovus中基于前述物理库文件进行布局布线。这个流程确保了任何设计点的评估都基于真实的物理实现,而非估算。

该工作流程始于CIM宏单元版图的生成。给定CIM宏单元的规格,我们采用一个开源的SRAM CIM编译器来生成相应的宏单元版图[12]。生成的CIM宏单元版图实例如图7(a)所示。

[[IMAGE_7a]] 图7(a):单一CIM宏单元的物理版图。图中展示了其内部高度规整的存储体阵列结构。

宏单元版图生成后,会经过SPICE仿真以提取其时序和功耗特征,然后被编译成标准的时序库.lib文件。同时,宏单元的几何信息被抽象为库交换格式.lef文件。这些.lib和.lef文件将在后续的数字设计流程中被使用。

接下来,我们生成宏阵列版图。

  • 我们首先将宏阵列的规格描述翻译成寄存器传输级(RTL)代码。
  • 随后,我们使用Cadence Genus将RTL代码综合为门级网表,目标工作频率由CIM宏单元的内部延迟决定。
  • 然后,我们使用Cadence Innovus进行布局和布线。后布线的宏阵列版图实例如图7(b)所示。为了评估不同互连拓扑对布线资源的需求,布局布线过程是在不同利用率的布图规划上执行的。

[[IMAGE_7b]] 图7(b):由多个宏单元和互连逻辑构成的阵列版图。对比图7(a)和(b),可以直观地理解从宏单元到阵列的集成过程,以及由此引入的额外面积开销。这再次强调了后布局评估对于准确获取面积和功耗的必要性,因为宏单元之间的互连和控制器等开销是不可忽视的。

CIM宏阵列的最终布图规划是最紧凑的实现,它在满足所有时序约束的同时,将设计规则违例的数量保持在可接受水平。基于最终的布图规划,我们可以获得其面积以及阵列集成的功耗开销。

四、评估

4.1 实验设置

AccelCIM对表2中所述的数据流设计空间进行了全面探索,并采用贝叶斯优化算法来识别帕累托最优的设计方案[14]。

[[TABLE_2]] 表2:AccelCIM的设计空间。该表详细列出了所探索的各种数据流、宏单元规格和阵列配置等参数。

我们开发了一个内部周期精确的模拟器,用于获取运行特定应用所需的总周期数。所有CIM宏阵列都配备了相同的核心缓冲器,该缓冲器提供了足够的容量和带宽,以确保计算资源能被充分利用。CIM宏单元及完整阵列的物理版图均采用28纳米工艺技术生成。对于所探索的所有设计,我们评估其性能、功耗和面积,具体定义如下:

  • 性能: 在缺乏特定应用场景的情况下,我们通过理论峰值吞吐量来量化CIM宏阵列的性能,即MAC单元数量乘以工作频率。当考虑特定应用时,我们使用端到端延迟作为性能指标。
  • 功耗: 我们首先进行后布局分析,以提取CIM宏单元和阵列内其他组件的静态与动态功耗。然后,我们从周期精确的仿真轨迹中导出信号翻转率。最终,我们整合这些结果以计算总功耗。
  • 面积: 总面积从CIM宏阵列的布图规划中提取,该布图规划具有最高的利用率,同时满足我们在3.3节中描述的设计收敛标准。

4.2 主要结果

在本节中,我们将在大型语言模型推理应用的背景下,比较不同的CIM加速器设计方案。

  • 我们选择LLaMA-3-8B [7]作为目标模型,并采用W8A8量化方案,以实现纯整数通用矩阵乘法(GEMM)。
  • 我们假设CIM核心处理一个批次大小为8的请求,每个请求的序列长度为1024个token。当专注于Q/K/V投影运算时,对应的GEMM尺寸 [M, N, K] 分别为 [8192, 4096, 4096]

性能-面积和性能-功耗的帕累托前沿如图8所示。我们同时展示了先前工作CIM-MXU [24]所探索的设计方案的效率。

图8:AccelCIM中不同数据流的帕累托前沿。该图是评估部分的核心结果之一,将不同数据流方案在面积和功耗维度上的极限性能可视化。帕累托前沿意味着在这些方案中,无法在不牺牲面积(或功耗)的情况下进一步提升性能。脉动阵列(Systolic)方案普遍位于广播(Broadcast)方案的左下方,意味着在达到相同性能时,脉动方案所需的芯片面积更小,优势明显。这为芯片架构师选择数据流提供了直观且量化的依据。

从图8(a)中可以观察到,不同数据流在面积效率上展现出明显的分化。脉动数据流因其对布线资源需求的显著降低,其面积效率在全范围内始终优于广播数据流。在脉动系列中,无重叠的输出固定变体(OS-Systolic-NOL)受限于有限的数据重用和较低的利用率,表现相对逊色。而在其余三种脉动数据流(WS-NOL、WS-OL 和 OS-OL)中,WS-NOL几乎在整个性能区间内都实现了最优的面积效率,仅在极低面积区域,有极少数情况下WS-OL或OS-OL能实现略低的开销。

与面积效率的巨大差异形成对比的是,图8(b)显示,数据流之间的功耗差异相对较小。

  • 对于采用了支持计算-I/O重叠宏单元的数据流,它们表现出明显更低的能效,这主要源于更频繁的缓冲与开关活动。
  • 在高计算容量区域,WS-Broadcast-NOL提供了更好的能效;而在大部分其余工作范围内,两种无计算-I/O重叠的脉动数据流(WS-Systolic-NOL和OS-Systolic-NOL)凭借其更简单的控制逻辑和减少的并发数据访问,变得更具优势。

为了证明AccelCIM中宏阵列协同设计与精确PPA评估的重要性,我们以WS-Systolic-NOL数据流为例。对于最受关注的计算吞吐量指标,性能由频率和总周期数共同决定。如果仅关注周期数,并在不考虑时序的情况下进行阵列级探索[24],得到的帕累托前沿在周期数指标上确实显得更优。然而,一旦将频率纳入考虑,实际可实现的性能就会低于这种仅看周期的探索所预测的结果。这种差异在图9中显而易见,表明一个精确且全面的评估框架对于找到真正最优的设计点至关重要。

图9:以周期为导向与以性能为导向的设计帕累托前沿对比。此图直接对比了两种评估方法下的帕累托前沿。标有“Cycles”的曲线仅衡量完成任务所需的时钟周期数,忽略了时钟频率。标有“Performance”的曲线则将频率纳入计算。两条曲线的偏离有力地证明了,单纯优化周期数可能会选出逻辑简单但频率极低的设计,其实际性能(单位时间内完成的任务数)远非最优。这强调了AccelCIM采用物理感知评估方法的必要性。

4.3 性能分析

在本节中,我们通过消融研究,探讨各个设计选项在系统层面的影响,包括阵列尺寸、宏单元尺寸和计算-I/O重叠。基于评估结果,我们为未来的CIM加速器设计者提炼出关键要点。

阵列组织。 我们通过分析集成不同数量CIM宏单元的开销,来评估不同阵列组织的可扩展性。所有阵列配置均采用计算容量为4 TOPS的相同CIM宏单元。

图10:不同阵列尺寸下非宏组件对总功耗和总面积的贡献。该图清晰地将功耗和面积分解为“宏单元贡献”和“非宏单元贡献”(主要是互连和控制逻辑)。图10(b)最关键,它显示随着宏阵列规模增大,广播式互连的“非宏单元”面积开销急剧攀升,而脉动式互连的增长则平缓得多。这印证了下面“要点#1”的结论——脉动互连具有更好的可扩展性,尤其适合需要集成大量宏单元以提供高算力的场景。

图10(a)显示,所有数据流的功耗开销始终低于 。然而,图10(b)显示,广播数据流的面积开销远高于脉动数据流,因为它们的全局互连比脉动数据流的局部连接需要更多的布线资源。

要点#1: 相对于排他性的宏单元内和宏单元间广播,集成脉动互连可以在不降低能效的情况下提升面积效率。

宏单元选择。 为了确定系统层面最优的宏单元计算容量,我们使用不同的CIM宏单元来实现具有512K个比特乘法器的宏阵列,并评估其设计质量。此计算容量也匹配了所采用的CIM宏单元编译器支持的最大值。

图11:具有512K比特乘法器的CIM宏阵列的候选设计能效和面积效率。此图探索的是在总计算资源(512K乘法器)固定的前提下,是由少量大型宏单元构成阵列,还是由大量小型宏单元构成阵列更好。结果表明,能效最优倾向于大宏单元(更少的内部数据搬运开销),而面积效率最优则倾向于中等宏单元(避免了大型宏单元内部复杂的互连和外围电路开销)。这揭示了系统设计中“分而治之”的度,即宏单元并非越大越好。

如图11所示,在四种不同的数据流中,更大的CIM宏单元提供更好的总体能效,这是因为相对于外围逻辑,CIM宏单元在总功耗中占主导地位。然而,由于显著的内部广播开销,它们却带来了次优的面积效率。相反,中等尺寸的CIM宏单元通过平衡宏单元内部实现成本与宏单元间集成开销,实现了最高的面积效率。

要点#2: 中等尺寸的CIM宏单元提供了能效和面积效率之间最佳的系统级权衡。

计算-I/O重叠。 我们研究了支持同时进行计算和权重更新对加速器面积和能效的影响。我们采用了与基准4-TOPS宏单元仅在其存储体数量()上不同的设计宏单元,并构建了具有不同数据流的宏阵列。

图12:支持计算-I/O重叠的CIM宏单元对能效和面积效率的影响。该图展示了“计算-I/O重叠”这一微架构特性对PPA的双向影响。它有力地支持了作者观点,即这并非一个非黑即白的特性。当芯片设计面临严苛的面积约束,且系统中存在大量因等待权重更新而闲置的计算单元时,这个“重叠”机制尽管耗电,却能节省可观面积;反之,若追求极致能效,则应谨慎或禁用此特性。这再次凸显了面向目标应用进行设计空间探索的价值。

  • 如图12(a)所示,启用计算-I/O重叠通常会导致能效降低,这主要归因于额外的宏单元内部电路。
  • 然而,图12(b)显示,当相对较大时,计算-I/O重叠有利于面积效率。这是因为当CIM宏单元中的多个存储体争用同一I/O端口时,权重更新开销更为显著。

要点#3: 启用计算-I/O重叠可以为带宽受限的设计提升面积效率,但代价是损失能效。

4.4 案例研究:LLM推理

我们进一步在一系列LLM工作负载上评估AccelCIM,包括Qwen3-0.6B [21]、LLAMA-3-8B/70B [7]和GPT-3 175B [2],目标应用场景涵盖边缘和云端部署。CIM核心阵列的探索上限为20 TOPS的总计算容量。我们以延迟平方-功耗-面积的形式衡量PPA权衡,并在表3中展示了最优设计点。延迟以预填充阶段生成首个token的时间来衡量。

表3:不同大语言模型推理任务的优化设计点。表格给出Qwen3-0.6B、LLaMA-3系列、GPT-3 175B的最优设计方案:边缘小模型选用OS-Systolic-OL,超大模型选用WS-Systolic-NOL,且最优设计均采用低存储计算比。边缘场景靠重叠流水线降低延迟,云侧超大模型靠无重叠设计压低功耗与面积。结果证实CIM加速器最优设计与模型规模、部署场景强相关,验证了宏-阵列协同设计与精准PPA评估的必要性,为LLM推理CIM加速器定制化设计提供直接实践参考。

如表3所示,边缘场景偏好OS-Systolic-OL,结合中等尺寸的宏单元和多核扩展。启用了重叠的流水线和按列权重共享在保持合理的每核面积和功耗的同时,带来了可观的速度提升。而对于GPT-3 175B,WS-Systolic-NOL再次成为优选,因为它具有更低的每核面积和功耗,这在为长序列处理扩展到数十个核心时至关重要。值得注意的是,最优设计都展现出较低的存储-计算比(LSL),这意味着对于像LLM这样计算密集型的应用,内存容量不那么重要。 总而言之,这些结果凸显了最优设计点对模型结构和部署约束的强依赖性,证明了要实现真正优化的CIM基加速器,宏阵列协同设计和精确的PPA评估是必不可少的。

五、结论

本文介绍了AccelCIM,一个面向SRAM CIM加速器的系统化数据流探索框架。

我们识别出先前CIM加速器DSE框架中设计选择过于简化和建模不精确的问题。受这些局限性的启发,AccelCIM构建了一个全面的数据流设计空间,并对候选设计的后布局质量进行了严谨评估。

我们的结果表明,脉动互连通常更高效。此外,是否启用计算-I/O重叠以及如何选择最优的宏单元容量,应针对目标应用进行仔细调优,以平衡能效和面积。

参考文献

延伸阅读

交流加群请在 NeuralTalk 公众号后台回复:加群


关注“鲸栖”小程序,掌握最新AI资讯

本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/34262

(0)
上一篇 1天前
下一篇 17小时前

相关推荐