HotChips 2026 GPU & CPU Session

HotChips 2026 GPU & CPU Session

聚合解析姬 | @ParseHubot

TL;DR

今年HotChips 的 GPU Session 包括了 Nvidia Rubin , AMD MI400 以及 Intel Crescent Island. 对于 Rubin 没什么新的东西, 在以前的一篇文章《Nvidia Rubin架构分析预览》 完全覆盖了, 甚至比这次的 Session 讲的更详细, 对于 Intel 除了可以挂 480GB 显存, 好像整个 session 都在讲废话... 好吧, 那就详细看看 AMD 吧... 对于 AMD 仅限于今天这两个 Session 吧, 反正我也拿不到 A 卡玩, 就不仔细研究了...不过明天还有一个 AI Session 还有一些好玩的加速器可以看看...

对于 CPU Session , 家用的 CPU 就不谈了, 反正最近 DDR5 贵得完全没有升级电脑的想法, 公司领了一台 Mac Mini M4 Pro 的机器用的也很开心了... 然后比较奇葩的是 IBM 同时支持了两套 ISA, 为了更好的兼容 arm 生态...

剩下就是 Nvidia 在吹 Vera 要做 Agentic CPU, 反正 Grace 的 baseline 足够低就可以使劲吹... 另外天天对比的 traditional CPU 不知道说的是啥, 好像隔壁 AMD Venice 64 Core 和 96 Core 的单核性能都比 Vera 高, 而 256 Core 的 Rack-Level Performance 是 Vera 的 3.3 倍, 我真不明白 Vera 的价值是什么, 或许对它的期待是不拖累 Rubin 并且 BlueField-4 的性能别受影响就行了... 而 Intel 的 DMR 挺有趣的, 而 ARM 的session 感觉就像一个销售在讲的小软文, 也不想看, 反正这些 CPU 等拿到手了再来详细写也不晚....

1. AMD MI400 芯片架构

AMD 这次有两个session, 第一个是讲芯片架构, 我们将在第二章详细介绍第二个 Session 的系统架构... 总体来看, MI400 系列也有了完整的 ScaleUP 机柜, 整个 Rack 也是72颗 GPU, 但是它是一个双宽的机柜:

单个 GPU Tray 内部, 有 1.8TB /s 的 UALink over Ethernet ScaleUP网络, 每个GPU 和 CPU 之间也有 128 GB/s 的 IF 接口, 每个 GPU 并没有通过PCIe连接NIC, 而是使用了UALink 连接, 单卡支持 3x 800Gbps NIC 的 ScaleOut 连接, 另外 AMD 也很实在, 并没有像 Jensen-Math 那样很多东西都算双向带宽, 而是实实在在的标注了 per direction.

然后整个 MI455X GPU 也是采用了 chiplet 架构,计算, 内存, 缓存, IO 按功能切分到专用chiplet, 每个功能独立优化性能, 功耗, 可制造性. 它有 8 个 独立的计算 Die, 累计支持 12 颗 HBM4, 比 Rubin 还多 50%, 然后对外的 IO Die 也是独立的

四种chiplet列表如下, N2 只用在 XCD 上: 2nm GAA 晶圆极贵且良率仍在爬坡, 只把最能吃到密度收益的逻辑 ( 计算阵列 ) 放上去, 把面积大, 性能敏感度低的部分 ( SRAM 阵列, PHY, IO ) 留在 N3P.

| 晶粒 | 数量 | 工艺 | 职责 | | --- | --- | --- | --- | | XCD (Accelerator Complex Die) | 8 | N2 | 256 个 WGP | | FCD (Fabric and Cache Die) | 2 | N3P | 192 通道 HBM4 接口 + 192 MB Global L2 | | IOD (I/O Die) | 2 | N3P | 2x PCIe Gen6 或 3x AI-NIC (UALink); Infinity Fabric 256 GB/s; 72 条 UALoE lane, 3.6 TB/s | | HBM4 | 12 | - | 432 GB @ 23.3 TB/s |

整个芯片封装技术来看, XCD使用了3D Hybrid Bonding, 并且使用了 CoWoS-L 封装.

整个 SoC 结构如下:

其中, 每个 XCD 物理上有 34 个 WGP, 只有 32 个是活跃的. 在 N2 这种新工艺节点上为大面积规整阵列留 6% 的修复冗余, 是非常合理的良率工程. 并且它不会像 Nvidia 那种, Blackwell对外宣称 160 个 SM, 实际上 B300 只有148个...

注意 UALoE 链路是从 Infinity Fabric 层引出的, 不是从 L2 引出的. 这意味着远端 GPU 的访问不经过本地 L2, 而是直接进 fabric. 结合后续第13页的 topology-aware DMA, 可以推断远端访问的路径是: 本地 WGP -> LDS/TDM -> ( DMA 引擎 ) -> Infinity Fabric -> UALoE -> 远端 fabric -> 远端 L2/HBM. 远端流量可以不污染本地 L2.

然后在 MI300 被人诟病的 L2 结构也统一成全局的 L2:

需要注意的是, 两代的 VGPR 都写着 128 KB, 怎么会是 2 倍? 答案在 Wave32. MI355X 的 SIMD 执行 Wave64, 128 KB 寄存器文件被 64 个线程分, 每线程 2 KB ( = 512 个 32-bit 寄存器 ). MI455X 为 Wave32, 同样 128 KB 被 32 个线程分, 每线程 4 KB ( = 1024 个寄存器 ). 所以 "per SIMD" 实际是 "per thread within a SIMD": 寄存器文件总容量不变, 每线程可用寄存器翻倍.

WGP 和 Nvidia SM 对比如下:

另外查阅了一下 whitepaper, 单个 wave 的可寻址寄存器从 MI355X 的每线程 256 个扩到 MI455X 的每线程 1024 个, 是 4 倍. CDNA 3/4 上 512 个物理寄存器里有一半是 AGPR (Accumulation GPR), 架构可寻址的 VGPR 只有 256 个. CDNA 5 取消了 VGPR/AGPR 的二分, 统一成 1024 个可直接寻址的寄存器. 对手写 kernel 的人来说这是本代最实在的改进之一: 大 tile 的 MFMA 累加器不再需要在 VGPR 和 AGPR 之间倒腾.

但是和Nvidia 的区别是, 它没有独立的TMEM, 对比如下:

对于熟悉 Nvidia SMEM/L1 的开发者来看, AMD在这一代也有了变化, MI355X 是 "160 KB LDS" 和 "32 KB L1 Data Cache" 两个独立方块, MI455X 是一个合并的 "384 KB Vector Data / LDS" 方块. 在whitepaper中也证实, LDS SRAM 同时充当 WGP 数据缓存 ( 配一份独立的 tag 存储 ). 也就是同一块 SRAM 阵列被复用为 scratchpad 和 cache, 由 tag 决定哪部分按缓存语义工作.

"up to 4x BW amplification"这条指向的是那个新出现的 Broadcast Arbitrator 方块. 它是 L2 multicast 的落地硬件: 一次 L2 读请求可以同时把数据返回给多个 WGP. GEMM 里同一份权重要被多个 tile 读, 例如 Flash Attention 里同一份 K/V block 可能要被多个 query block 读, 这些都是天然的多播场景, 也算是补齐了 Nvidia 类似于 TMA multicast 的实现.

整个计算 Die 的增强如下, 更高的IPC 然后新增MXFP8/6/4, 然后SFU这类attention需要计算 softmax 和其它激活函数的速度也提高了. 并且累计256 WGP 架构, 每 WGP 吞吐更高.

另外在数据路径上, 类似于TMA的功能 TDM 也加上了, 类似于 Nvidia CGA 的 thread block cluster 能力也补上了.

其中 TDM 让数据直接从 DRAM 落到 LDS, 由描述符驱动, 异步执行:

  • TDM 理解最多 5 维的张量 tiling 方案
  • 传输由从 SGPR 加载的描述符定义
  • 传输会做边界检查 ( 安全性 )
  • 支持多播加载
  • 每个 WGP 有自己独立的 TDM 单元

这套语义和 NVIDIA Hopper 的 TMA (Tensor Memory Accelerator) 几乎一一对应: 描述符驱动, 多维 tile, 异步, 直达 shared memory.

另外 LDSBarrier 和 Nvidia 的 MBarrier 基本也一直:

Work group Cluster 是 CUDA "thread block cluster" 的对等物: 多个 WGP 组成一个可以互相访问 LDS, 共享 barrier 的更大调度单位. 配合 L2 multicast, 一个 cluster 里的多个 WGP 可以协作分摊同一份 K/V tile 的加载.

"wave-specialized kernels that are becoming dominant" wave specialization 指的是在一个 workgroup 内部让不同的 wave 承担不同角色 ( 例如 producer wave 专做 TDM 搬运, consumer wave 专做 MFMA ), 用软件流水把访存和计算重叠. 这正是 FlashAttention-3, CUTLASS 3.x 的 warp-specialized 内核, 以及现代 GEMM 的主流写法. AMD 在架构 PPT 里直接承认这是主流写法, 并且四项创新 ( TDM 异步 + cluster + named barrier + multicast ) 全部是为它服务的, split/named barrier 尤其关键, 因为 wave specialization 需要 producer 和 consumer 之间做细粒度的点对点同步, 传统的全局 s_barrier 会把所有 wave 卡在一起, 流水就废了.

和Nvidia Rubin做了一个对比:

Lower Dispatch Latency 类似于 Nvidia 的 PDL , 降低了 Kernel 之间的延迟开销?

然后详细介绍了一下 ScaleUP 上的 DMA engine, 类似于Nvidia 的 copy engine.

  • Topology-Aware DMA Engines 使得 DMA 流量自动亲和到 UALoE 链路, 软件无需感知数据放置
  • Overlap Compute and Communication 大概就是说 DMA 可以移步执行, 搬数据时 WGP 继续执行 AI kernel
  • Efficient Remote Memory Access 指GPU 之间跨 UALoE fabric 直接传输
  • Scales Across 72 GPUs表示DMA 自动把流量分散到可用 fabric 资源

最重要的是 Reduces Fabric Congestion, 前端/后端 DMA 架构智能分配流量需要详细展开一下, AMD 官方白皮书给出了完整机制, 原文引如下:

The AMD Instinct MI455X GPU introduces a split DMA architecture. This architecture solves a critical problem with DMA in complex shared-memory systems by automatically associating traffic with the optimal link. Front-end units receive transfer requests from software, split the requests into pieces, and distribute the pieces across the back-end units in the UALoE interfaces. The back-end units then move data between the GPUs over the UALoE links. This means communication libraries do not have to be aware of the UALoE topology. Additional back-end units are also provided to move data within the memory subsystem of a single GPU.

硬件自动把流量绑到最优链路, 它是"Topology-Aware DMA Engines" 的实现基础. 前端单元从软件接收传输请求, 把请求切分成小块, 分发到位于 UALoE 接口内部的后端单元, 由后端实际跨卡搬数据 , 另有额外后端单元负责单卡内部存储子系统的搬运. 最关键的一句是 communication libraries do not have to be aware of the UALoE topology. 这句话把设计意图说得很明确: split DMA 的目标对象不是应用开发者, 而是 RCCL 这类通信库的实现者.为什么这对通信库重要: 在 72 卡单一 scale-up 域里, 一个 all-to-all 或 all-gather 的流量要分配到 36 条链路上. 传统做法是通信库自己维护拓扑表, 手工调度, 这带来两个问题: 一是库要为每种拓扑写一套逻辑, 二是库看不到瞬时拥塞, 静态划分必然有热点. split DMA 把这件事下沉到硬件: 通信库只提交 "把这段内存搬到那个 GPU", 硬件自己决定走哪些链路.

然后 AMD 开始介绍了一下软件生态, 首先就是 AI 驱动的Kernel开发:

最后给出了一个性能对比:

渣注

总体来看, MI455 的架构升级使得它的微架构越来越像 Nvidia 了, 基本上大多数编程方式对齐了 Hopper. 但是它没有像 Blackwell 那样引入 TMEM. 然而我们注意到它的寄存器数量更多, 这里未来是不是有寄存器上的压力后续要实际测试才能知道. 整体来看, 伴随着 FCD 提供的大的缓存和 3D Hybrid Bonded XCD, 并且 L2 Cache 结构的优化和组播支持, 使得 AMD 过去的一些编程痛点都得到了很好的解决. 也难怪 Anthropic 要用 AMD 建 2GW 的算力...

2. AMD MI400 系统架构

整体来看, AMD 和 Nvidia 一样全栈的能力基本上具备了:

特别还强调了 CPU / GPU / NIC, 但是似乎缺少一颗 Switch 芯片.. 当年抢在 Marvell 前把 Innovium 买下来多好啊... 想起6年前的一篇文章 《苏妈会买Innovium么?》. 说实话 Innovium 是我非常喜欢的一家交换芯片公司...否则也不会像现在这样 ScaleUP要用 BRCM 的以太网芯片先撑着了...

整个ScaleUP 采用一层交换结构:

整个rack 如下, 也是采用CableTray的结构和液冷.

Switch Tray的结构如下, 每个 Tray 有两颗 TH6 ?

UALoE 也是类似于Nvidia的方案, 在两张卡之间进行内存注册:

然后完整的支持 LD/ST

整个 Transport 如下, 不过我还是挺期待未来 pure 的 UALink Switch..

然后整机也可以切分成多个 Virtual Pod , 基本功能和 NVL72也对齐了.

针对交换机失效等问题也做了保护:

最后他们谈论了一下收购 Pensando 构建的 AI NIC, 当前支持 800Gbps 和 NVidia CX9基本也对齐了.

然后整个协议除了标准的RoCEv2, 也支持了 UEC(虽然烂尾了...) 以及 Open AI 提出的 MRC, 但是整个网卡的微架构还是延续Pensando 的 P4, 具体可以参考 《包处理的艺术(4)-低延迟智能网卡设计》

总体来看, 我个人并不喜欢这样的微架构, P4 根本就不适合处理 Stateful 的流量, MPLS几个人即便是在Cisco也没有很全面的 stateful packet处理的经验, 更多的是一些交换机芯片的经验. 然后这里他们强调了一下 MRC 的多路径能力和SACK能力, 具体可以参考《谈谈OpenAI 发布的MRC》, 好像证明他们可以完全定制可编程的各种RDMA传输协议?

眼花缭乱的拥塞控制, 一群都是 RoCE 的朋友....

直白的说, 整个设计思路是错的, 我们可以直接看结果:

MRC单 QP 只能到400Gbps, 在16GB 消息还有些下降. 然后强调 SACK 很重要, 在1%的丢包下, MRC最大的性能也只有160Gbps... 你需要注意你是一个 800Gbps的网卡啊... 所以我说 MRC 的 SACK 设计有问题吧.... 整个协议还赶不上我三年前的水平...建议你们好好读读《“漫”谈RDMA现代化》, 以及整个专题 《RDMA》.

一个很直白的说法, 当一个传输协议有了 SACK 有了 Window based CC....它是UDP还是TCP大概率只是一个协议号的区别了.... 而我三年前就干干净净的全解决了, 现在还拿一个1%丢包只能跑到 160Gbps 的东西出来宣传...

回到我一直以来对大家提的要求, 5%丢包情况下做到90% goodput 才能号称自己做好了SACK...

真不知道这几年做ScaleOut网络的人(包括 Nvidia) 在瞎折腾啥... 无趣极了...

Report Page