
1. 项目概述当“闪电”划破存内计算的天空最近在ISSCC 2024上读到一篇论文编号34.3标题里带了个挺酷的名字——“闪电”。这篇论文讲的是一个数模混合存内计算芯片专门为了适配当下火热的Transformer和CNNs架构而设计。作为一个在芯片设计和AI加速领域摸爬滚打了十几年的老工程师我第一眼看到这个标题就来了兴趣。存内计算喊了这么多年真正能高效、通用地支持Transformer这种复杂模型的方案市面上其实并不多见。大多数存内计算芯片要么偏重模拟域的高能效但精度和灵活性受限要么偏重数字域的灵活可控但能效提升有限。“数模混合”这个路子听起来就像是试图在鱼和熊掌之间找到那个微妙的平衡点。这篇“闪电”芯片的论文在我看来其核心价值在于它不仅仅是一个电路设计更是一套针对现代AI计算范式尤其是Transformer中的注意力机制和CNNs中的卷积的系统级解决方案。它试图回答一个关键问题如何让存内计算架构不再只是实验室里的“玩具”而是能真正适应主流、多变、计算密集的AI模型对于芯片架构师、AI算法工程师甚至是关注前沿硬件的投资者来说理解这套设计思路都至关重要。它揭示了下一代AI加速器可能的一个进化方向更贴近数据本身的计算范式以及如何通过巧妙的电路与架构协同来驯服Transformer这头“计算巨兽”。接下来我就结合自己的经验为大家拆解一下这篇论文里的门道。2. 核心思路与架构选型为什么是“数模混合”2.1 存内计算的传统困境与Transformer的新挑战要理解“闪电”芯片的选型我们得先看看存内计算面对的现实。传统的数字存内计算比如基于SRAM或数字RRAM的架构其优势是精度高、抗噪声能力强、与现有数字流程兼容性好。你可以把它想象成一个高度组织化、纪律严明的工厂每个步骤数据搬运、计算都清晰可控。但它的致命伤在于“数据搬运功耗”。即便计算单元就在存储器旁边大量的中间结果、权重数据的读取和写入依然会产生巨大的能量开销。在Transformer模型中这种开销被放大到了极致因为注意力机制涉及大量的矩阵乘加运算并且数据复用率相比CNN要低。另一方面纯模拟存内计算例如利用忆阻器的电导值直接进行模拟乘加则像一个高效的“化学反应炉”乘加运算在物理定律下自然发生能效极高。但它的问题在于“非理想性”太强器件偏差、噪声、非线性、温度漂移……这些因素会让计算精度大打折扣。训练好的高精度神经网络模型比如FP32或FP16映射到这样的模拟阵列上性能可能会严重衰退。这对于要求高准确率的视觉或语言任务来说是难以接受的。Transformer模型给硬件带来了几个特有的挑战1)动态稀疏性注意力矩阵通常是稀疏的但稀疏模式是动态的、与输入相关的无法在硬件设计时静态优化。2)混合精度需求前向推理时不同层、甚至同一层内的不同计算如注意力得分计算与FFN层计算对数值范围和精度的容忍度不同。3)复杂的数据流涉及大量的矩阵乘加QK^T, SV、Softmax、LayerNorm等非线性操作数据依赖关系复杂。2.2 “闪电”的混合策略分工与协同“闪电”芯片的核心思路正是针对上述困境和挑战提出了一种“分工明确、协同作战”的数模混合架构。它不是简单地把模拟和数字模块拼在一起而是根据计算任务的特性和需求进行了精密的切分。模拟域承担什么论文中的模拟存内计算阵列主要负责计算密集型、数据复用率高、且对极低功耗有苛刻要求的核心矩阵乘法。具体来说就是Transformer中Q查询、K键、V值矩阵之间的乘加操作以及CNN中的卷积核与输入特征图之间的乘加。这部分计算占据了模型推理绝大部分的运算量和能耗。利用模拟计算的高并行性和高能效特性在这里能获得最大的收益。设计的关键在于通过电路技术比如论文中可能提到的电流积分、电荷共享等机制来保证模拟计算的线性度和一致性将其精度控制在可接受的范围内例如8-bit以内。数字域承担什么数字部分则扮演了“控制器”和“精度保障者”的角色。它主要负责1)非线性函数计算如Softmax、GELU、LayerNorm等。这些函数用模拟电路实现极其复杂且不精确而数字逻辑查找表、分段近似等可以高效、高精度地完成。2)动态稀疏处理识别和处理注意力机制中的动态稀疏性跳过对零值的无效计算这部分需要灵活的逻辑判断数字电路更擅长。3)精度校准与纠错对模拟计算的结果进行数字化读取并可能通过轻量级的数字后处理电路如校准查找表、误差补偿单元来修正模拟非理想性带来的误差。4)全局控制与数据调度管理整个芯片的数据流将任务分发给模拟阵列并收集结果。这种混合架构的本质是让模拟去做它最擅长的事大量并行的乘加让数字去处理它更擅长的任务控制、非线性、精度提升从而在系统层面实现能效与灵活性的帕累托最优。它避免了纯模拟方案的精度灾难也规避了纯数字方案的数据搬运瓶颈。3. 核心电路与关键技术点拆解3.1 模拟存内计算阵列如何实现高能效的矩阵乘加论文中模拟计算阵列的具体实现是技术的重中之重。虽然我无法获知“闪电”芯片的全部电路细节但基于常见的数模混合存内计算设计我们可以推断其核心可能围绕以下几种技术1. 基于SRAM或新型非易失存储器的模拟计算单元SRAM-based利用SRAM单元内部分配的电荷或电流来进行乘加运算。例如将输入激活值转换为脉冲宽度或幅度将权重存储在SRAM的特定配置下通过位线BL和字线WL上的操作在阵列中同时完成多个乘积累加MAC操作。其优势是与CMOS工艺完全兼容速度快。非易失存储器NVM-based如使用ReRAM阻变存储器或FeFET铁电晶体管。将权重以电导值G的形式存储在NVM器件中。输入电压V施加在字线上根据欧姆定律I V * G在位线上产生的电流自然就是乘法结果。同一列所有位线的电流求和基尔霍夫电流定律就完成了乘加运算。这种方案密度高但器件非理想性更显著。2. 模拟-数字转换器ADC的精妙设计模拟阵列计算出的结果是模拟量通常是电流或电压必须被转换为数字量才能被后续数字电路处理。ADC是功耗和面积的大户也是设计瓶颈。“闪电”芯片很可能采用了以下策略来优化ADC列共享ADC并非每个存储单元列都配备一个ADC而是多列共享一个高速高精度ADC通过模拟多路复用器轮流读取以节省面积。逐次逼近型SARADC因其在中等精度如8-10位下具有优异的能效比是此类应用的常见选择。利用计算本身的特点例如在注意力计算中有时只需要知道最大值或相对大小如Softmax前可能采用更简单的比较器电路而非全精度ADC。3. 输入/输出IO的数据映射与调度如何将神经网络中的权重矩阵和输入特征图映射到物理的存储阵列上直接影响计算效率和硬件利用率。这里涉及权重固定通常将训练好的网络权重预先编程烧写到非易失存储器中或加载到SRAM阵列的特定配置里。对于Transformer这意味着将Q、K、V的投影矩阵权重固化。输入流式处理输入特征如词嵌入向量或图像块被转换为模拟信号电压/电流按特定顺序施加到阵列的行上。脉动阵列思想可能借鉴了数字脉动阵列的数据流在模拟域实现数据的高效流水线处理隐藏数据访问延迟。实操心得模拟计算的“校准”是关键在实际流片中模拟阵列的性能一致性是最大的挑战之一。由于制造工艺的微小偏差每个存储单元的电学特性如电导值、晶体管阈值电压都会有差异。因此芯片必须包含一个上电或周期性的校准环节。这个环节通常由数字控制电路发起向阵列输入一组已知的测试向量测量输出然后生成一个“校准系数查找表”。在正式计算时用这个查找表对原始输出进行补偿。忽略这一步芯片的推理准确率可能会惨不忍睹。3.2 数字处理引擎灵活性与精度的守护者数字部分的设计直接决定了芯片能否顺畅运行复杂的Transformer和CNN模型。1. 专用指令集与可编程控制器“闪电”芯片很可能定义了一套精简的专用指令集用于描述神经网络层如Linear, Conv2D, Attention, Softmax, LayerNorm的操作。一个轻量级的RISC-V类微控制器或定制的状态机负责解析这些指令并产生控制信号调度模拟阵列、数字计算单元、片上缓存SRAM Buffer协同工作。这种设计提供了必要的灵活性以支持不同的模型架构和层类型。2. 非线性函数硬件加速器Softmax单元这是Transformer的核心。硬件实现Softmax通常采用“减最大值”技巧来保证数值稳定性。即先找到向量中的最大值所有元素减去该最大值后再进行指数运算和归一化。硬件上需要并行比较树、查找表LUT实现指数函数、以及除法器或倒数单元。GELU/LayerNorm单元GELU激活函数可以用多项式近似或查找表实现。LayerNorm涉及均值和方差的计算归约操作以及按元素缩放和平移需要乘加器和一些控制逻辑。3. 稀疏化处理单元为了利用注意力矩阵的稀疏性芯片需要能够快速识别并跳过零值运算。一种可能的设计是在数字部分集成一个轻量级的“稀疏性检测”模块。它可以在模拟计算之前对输入数据如Q和K的向量进行预判或者对模拟计算出的中间结果如注意力得分进行阈值比较将低于阈值的值视为零并生成一个“掩码”Mask。这个掩码会反馈给控制逻辑用于跳过后续不必要的计算和数据搬运。4. 精度提升与纠错电路这是数模混合设计中的“粘合剂”。模拟计算的结果经过ADC量化后会进入一个数字后处理管道。这里可能进行偏移与增益校正根据校准阶段得到的参数对数字输出进行线性校正。非线性误差补偿通过一个小的查找表补偿模拟器件固有的非线性响应。位宽扩展与饱和处理将多个低精度如4-bit的模拟计算结果在数字域拼接或累加成更高精度如16-bit的中间结果以保持累积精度同时防止溢出。4. 针对Transformer和CNN的架构适配性设计4.1 如何高效支持Transformer的注意力机制Transformer的注意力层是硬件设计的“硬骨头”。“闪电”芯片需要从数据流和计算组织上对其进行特殊优化。1. 计算分解与流水线标准的多头注意力MHA计算流程为Q, K, V input * W_q, W_k, W_v-Scores Q * K^T-Attention softmax(Scores) * V。 “闪电”芯片的模拟阵列可能被组织成多个“子阵列”或“块”以并行处理多个注意力头。一个高效的数据流可能是阶段1利用一部分模拟阵列并行计算所有头的Q、K、V投影三个独立的矩阵乘法。阶段2将计算好的Q和K送入模拟阵列进行Q*K^T计算。这里面临一个挑战K^T意味着需要按列访问K矩阵。这要求存储权重或中间结果的存储器有灵活的访问模式或者通过转置缓冲器来实现。阶段3Scores矩阵可能很大被送入数字部分进行Softmax计算。由于Softmax是逐行操作可以流水线化处理一行算完就立刻进入下一阶段。阶段4Softmax后的结果Attention与V矩阵再次在模拟阵列中进行乘法得到最终的注意力输出。关键在于这些阶段之间需要高度的流水线重叠并充分利用片上缓存SRAM来存储中间矩阵如Q,K,V,Scores避免频繁访问片外DRAM。2. 对因果注意力Causal Attention的支持在GPT这类解码器模型中需要因果注意力掩码防止看到未来信息。这可以在数字部分的Softmax单元中轻松实现即在计算Softmax前将未来位置的Score值设置为一个极大的负数如-inf。3. 对KV Cache的硬件支持在自回归生成如文本生成时K和V会被缓存起来供后续步骤使用以避免重复计算。“闪电”芯片的片上存储系统需要为这种缓存模式进行优化提供高效且低功耗的KV缓存读写接口。4.2 如何兼容经典的CNN卷积操作虽然论文重点在Transformer但支持CNN能极大扩展芯片的适用场景如视觉任务。CNN的卷积操作与矩阵乘法有内在联系通过im2col或Winograd变换但数据模式不同。1. 卷积到矩阵乘的映射“闪电”芯片的数字预处理单元很可能集成了im2col或类似功能的硬件模块。它将输入特征图和卷积核的滑动窗口操作展开成两个大的矩阵从而可以直接调用模拟阵列进行矩阵乘法。这个过程需要大量的数据重排和复制对片上存储的带宽和容量是考验。2. 利用卷积的固有复用性CNN中卷积核权重在计算一个输出特征图时是固定不变的输入数据则有大量重叠。芯片设计可以利用这一点将卷积核权重固定在模拟阵列的某些行/列上然后以流式方式输入不同的输入数据块从而最大化权重数据的复用减少配置开销。3. 支持多种卷积参数通过可编程控制器芯片应能支持不同的卷积核尺寸1x1, 3x3, 5x5等、步长Stride和填充Padding。这主要依靠数字部分的数据地址生成器和调度逻辑来实现。5. 芯片性能评估与潜在挑战5.1 性能指标解读能效比与吞吐量这类研究芯片的论文通常会报告几个关键指标峰值算力TOPS在特定精度如INT8下芯片每秒能完成多少万亿次操作。这体现了计算吞吐能力。能效比TOPS/W每瓦特功率能提供多少TOPS的算力。这是存内计算芯片的“命根子”目标是远超传统冯·诺依曼架构的GPU/ASIC。面积效率TOPS/mm²单位芯片面积提供的算力衡量集成度。在特定神经网络如BERT, ViT, ResNet上的精度与延迟这是最终的用户体验指标。论文会展示在标准数据集上芯片运行完整模型的准确率损失与浮点基线相比和推理速度。“闪电”芯片的亮点预计会体现在极高的能效比上尤其是在处理Transformer的注意力层时。其数模混合架构的目标就是在保持较高精度例如任务精度损失1%的前提下将能效比提升一个数量级。5.2 实际部署中的挑战与考量尽管论文中的结果令人振奋但将这样的芯片推向实际应用还面临一系列工程挑战1. 工艺偏差与良率模拟电路对工艺偏差极其敏感。在先进工艺节点如7nm, 5nm下晶体管特性的微小波动会被放大可能导致不同芯片之间甚至同一芯片不同阵列之间的性能差异。这需要非常 robust 的电路设计和严格的工艺角Corner验证。良率问题会比纯数字芯片更突出。2. 校准开销如前所述校准是必须的。但校准过程本身需要时间影响启动延迟和额外的电路如高精度的参考源、测量电路。在线校准在运行时周期性进行还会占用计算资源。如何设计一个快速、低开销、高精度的校准方案是产品化的关键。3. 编程模型与工具链缺失这是所有新型架构硬件的共同难题。如何让AI算法工程师像使用PyTorch或TensorFlow调用CUDA那样轻松地将模型部署到“闪电”芯片上这需要一套完整的工具链编译器将主流框架PyTorch, TensorFlow的模型编译成芯片的专用指令流并完成图优化、层融合、数据布局转换等。量化工具将FP32/FP16的模型量化到芯片支持的混合精度格式例如权重8-bit激活8-bit部分累加16-bit并可能需要进行量化感知训练QAT来保持精度。模拟器/仿真器在芯片实物出来之前提供软件模型让开发者评估性能和精度。4. 系统集成挑战这样一颗数模混合存内计算芯片通常不会单独工作。它需要作为加速卡PCIe或移动设备SoC中的一个IP核来使用。这就涉及到与主机CPU的内存一致性、DMA数据传输、任务调度、功耗/热管理等复杂的系统级问题。6. 未来展望与个人思考“闪电”这类数模混合存内计算芯片代表了一条非常务实的技术路径。它没有追求激进的纯模拟方案而是采取了混合策略在现有技术边界内寻求最大突破。从产业角度看它的成功与否不仅取决于芯片本身的PPA性能、功耗、面积更取决于其生态建设的速度。我个人认为这类芯片最先可能落地的场景是对功耗极度敏感、但对延时有一定容忍度的边缘端设备。例如智能手机上的实时语音助手、AR眼镜中的视觉处理、物联网网关中的视频分析。在这些场景下高能效比直接转化为更长的续航时间是硬性需求。而对于数据中心的大规模推理虽然也有潜力但需要解决多芯片互联、大规模部署下的可靠性以及与传统GPU生态竞争等问题。另一个有趣的趋势是随着Transformer模型本身不断演进如出现更稀疏的模型、混合专家模型MoE这类硬件也需要保持架构上的灵活性来适应。“闪电”芯片中强大的数字处理部分正是这种灵活性的保障。未来的存内计算芯片可能会更像一个“可重构的模拟计算阵列可编程数字引擎”的紧密结合体软件定义的程度会越来越高。最后对于想进入这个领域的工程师我的建议是跨学科的知识储备变得前所未有的重要。你需要既懂晶体管级的模拟电路设计又懂计算机体系结构还要理解神经网络算法。能够在这几个领域的交叉地带思考问题的人将成为下一代芯片设计的核心力量。“闪电”论文的价值就在于它为我们提供了一个绝佳的、具体的跨学科设计范例。它不仅仅是一篇电路设计论文更是一份关于如何为特定算法范式进行硬件-软件协同设计的宣言书。