简介:本资源为《基于存算一体集成芯片的大语言模型专用硬件架构》论文PDF,面向AI芯片架构研究者、大模型部署工程师及集成电路方向的高年级学生与科研人员。内容聚焦大模型推理中存储与计算单元分离导致的数据搬移带宽瓶颈,提出以存算一体集成芯片与集成芯粒构建专用硬件架构,并探讨轻量化-存内压缩协同设计,实现稀疏网络在存算一体硬件上的稠密映射,以提升存储密度与计算能效。资源包共1个PDF文件,大小约3.49MB,内容为完整论文,含摘要、关键词、引用格式、图表与参考文献,便于精读与引用。目前已有138人学习下载,适合希望系统理解存算一体架构、芯粒方案及大模型推理能效优化路径的读者参考。
1. 当大模型推理撞上带宽墙:这份存算一体架构文档能给你什么
跑过 70 亿参数以上模型推理的人大概都有体会:GPU 利用率上不去,显存带宽先扛不住了。这份《基于存算一体集成芯片的大语言模型专用硬件架构》技术文档,讨论的正是这个卡脖子环节——当模型参数每两年涨 240 倍、算力需求涨近 750 倍,而硬件每两年只进步 3.1 倍时,传统 GPU/TPU + DRAM 分离架构的带宽瓶颈就成了大模型部署的硬约束。文档给出了一条从集成芯粒到存内压缩的完整技术路线,适合做 AI 芯片架构、数据中心加速卡、边缘推理硬件的从业者精读。它不是科普,是一份带参数、带数据流分析、带芯片实测指标的架构设计参考。
2. 带宽瓶颈到底卡在哪:从 LLAMa-7B 的算力存储比算起
2.1 分离架构的带宽账:64 TB/s 需求 vs 0.8 GB/s 现实
文档里有一组数据值得反复看。以 LLAMa2-7B 为例,32 层 Transformer 中,全连接层的参数量占到总参数的 85% 以上,单层参数量约 2.03 亿,32 层合计约 65 亿。如果要在推理时达到每秒 1 万个令牌的实时速率,GPU 对带宽的需求会飙到 64 TB/s。而当前 HBM3 的实际带宽是多少?文档写的是 0.8 GB/s——差了将近五个数量级。
这个差距不是靠堆 HBM 通道能填上的。分离架构的根本问题在于:权重存在 DRAM 里,每次推理都要把权重从 DRAM 搬到计算单元,搬完算完再搬下一批。矩阵乘加本身的计算时间可能只占一小部分,大头全花在数据搬移上。文档里算了一笔账:大模型的算力需求与存储容量之比,实际上就等于目标令牌速率,跟网络大小无关。这意味着模型越大,需要搬运的数据量越大,而带宽是固定的,瓶颈只会越来越紧。
传统 CNN 模型比如 ResNet-50,算力存储比大约是 164×帧率 GOPS/kB,而大模型的算力存储比远低于这个值。换句话说,大模型是典型的“存储密集型”负载,不是“计算密集型”。用为计算密集型设计的 GPU 架构去跑存储密集型的活,能效自然上不去。
2.2 存算一体的破局逻辑:交叉阵列与欧姆定律
存算一体的核心思路不复杂:既然搬数据费劲,那就不搬了,把计算直接放到存储阵列里做。经典实现基于交叉阵列(crossbar array),输入特征用字线上的电压表示,权重以电导值的形式固定在存储单元中,输出结果直接表现为位线上的电流大小。根据欧姆定律和基尔霍夫定律,一次电压施加就能完成整个矩阵乘加操作。
关键在于权重不需要移动。权重系数一直固定在存储阵列里,每次计算只需要搬运输入和输出,数据搬移开销大幅降低。文档给出的对比数据是:采用 CPU + 存算一体的组合架构,在相同令牌速率和算力下,带宽需求仅 32~64 Gbit/s,相比 xPU + HBM 架构节省超过 1000 倍。
这个数字看着夸张,但逻辑是自洽的。分离架构下,每个令牌的推理都要把全部权重过一遍;存算一体下,权重不动,只有激活值在流动。对于 70 亿参数的模型,前者要搬 65 亿个参数,后者只需要搬输入激活和输出结果,量级差异摆在那里。
2.3 存边计算架构 COMB:算力存储比的匹配问题
传统交叉阵列架构有一个硬伤:算力存储比等于时钟频率×2,这个比值是固定的。但大模型需要的算力存储比等于目标令牌速率,不同场景下变化很大。文档提出的存边计算架构(COMB,Computing-on-Memory-Boundary)把乘加计算逻辑分布在片上权重缓冲 SRAM 的边缘,算力存储比变成时钟频率×2/存储深度,可以通过调整存储深度来灵活匹配不同模型的算力存储需求。
数据流映射上,权重在计算开始前预先加载到 COMB 宏中,沿输入通道方向切块后展平存入不同列。多个 COMB 宏可以并行提高输出通道方向的并行度,完成空间并行计算。这套方法跟近存计算架构中常用的数据流映射思路一致,迁移成本不高。
文档还给出了一个具体的芯粒估算:单颗芯粒算力 10 TOPS、存储容量 200 MB 时,按 12/14 nm 工艺估算,计算电路面积约 8 mm²,存储面积约 300 mm²,算力密度约 0.0325 TOPS/mm²。这个密度不算高,但胜在单芯粒接口速度要求远低于现有管控指标,工程上更可行。
3. 从芯粒集成到存内压缩:架构落地的两条腿
3.1 四芯粒 2.5D Fanout 封装:SRAM 存算的集成路径
SRAM 存算一体过去受限于集成度——单芯片最大 SRAM 在 100 MB 量级,光刻极限摆在那里,很难突破。文档给出的解法是 2.5D/3D 堆叠:基于集成扇出(FanOut)工艺,把 4 颗 65 nm SRAM 存边计算芯粒集成在一起,实现算力和存储容量的显著提升。
这里有一个工程边界需要注意:文档明确指出,超过 4 颗芯粒集成时,映射方法还需要优化才能实现算力随芯粒数量的线性增长。也就是说,4 颗是一个经过验证的甜点位置,再往上堆,互联和映射的开销会吃掉一部分收益。对于做加速卡设计的团队,这个数字可以作为初期方案规划的参考锚点。
除了 SRAM,文档还提到了 RRAM 路线。RRAM 通过改变二端器件阻值存储信息,与 CMOS 工艺兼容性高、非易失、读取功耗低。基于 1TnR 的 RRAM 阵列通过三维堆叠可以实现接近 DRAM 的存储密度。两条路线的取舍逻辑是:SRAM 能效高但密度受限,RRAM 密度高但工艺成熟度还在爬坡,DRAM 存算密度最高但工艺专用性强、与逻辑工艺兼容性差。
3.2 稀疏网络的稠密映射:剪枝子组 32、稀疏率 75%
大模型部署绕不开稀疏化。但稀疏网络映射到存算一体交叉阵列时有个尴尬:非结构化剪枝后的权重矩阵里那些零值,在交叉阵列中仍然需要保留存储单元来维持计算同步性,等于白剪了。结构化剪枝虽然跟并行处理兼容,但会掉精度。
文档提出的方案是存内稠密权重系数存储加蝶形网络稀疏提取。具体流程是:权重向量按固定大小划分为剪枝子组,每个子组按预定义稀疏度修剪。文档在 Enwik-8 和 Text-8 任务上用 12 层注意力模型做了实验,结论是剪枝子组大小为 32、修剪 3/4 权重时,网络性能保持不变。所以推荐参数就是子组 32、稀疏率 75%。
剪枝后的权重被压缩为稠密向量和二进制比特掩码,比特掩码指示稠密权重的原始位置。然后根据比特掩码从原始输入中提取未跳过的输入特征,最终乘积通过两个稠密向量相乘得到。整个流程的顺序性和稳健性保证了功能正确性。
3.3 蝶形网络与 LRCW 解码:硬件怎么实现特征路由
蝶形网络负责把压缩后的稠密权重对应的输入激活特征提取出来。红色的特征经过蝶形拓扑网络后被路由到右侧,蝶形网络基于传输管实现,传输管的控制信号由解码器实时产生。解码器逻辑接收稠密权重的比特掩码,生成控制比特配置蝶形网络的数据分发路径。
解码机制包含两个操作:前缀 pop 计数和左旋转补码(LRCW)。前缀 pop 计数扫描位掩码序列,输出当前位置之前 1 的总数。LRCW 是标准左旋转的变体,唯一区别在于移位在任何时候都以补码形式表示。这两个操作组合起来,就能有效地处理比特掩码,灵活配置蝶形网络并提取输入特征。
文档给出了 28 nm CMOS 工艺制造的芯片实测数据,整理如下:
| 参数 | 数值 |
|---|---|
| 工艺节点 | 28 nm |
| 精度 | INT8 |
| 定制单元晶体管数 | 8 T |
| 数字 SRAM | 10 T |
| 芯片面积 | 3.93 mm² |
| 电压 | 0.64~1.03 V |
| 频率 | 20~320 MHz |
| 功耗 | 8.27~250.65 mW |
| 峰值性能 | 3.33 TOPS @320 MHz, 1.03 V |
| 面积效率 | 0.85 TOPS/mm² |
| 系统能效(QKV 生成) | 11.83 TOPS/W |
| 系统能效(整体注意力) | 25.22 TOPS/W |
这组数据说明两件事:一是存内压缩协同设计在 28 nm 这样的成熟工艺上就能跑出可观的能效;二是面积效率 0.85 TOPS/mm² 虽然不算惊艳,但考虑到这是带稀疏提取和蝶形路由的完整系统,工程参考价值是实打实的。
4. 避坑指南:存算一体架构落地时最容易翻车的五个地方
4.1 坑一:把存算一体当万能药,忽略模型结构匹配
现象:团队拿到存算一体加速卡后,直接把所有模型往上搬,发现有些模型能效提升明显,有些几乎没变化。
原因:存算一体的收益高度依赖模型的算力存储比。文档里算得很清楚,大模型的算力存储比等于目标令牌速率,而传统 CNN 的算力存储比远高于此。对于计算密集型的卷积网络,存算一体的带宽节省优势发挥不出来,反而因为交叉阵列的固定开销导致能效下降。
解决:上存算一体之前先算模型的算力存储比。如果算力需求远大于存储需求(比如高帧率 CNN 推理),优先考虑传统架构;如果是大模型这类存储密集型负载,存算一体的收益才明显。
4.2 坑二:稀疏化参数拍脑袋定,精度掉了才回头查
现象:为了追求更高的压缩率,把剪枝子组设得很小、稀疏率设得很高,结果模型精度断崖式下跌。
原因:文档的实验结论是子组 32、稀疏率 75% 时性能不变,但这个结论是在 12 层注意力模型、Enwik-8 和 Text-8 任务上得出的。换模型、换任务,这个甜点位置可能偏移。稀疏率超过 75% 后,比特掩码的压缩收益递减,但精度损失加速。
解决:从子组 32、稀疏率 75% 起步,做消融实验。每次只调一个参数,观察精度变化曲线。如果精度开始下降,优先增大子组大小而不是降低稀疏率,因为子组大小对硬件映射的影响更直接。
4.3 坑三:芯粒数量堆上去,算力不线性增长
现象:从 4 颗芯粒扩展到 8 颗,理论算力翻倍,实测只提升了 40%~60%。
原因:文档明确提到,超过 4 颗芯粒集成时映射方法尚需优化才能实现算力随芯粒数量的线性增长。芯粒间的数据路由、同步开销、掩码分发延迟都会随着芯粒数量增加而放大。
解决:初期方案按 4 颗芯粒规划,把单芯粒的算力和存储做足。如果要扩展,先优化映射算法和片间互联协议,确保新增芯粒的边际收益在可接受范围内。别在映射没调好之前就堆芯粒数量。
4.4 坑四:忽略比特掩码的解码延迟
现象:推理吞吐量远低于预期,profile 发现大量时间花在解码器逻辑上。
原因:蝶形网络的配置依赖解码器实时产生控制信号,解码器要完成前缀 pop 计数和 LRCW 操作。如果比特掩码的位宽很大,或者解码逻辑的流水线深度不够,解码就会成为关键路径上的瓶颈。
解决:在架构设计阶段就把解码器逻辑的延迟纳入时序预算。比特掩码的位宽跟剪枝子组大小挂钩,子组 32 对应 32 位掩码,解码延迟可控。如果子组更大,需要评估解码器能否在一个时钟周期内完成,必要时做流水线拆分。
4.5 坑五:拿 28 nm 的能效数据直接外推到先进工艺
现象:用文档里 28 nm 芯片的 25.22 TOPS/W 去估算 7 nm 下的能效,结果流片后实测差了一大截。
原因:存算一体的能效瓶颈不只在逻辑电路,还在存储阵列的读写功耗和交叉阵列的寄生参数。先进工艺下逻辑微缩比例远高于 SRAM 微缩比例,存储部分的功耗占比会上升。文档也提到,传统嵌入式 SRAM 工艺下的微缩比例远远低于逻辑微缩比例。
解决:做工艺迁移评估时,把逻辑和存储分开算。逻辑部分的能效提升可以参考工艺节点的 PPAC 数据,存储部分要单独做功耗建模。别用一个统一的缩放因子去乘。
5. 进阶用法:用文档里的数据流模型做架构选型推演
文档最有价值的地方不是结论,是它提供了一套可以复用的数据流分析框架。我一般会按下面的步骤,用文档里的参数做架构选型推演。
第一步,确定目标模型的算力存储比。以 LLAMa2-7B 为例,文档给出的全连接层算力需求约 68 TOPS,存储容量约 3.4 GB,比值约等于目标令牌速率。如果你的场景是每秒 1000 个令牌,算力存储比就是 1000。
第二步,算分离架构的带宽需求。带宽 = 存储容量 × 令牌速率。3.4 GB × 1000 = 3.4 TB/s。对比 HBM3 的 0.8 GB/s,差距一目了然。
第三步,算存算一体架构的带宽需求。文档给出的经验值是 32~64 Gbit/s,取上限 64 Gbit/s = 8 GB/s。相比分离架构的 3.4 TB/s,节省约 425 倍。文档说 1000+ 倍是在 10000 令牌速率下算的,速率越低节省倍数越小,但量级优势始终存在。
第四步,估算芯粒数量和面积。按文档的单芯粒参数:10 TOPS、200 MB、面积约 308 mm²(8 mm² 计算 + 300 mm² 存储)。68 TOPS 需要 7 颗芯粒,3.4 GB 存储需要 17 颗芯粒。取最大值 17 颗,但文档验证过的集成上限是 4 颗。所以要么提高单芯粒存储密度,要么接受多级集成方案。
第五步,用稀疏化压缩存储需求。按子组 32、稀疏率 75% 计算,存储需求降到 3.4 GB × 0.25 = 850 MB。芯粒数量降到 5 颗,接近 4 颗的验证边界。如果稀疏率能再优化到 80%,存储需求降到 680 MB,4 颗芯粒就够了。
这套推演下来,你会发现存内压缩不是锦上添花,是让芯粒数量落在工程可行范围内的关键手段。没有稀疏化,17 颗芯粒的集成方案在当前的映射方法下根本跑不出线性算力。
提示:做推演时把令牌速率作为独立变量。不同业务场景的令牌速率差异很大,对话场景可能几百,批量推理可能上万。速率变了,带宽需求和芯粒数量都要重算。
从那以后我每次做架构选型,都强制走一遍这个五步推演,把算力、存储、带宽、芯粒数量、稀疏率五个参数的变化关系理清楚再动手画框图。希望帮到你。
本文还有配套的精品资源,点击获取