第三章 架构设计壁垒(下):存储层次与带宽优化、互联架构

好,咱们接着聊架构设计。上一章我讲了计算单元和指令集,这一章咱们聚焦在数据怎么喂进去、怎么在芯片内部跑起来。说白了,AI芯片的瓶颈往往不在算力,而在数据搬运。我见过太多项目,理论算力漂亮得很,一跑实际模型,性能直接腰斩。问题出在哪?存储和互联。

3.1 存储层次:从HBM到片上SRAM

先说说存储层次。AI芯片的存储系统,本质上是一个妥协的艺术。你想想看,SRAM快但贵,DRAM便宜但慢,HBM是个折中方案。我习惯把存储层次比作一个金字塔——越往上越快,但容量越小。

核心观点:AI芯片的性能,很大程度上取决于数据能否在正确的时间出现在正确的位置。存储层次设计的目标,就是让计算单元尽可能少地去访问慢速存储。

3.1.1 HBM:高带宽存储的王者

HBM(High Bandwidth Memory)现在几乎是高端AI芯片的标配。为什么?因为它通过硅中介层(Interposer)把多个DRAM die堆叠在一起,用TSV(硅通孔)垂直互联。带宽能做到1TB/s以上,是传统GDDR的几倍。

我在项目中遇到过一个问题:HBM的功耗其实不低。很多人只盯着带宽看,忽略了HBM本身要消耗几十瓦。你想想看,一个300W的芯片,HBM可能就占了50W。所以设计时一定要算好功耗预算。

存储类型 带宽(典型值) 容量 功耗 延迟
HBM2e ~1.6 TB/s 8-16 GB ~40W ~100ns
GDDR6 ~500 GB/s 8-16 GB ~20W ~200ns
SRAM(片上) ~10 TB/s 几十MB ~10W ~1ns

避坑指南:我曾经在选型时只看HBM的峰值带宽,忽略了实际访问模式。HBM的带宽利用率其实很依赖访问的局部性。如果你的数据访问是随机的,实际带宽可能只有峰值的30%。所以,设计时要考虑数据布局。

3.1.2 Chiplet:用互联打破存储墙

Chiplet说白了就是把一个大芯片拆成多个小芯片,然后用先进封装连起来。为什么这么做?因为单芯片的存储带宽受限于封装引脚数。你想想看,一个芯片的引脚是有限的,HBM的接口要占掉几百个引脚。用Chiplet,你可以把HBM控制器放在单独的die上,甚至把SRAM也做成独立的chiplet。

我个人习惯把Chiplet看作一种“分布式存储”方案。每个chiplet有自己的本地存储,通过Die-to-Die接口(比如UCIe、BoW)互联。这样做的优势是:

  • 带宽可扩展:加一个chiplet就多一份带宽
  • 良率提升:小芯片的良率比大芯片高得多
  • 异构集成:可以把不同工艺的存储和计算die混在一起

但要注意,Chiplet的互联延迟是个问题。Die-to-Die接口的延迟通常在几纳秒到几十纳秒,比片内互联慢一个数量级。所以,数据局部性设计变得更重要。

3.1.3 存算一体:颠覆性的思路

存算一体(Compute-in-Memory, CIM)是个很有意思的方向。它的核心思想是:既然数据搬运是瓶颈,那干脆在存储单元里做计算。比如,在SRAM阵列里做矩阵乘法,或者用ReRAM做模拟计算。

我记得几年前在一个学术会议上看到存算一体的demo,当时觉得这东西离商用还远。但现在,已经有几家创业公司开始推产品了。不过,存算一体也有自己的问题:

  • 精度受限:模拟计算的精度很难做到8bit以上
  • 灵活性差:只能做特定类型的计算(比如矩阵乘)
  • 工艺兼容性:ReRAM等新型存储器件还没完全成熟

注意:存算一体不是万能的。它适合推理场景,尤其是低精度推理。但训练场景下,因为需要高精度和频繁的权重更新,存算一体目前还不太适用。我建议大家在评估时,先搞清楚自己的应用场景。

3.2 互联架构:芯片的神经系统

互联架构决定了数据怎么在芯片内部流动。一个好的互联设计,能让计算单元忙起来,而不是等着数据。我习惯把互联比作城市的交通系统——路修得再好,如果红绿灯设计不合理,照样堵车。

3.2.1 NoC:片上网络的演进

NoC(Network-on-Chip)现在几乎是所有大型AI芯片的标配。为什么?因为传统的总线架构在几十个核的情况下就撑不住了。NoC用路由器和链路组成网络,每个计算单元通过网络接口(NIC)接入。

我参与过一个项目,最初用的是环形NoC,结果发现带宽利用率很低。后来改成Mesh拓扑,性能提升了30%。为什么会这样?因为AI计算的数据流往往是多维的,环形拓扑在维度扩展上有限制。

常见的NoC拓扑包括:

  • Mesh:二维网格,扩展性好,但延迟随跳数增加
  • Torus:环形Mesh,减少边缘延迟,但布线复杂
  • Tree:树形结构,适合广播场景,但根节点容易成为瓶颈
  • Butterfly:蝶形网络,延迟低,但路由算法复杂

设计要点:NoC的设计要关注三个指标:带宽、延迟、功耗。我建议在项目初期就做NoC的仿真,不要等到RTL写完才发现带宽不够。我曾经吃过这个亏,后来改架构改得想哭。

3.2.2 NVLink:NVIDIA的杀手锏

NVLink是NVIDIA的私有互联技术,用于连接GPU和GPU,或者GPU和CPU。它的特点是高带宽、低延迟,而且支持GPU间的直接内存访问(GPU Direct)。

NVLink的物理层用的是高速SerDes,每对差分信号能跑几十Gbps。NVLink 4.0的带宽已经达到900 GB/s(双向),比PCIe 5.0的128 GB/s高得多。

但NVLink是封闭的,只有NVIDIA自己的产品能用。这其实是个很大的壁垒。你想想看,如果一家AI芯片公司想用NVLink,对不起,没门。所以,很多公司开始推自己的互联标准,比如AMD的Infinity Fabric、Intel的CXL。

3.2.3 InfiniBand:数据中心互联的王者

InfiniBand主要用于数据中心,连接服务器节点。它的带宽和延迟都比以太网好,而且支持RDMA(远程直接内存访问)。在AI训练集群中,InfiniBand几乎是标配。

我记得有一次帮客户做集群性能分析,发现网络延迟占了训练时间的30%。后来换成InfiniBand,延迟从几十微秒降到几微秒,训练时间直接缩短了20%。

InfiniBand的关键技术包括:

  • RDMA:绕过操作系统,直接访问远程内存
  • 自适应路由:动态选择最优路径,避免拥塞
  • 拥塞控制:基于ECN(显式拥塞通知)的流量控制

个人经验:InfiniBand的配置其实挺复杂的。我建议在部署前先做网络拓扑规划,避免出现“胖树”结构中的过度订阅。另外,注意交换机端口的散热,我曾经见过因为散热不足导致交换机降速的案例。

3.3 知识体系总览

下面这张图是我自己整理的,把存储层次和互联架构的核心知识点串起来了。你可以把它当作一个快速参考。

AI芯片架构设计壁垒:存储与互联 存储层次 HBM(高带宽) Chiplet(分布式) 存算一体(颠覆) SRAM(片上) 互联架构 NoC(片上网络) NVLink(私有) InfiniBand(集群) PCIe/CXL(通用) 关键挑战与设计要点 • 带宽利用率:HBM的实际带宽受访问模式影响,需优化数据布局 • 延迟控制:Chiplet互联延迟比片内慢10倍,需考虑数据局部性 • 功耗平衡:存储系统功耗占比可达30%,需在带宽和功耗间取舍 • 扩展性:NoC拓扑选择影响多核扩展,Mesh适合通用场景 • 生态壁垒:NVLink等私有协议限制互联选择,需考虑兼容性

嗯,这一章的内容就到这里。存储和互联是AI芯片设计中绕不开的两个坎。我个人觉得,未来几年最大的机会在Chiplet和存算一体上——前者能解决带宽扩展问题,后者能从根本上减少数据搬运。但具体怎么选,还得看你的应用场景和团队能力。

总结一下:存储层次设计要关注带宽、容量、功耗的平衡;互联架构设计要关注拓扑、延迟、扩展性。两者结合,才能让AI芯片真正发挥出算力。

专注资料整理