简介:面向大模型硬件设计与存算一体技术研究者的专业文献,内容基于中兴通讯技术2024年刊发的论文,系统分析以ChatGPT为代表的大模型在参数规模与算力需求指数增长下所面临的带宽瓶颈及数据中心能耗压力。论文提出采用存算一体集成芯片架构,将计算与存储紧密集成以减少数据搬移,并进一步探讨轻量化-存内压缩协同设计,实现稀疏网络在存算一体硬件上的稠密映射,从而提升存储密度与计算能效。资源包为单个PDF文件,大小3.49MB,包含完整的摘要、关键词、图表与参考文献,适合硬件架构师、AI工程师及学术研究人员快速掌握存算一体芯片在大模型推理场景中的前沿方案。目前已有137人学习,可作为理解集成芯粒与存内压缩技术路线的重要参考资料。
1. 存算一体大模型硬件架构:这篇论文凭什么值得你读
ChatGPT出现之后,最让人头大的不是模型调参,而是推理时显存带宽卡脖子。以LLaMA2-7B这样70亿参数的模型为例,要跑到每秒1万令牌的实时速率,光权重搬运就需要64TB/s,而当前HBM3的有效带宽只有0.8GB/s左右——差了三个数量级。这个"带宽焦虑"就是复旦大学陈迟晓团队这篇论文的切入点:用存算一体集成芯片,把计算塞进存储边缘,再配合轻量化-存内压缩,让稀疏网络在硬件上稠密映射。这不是停留在PPT上的概念,论文给了完整的存算一体架构分析、三种存储介质选型对比,以及一颗28nm实测芯片的参数。适合芯片架构师、AI加速卡规划者、做模型部署优化的工程师,以及研究存算一体和Chiplet的研究生。
2. 存算分离为什么顶不住大模型:从HBM带宽到算力存储比
2.1 大模型参数爆炸不是广告,是数学事实
论文第一张图给了一组让人头皮发麻的数字:模型参数量每两年增长240倍,推理算力需求增长将近750倍,而硬件算力每两年只涨3.1倍。传统的超大尺寸单芯片SoC已经撞上了光刻掩膜版上限,单片最大设计面积约为858 mm²。这组数据的意思是:别指望靠工艺迭代硬扛大模型,架构必须换。
工程上最常见的一个误判,是把大模型推理当成"算力不够"。其实对十亿级以上模型,真正的瓶颈是权重搬不动。论文用LLaMA2-7B拆了一个账:单层全连接层包含三个连续的矩阵乘法,维度分别是4096×11008、11008×4096、4096×4096。单层参数量约2.03亿,32层加起来65亿参数,占了整体系数和计算量的85%以上。这65亿参数不可能全部放在片上SRAM里——单体CMOS芯片的片上存储最多百MB量级,所以权重必须放在DRAM或HBM里,推理时反复取回。
要满足每秒1万个令牌,相当于每秒要从存储里读出64TB的权重。这个数字怎么算的?权重总量65亿个参数,每个参数按FP16算2字节,一次推理每个令牌都要过一遍全部权重,那么单个令牌的数据搬运量就是65亿×2字节≈13GB,每秒1万令牌就是130TB/s。论文里的64TB/s可能是按稀疏度或者更低精度折算了,但量级完全一致。对比一下HBM3的理论带宽只有0.8GB/s,差了80倍。这个账算清楚,就明白为什么所有做AI芯片的公司都在喊存算一体。
2.2 算力存储比:一个决定架构选型的关键比值
论文里反复出现一个指标:算力存储比(Ops per Byte)。这个比值决定了计算单元和存储单元之间需要多大的带宽。对于传统以卷积神经网络为主的模型,比如ResNet-50,算力存储比大概是164×帧率(GOPS/kB量级),意味着每个字节取出来要做几百次运算,存储带宽的压力相对小。而大模型完全不同:LLaMA2的全连接层算力需求约68TOPS,存储需求约3.4GB,算力存储比只有每秒20Ops/Byte级别,差了近万倍。
传统交叉阵列存算一体架构的算力存储比也有上限,大约是时钟频率的2倍除以存储深度。也就是说,如果交叉阵列存储深度很深,算力上不去,正是大模型这种权重密集、单次计算量小的场景最不擅长的。论文给出的方案是"存边计算"(COMB,Computing on Memory Boundary),把乘加计算逻辑分布在片上权重缓冲区SRAM的边缘,而不是放进存储阵列内部。
做硬件选型时,这个比值值得反复算。假设你手里的存算一体宏单元存储深度是512行,工作频率200MHz,那么算力存储比就是2×200M/512≈0.78Ops/Byte。如果你要部署的模型算力存储比是0.05Ops/Byte,宏单元的算力就过剩;反过来,如果模型是1Ops/Byte,你就得增加读带宽或者减小存储深度。论文里的COMB架构就是冲着大模型这个低比值去的,把计算逻辑挪到SRAM边缘后,算力存储比可以做到时钟频率的2倍除以存储深度,同时权重可以预先加载、按输入通道方向切块展平塞进不同列。
2.3 存边计算架构COMB:把乘加逻辑放到SRAM边缘
COMB的结构一句话概括:乘法器放在SRAM位线旁边,读出来的权重直接在本地和输入激活做乘法累加,不用再把权重搬回计算单元。权重在计算开始前预先加载在COMB宏中,输入特征沿输入通道方向切块后展平存入不同列,输出通道方向的并行度靠多个COMB宏堆出来。这种布局的工程收益是:数据搬移量从"每层权重全搬一遍"降成"只有输入输出特征流动"。
这里有个初学者容易翻车的点:COMB不是存内计算,是存边计算。如果粗暴地把计算单元塞进存储单元的位线内部,SRAM的读稳定性和噪声容限会显著退化。COMB的折中做法是计算逻辑放在存储宏的边界,不破坏存储单元结构,代价是数据和计算单元之间依然有一段物理距离,只是从"几十毫米的芯片级互连"缩短成"几百微米的宏级互连"。论文里提到,近存计算架构中广泛使用的数据流映射方法完全可以运用在COMB宏中,说明它兼容已有的卷积和矩阵映射方案,不用推倒重来。
3. 存算一体集成芯片的落地形态:DRAM、SRAM、RRAM怎么选
3.1 DRAM存算:海力士AiM与三星LPDDR5-PIM的实测口径
存算一体不是一种技术,而是一类技术。论文把业界已有方案分成几档,第一档就是DRAM颗粒形态的存内计算。海力士AiM每颗DRAM芯粒集成0.5GB存储和512GFLOPS算力,三星LPDDR5-PIM峰值算力102.4GFLOPS。用NPU做对比的话,LPDDR5-PIM提升了4.5倍算力,省了72%功耗。
DRAM存算的优势是高密度、成本低,但工程上有个绕不开的硬伤:工艺专用性太强。DRAM工艺和CMOS逻辑工艺不兼容,而且DRAM需要定期刷新,读操作还会破坏存储电荷。你在街边跑一个推理任务,数据读着读着就要停下来刷新,这让控制逻辑变得极其痛苦。论文明确指出来,DRAM存算的高密度是诱人的,但它更适合做片外大容量存储粒,不适合做需要频繁随机访问的片上计算宏。
如果你从数据中心视角看,DRAM存算的价值在于它插在现有DIMM插槽就能用,不改主板、不换CPU。但代价是你要同时维护刷新窗口和计算窗口,时序上多了一堆条条框框。论文里提到DRAM存算颗粒方案时,重点是"带宽缓解",没有把它当作大模型推理的终极答案。
3.2 SRAM存算:4颗65nm芯粒2.5D集成
论文的重头戏是SRAM存算,原因很直白:SRAM和CMOS逻辑工艺完全兼容,不需要额外开发存储工艺。但SRAM也有两个天生劣势,一是单片面积大,单芯片最大SRAM在100MB量级,二是微缩比例远低于逻辑。所以论文给出的路径是"用小颗粒SRAM存算芯粒,用2.5D封装把它拼起来"。
具体做法是他们基于集成扇出(FanOut)工艺,把4颗65nm的SRAM存边计算芯粒集成为一体。每颗芯粒按12/14nm工艺估算时,计算电路面积约8mm²,存储面积约300mm²,算力10TOPS,存储容量200MB。这组数据暴露了一个现实:存储面积占了绝对大头,算力密度只有约0.0325TOPS/mm²。你指望靠单颗芯粒打天下不现实,必须靠多芯粒线性堆算力。
多芯粒集成有个隐藏问题:芯粒之间的互连带宽。论文很诚实地说,超过4颗芯粒时,映射方法尚需优化才能实现算力随芯粒数量线性增长。言下之意,4颗之前线性度还行,再往上,互连和调度就成了瓶颈。做系统设计时,别一口气堆8颗,先做4颗的验证,再谈扩展。
3.3 RRAM存算:1TnR阵列与三维堆叠
第三种是阻变存储器(RRAM),靠改变二端器件的阻值来存储信息。和DRAM比,RRAM非易失、读取功耗低;和SRAM比,RRAM存储密度接近DRAM,而且可以三维堆叠。论文里给的关键信息是"基于1TnR的RRAM存储器阵列通过三维堆叠技术,能实现接近DRAM的高密度存储"。
RRAM的实际工程坑在于阻值漂移和良率。阻值漂移会影响多比特存储精度,通常需要额外的校验和校准逻辑。良率问题意味着你流片回来的阵列里可能有坏点,需要在映射时做冗余设计。论文没有展开这些物理层面的坑,只把它定位为"存储颗粒形态的存边计算实现方案",说明它在能效和密度之间找了一个平衡点,适合做边缘侧的低功耗大模型推理。
我的建议是:如果你做研究或早期架构探索,优先看RRAM和SRAM的组合,DRAM存算适合现有数据中心的存量改造,RRAM适合新架构设计,SRAM是眼下最容易流片验证的一条路。
4. 轻量化-存内压缩协同设计:稀疏网络映射不掉进的坑
4.1 剪枝参数怎么定:子组32、稀疏率75%
稀疏化的直接动机是减少计算和存储。但怎么剪是有讲究的。论文做了两组任务(Enwik-8和Text-8)、12层注意力模型上的实验,找到一个关键拐点:剪枝子组大小为32、稀疏率75%时,网络性能保持不变。这里的"子组大小为32"意思是权重向量被划分成固定长度的子组,每个子组内按预定义稀疏度统一修剪。选32是因为它在GPU和NPU上对齐了SIMD宽度,方便后续硬件实现。
稀疏率75%意味着每个子组32个权重里有24个被剪掉,只保留8个。这个比例不是拍脑袋出来的,论文说全局修剪下
本文还有配套的精品资源,点击获取