3. 核心指标解析(下):内存带宽(HBM/GDDR)、片上SRAM、互联带宽(PCIe/NVLink/CXL)

好,咱们接着聊。上一节我们把算力、精度和功耗这几个“明面儿上”的指标掰扯清楚了。这一节,咱们得钻到芯片的“血管”和“骨架”里看看。说白了,就是数据怎么流、流多快、卡不卡脖子。

我个人习惯,看一款AI芯片,先不看它吹的算力有多高,先看它的存储和互联。为什么?你想想看,算力再强,数据喂不进去,或者算到一半卡在搬数据上,那不就是个“算力空转”的摆设吗?我在项目里见过太多这种“头重脚轻”的设计了。

3.1 内存带宽:HBM vs GDDR

内存带宽,就是芯片从外部“大仓库”里搬数据的速率。单位是GB/s。这个指标直接决定了你的模型能不能“吃饱”。

目前主流的两大流派:HBM(高带宽内存)和GDDR(图形双倍数据率内存)。

特性 HBM (HBM2e / HBM3) GDDR (GDDR6 / GDDR6X)
带宽 极高(单颗可达 1.6 TB/s+) 高(单颗约 64 GB/s,多颗并联)
功耗 较低(每比特传输功耗低) 较高(尤其是GDDR6X)
容量 单颗较小(2GB-16GB) 单颗较大(8GB-32GB)
成本 极高(2.5D/3D封装,工艺复杂) 较低(成熟封装,量大)
典型应用 高端训练卡(A100, H100, MI300X) 中低端训练/推理卡(RTX 4090, L40S)
核心观点: 别只看峰值带宽,要看“带宽利用率”。HBM虽然贵,但它通过2.5D封装紧贴着计算核心,走线短、功耗低,能跑出很高的实际利用率。GDDR虽然便宜,但走线长,多颗并联时信号同步是个大问题,实际利用率往往打折扣。

我记得有一次评估一款国产推理卡,标称带宽是800GB/s,用的是8颗GDDR6。结果一跑大模型,实际吞吐量只有理论值的60%。一查,原来是PCB走线太长,加上内存控制器调度效率低,数据搬移成了瓶颈。所以,选型时,一定要看厂商提供的“有效带宽”测试数据,而不是只看理论峰值。

3.2 片上SRAM:真正的“黄金”资源

如果说HBM是“大仓库”,那片上SRAM就是“工作台”。

SRAM速度极快(几个时钟周期就能访问),但容量小、成本高。在AI芯片里,它通常被用作缓存(Cache)或共享内存(Shared Memory)。

为什么它这么重要?因为AI计算的核心是“数据复用”。一个权重数据,可能被成千上万个乘加单元同时使用。如果每次用都去HBM里取,那带宽再高也扛不住。所以,好的架构设计,就是尽量把高频复用的数据“摁”在SRAM里。

避坑指南: 我曾经评估过一款芯片,SRAM容量标得很大(比如100MB),但实际可编程使用的“显式SRAM”只有一小部分,大部分是硬件自动管理的Cache。对于需要精细控制数据流的高性能计算场景,这种“黑盒”Cache会让你很头疼。选型时,一定要问清楚:有多少SRAM是软件可编程的?

举个例子,NVIDIA的Tensor Core之所以强,很大程度上依赖于它那庞大的、可编程的Shared Memory。你可以手动把输入特征图和权重从HBM搬到Shared Memory里,然后让Tensor Core在SRAM里疯狂计算,最后再把结果写回HBM。这个“搬-算-搬”的流水线,就是所谓的“Tiling”技术。

// 伪代码:展示Tiling思想
// 假设我们要计算一个大的矩阵乘法 C = A * B
// A和B都在HBM里,C也要写回HBM

for (int i = 0; i < M; i += TILE_SIZE) {
    for (int j = 0; j < N; j += TILE_SIZE) {
        // 1. 从HBM搬一块A到SRAM (A_tile)
        load_to_sram(A_tile, A, i, j);
        // 2. 从HBM搬一块B到SRAM (B_tile)
        load_to_sram(B_tile, B, i, j);
        // 3. 在SRAM里计算 C_tile = A_tile * B_tile
        compute_on_sram(C_tile, A_tile, B_tile);
        // 4. 把结果C_tile写回HBM
        store_to_hbm(C, C_tile, i, j);
    }
}

你看,这个循环里,90%的计算都在SRAM里完成,只有10%的时间在搬数据。这就是SRAM的威力。

3.3 互联带宽:PCIe vs NVLink vs CXL

单卡再强,也架不住模型太大。当我们需要多卡并行,或者CPU-GPU异构计算时,互联带宽就成了新的瓶颈。

目前主流的互联技术有三类:

  • PCIe (Peripheral Component Interconnect Express): 通用标准,几乎所有设备都支持。目前主流是PCIe 4.0 x16(单向约32GB/s)和PCIe 5.0 x16(单向约64GB/s)。优点是兼容性好,缺点是延迟高、带宽相对低。
  • NVLink (NVIDIA): NVIDIA的私有互联技术。带宽极高(H100的NVLink 4.0单向可达450GB/s),延迟极低。专门为GPU-GPU通信设计,支持复杂的拓扑结构(如NVSwitch)。
  • CXL (Compute Express Link): 基于PCIe物理层的新一代互联协议。它最大的特点是“内存一致性”。说白了,就是让CPU和加速器(如GPU、FPGA)可以共享同一块内存地址空间,不用再手动搬数据了。
注意: 别把PCIe和NVLink/CXL混为一谈。PCIe是“总线”,NVLink是“点对点直连”,CXL是“协议”。它们解决的问题不同。PCIe适合通用连接,NVLink适合GPU集群内部高速通信,CXL适合异构内存池化。

我个人经验,在做多卡训练集群选型时,NVLink的带宽利用率远高于PCIe。为什么?因为PCIe通信需要经过CPU和系统内存,路径长、延迟大。而NVLink是GPU直连,路径短、延迟小。我记得有一次用8张A100跑一个千亿参数模型,用PCIe 4.0互联时,通信开销占了总时间的40%。换成NVLink后,通信开销降到了10%以下。这个差距,直接决定了训练效率。

至于CXL,它是个很有前景的技术。特别是对于“内存密集型”应用,比如图神经网络或推荐系统。你可以把多个加速器的内存通过CXL池化成一个巨大的“共享内存池”,每个加速器都能直接访问。这能大大简化编程模型。不过,目前CXL生态还在早期,硬件支持还不够成熟。我建议可以关注,但短期内不要作为主力选型依据。

3.4 一张图看懂核心指标关系

说了这么多,咱们用一张图来总结一下这三个指标在AI芯片中的位置和关系。

AI芯片核心存储与互联指标关系图 计算核心 (Cores) 算力、精度 片上SRAM (工作台) 容量、可编程性、延迟 外部内存 (HBM/GDDR) 带宽、容量、功耗 互联 (PCIe/NVLink/CXL) 带宽、延迟、拓扑 其他计算卡 / 主机 核心逻辑:数据从外部内存 -> 片上SRAM -> 计算核心,互联负责多卡/异构通信

这张图很直观。你看,数据流是分层的。最上层是计算核心,中间层是SRAM工作台,最下层是外部内存和互联。每一层的带宽和延迟都差一个数量级。选型时,你要确保这三层之间没有明显的“短板”。

举个例子,如果你选了一款算力超强的芯片,但SRAM很小,那它只能频繁地去HBM里取数据,导致计算单元“饿死”。反过来,如果你SRAM很大,但HBM带宽很低,那数据从HBM搬到SRAM的速度跟不上计算速度,同样会饿死。这就是所谓的“木桶效应”。

总结一下选型要点:
  • 看带宽利用率: 别只看HBM/GDDR的理论峰值,要看实际跑模型时的有效带宽。
  • 看SRAM可编程性: 对于需要精细优化性能的场景,可编程SRAM比硬件Cache更重要。
  • 看互联拓扑: 多卡训练时,NVLink的“全互联”拓扑远优于PCIe的“树形”拓扑。
  • 看CXL生态: 如果做内存池化或异构计算,可以关注CXL,但别急着当主力。

嗯,这一节内容不少。核心就是一句话:AI芯片的性能,不只看算力,更看数据搬运的效率。 内存带宽、片上SRAM、互联带宽,这三者构成了数据搬运的“高速公路”。路修不好,车再好也跑不快。

希望这些实战经验,能帮你在选型时少走弯路。


专注资料整理