Synth Daily

AI 芯片架构

这股AI芯片架构的浪潮源于一个共识:通用CPU性能增长放缓,行业需要为人工智能这类特定领域设计专用架构。这些新架构,如GPU、TPU及其他专用芯片,其核心设计理念各不相同,分别在可编程性、计算效率和扩展方式上做出取舍。有的选择打造像瑞士军刀一样灵活的通用并行处理器(如NVIDIA GPU),有的则专注于极致的矩阵运算效率(如Google TPU),还有的则采用激进的晶圆级设计(Cerebras)或追求完全确定的执行时间(Groq)。最终,每种架构都在性能、成本和能效之间找到了自己独特的平衡点,共同构成了当前“百花齐放”的AI计算格局。

AI计算的核心问题

AI模型,尤其是Transformer模型,其计算本质上是一系列大规模的矩阵乘法,中间穿插着一些逐元素操作。无论是模型训练、提示词处理(prefill)还是逐词生成(decode),核心挑战始终是如何高效地将海量数据(权重和激活值)喂给计算单元。这个问题被称为“内存墙”:计算单元的处理速度呈指数级增长,而内存带宽的增长却远远落后。

解决数据移动的游戏,就是AI芯片架构的核心。理解一个芯片,归根结底要回答四个问题:数据存在哪里?如何移动到计算单元?计算单元长什么样?以及芯片之间如何大规模通信?

不同的AI工作负载对芯片的要求也不同:

  • 训练 (Training) 和提示词处理 (Prefill): 这两种场景都处理大批量数据,计算任务是大型矩阵与矩阵的乘法(GEMM),计算密集度高。
  • 解码 (Decode): 这是自回归的逐词生成过程,每次只处理一个词,计算任务变为矩阵与向量的乘法(GEMV),计算强度急剧下降,成为一个带宽密集型问题。

各种架构都在用自己的方式解决这个“数据移动”的游戏。

NVIDIA GPU

NVIDIA GPU的理念是打造一个大规模并行、可编程的处理器。通过其软件平台 CUDA,开发者可以利用数千个线程来运行各种可并行的计算任务,从模型训练到图形渲染,再到科学计算。每一代GPU都在可编程的“流式多处理器”(SM)上增加新的硬件加速功能,但底层的编程模型保持不变。

  • 核心赌注 1:可编程性。 AI工作负载是不断变化的,所以保持芯片的可编程性至关重要,让开发者能用CUDA解决新问题。
  • 核心赌注 2:用大规模多线程隐藏延迟。 数据访问延迟是不可预测的,所以通过让硬件调度器在海量待命线程中随时切换,来掩盖等待时间。
  • 核心赌注 3:异步内存层次结构。 将内存管理的一部分控制权交给程序员,通过TMA(张量内存加速器)等异步机制,让数据加载和计算可以并行进行,实现软件层面的流水线。

架构与计算

一个NVIDIA GPU由上百个被称为流式多处理器 (SM) 的核心组成。每个SM内部又包含多个计算单元:

  • CUDA Cores: 负责处理所有非矩阵乘法的计算,如激活函数、归一化等。
  • Tensor Cores: 专门用于执行矩阵乘加运算(D = A * B + C),贡献了绝大部分的AI算力。从Hopper架构开始,Tensor Core的操作变得异步,允许线程在发出矩阵计算指令后继续执行其他任务(如加载下一个数据块),极大地提升了类似FlashAttention这类内核的效率。

内存与数据移动

GPU拥有一个深度的内存层次结构:从片外的HBM高带宽内存,到片上的L2缓存,再到每个SM内部的L1缓存/共享内存(SMEM),以及最新的张量内存(TMEM)。数据移动的方式也越来越高效:

  • Ampere架构 (A100): 引入cp.async指令,允许数据从HBM异步复制到SMEM,无需占用线程的寄存器。
  • Hopper架构 (H100): 引入TMA(张量内存加速器),一个专用的DMA引擎。线程只需提交一个数据块的描述,TMA就能在后台完成所有地址计算和数据搬运,彻底解放了计算线程。

扩展方式

  • 向上扩展 (Scale-up): 通过 NVLinkNVSwitch 将多达72个GPU(在NVL72系统中)连接成一个具有统一内存地址空间的“超级GPU”。任何GPU都可以直接读写其他GPU的内存,延迟极低。
  • 向外扩展 (Scale-out): 通过 InfiniBand 或以太网将多个“超级GPU”节点连接成一个大规模集群。这种连接的带宽较低,延迟较高,用于数据并行或模型流水线并行。

软件生态

CUDA是NVIDIA最深的护城河。它不仅仅是一个编程语言,更是一个历经近二十年积累的庞大生态系统,包含了无数第三方开发的库、工具和优化内核。开发者对CUDA的熟悉以及NVIDIA嵌入到各大AI实验室的工程师支持,使得切换到其他平台的成本异常高昂。

Google TPU

TPU(张量处理单元)的设计哲学恰好与GPU相反:它不是一个通用的并行处理器,而是一个为矩阵乘法而生的专用机器。TPU放弃了硬件调度器、缓存和线程等通用组件,将所有调度任务都交给 XLA编译器 在运行前完成。省下的芯片面积全部用于堆砌更多的计算单元。

  • 核心赌注 1:脉动阵列 (Systolic Array)。 矩阵乘法是核心,所以用硬件脉动阵列来最高效地执行它。数据在阵列中流动并复用,极大地减少了对内存的访问。
  • 核心赌注 2:软件管理的内存。 放弃硬件缓存,所有片上内存(VMEM、CMEM)都是由编译器明确管理的暂存区,以实现可预测的性能。
  • 核心赌注 3:编译器负责一切。 AI模型的计算图是静态的,因此可以在编译时就规划好每一个时钟周期、每一次内存访问,硬件只需忠实执行。

架构与计算

TPU的核心是TensorCore,它包含:

  • MXU (Matrix Unit): 一个巨大的脉动阵列(如256x256),权重预先加载到阵列的计算单元中保持不动(权重固定),激活值则流过整个阵列。这种设计最大化了数据复用。
  • VPU (Vector Processing Unit): 负责处理非矩阵运算,与MXU并行工作。
  • Scalar Unit: 一个简单的控制单元,负责按顺序发出VLIW(超长指令字)指令包,驱动整个TensorCore。

扩展方式

TPU的扩展方式也与NVIDIA不同。它没有昂贵的交换机,而是通过直接互连的方式构建集群。

  • 向上扩展 (Scale-up): 通过 ICI (Inter-chip Interconnect) 将数千个TPU芯片直接连接成一个2D或3D环面(Torus)网络。在软件层面,这数千个芯片可以被视为一个统一的计算设备。
  • 光学电路交换机 (OCS): 在机柜之间,Google使用OCS来动态地重构环面网络的拓扑,以适应不同的工作负载或绕过故障芯片,这使得TPU Pod的规模可以达到近万个芯片。

软件生态

TPU的软件栈是编译器驱动的。开发者使用 JAX (或PyTorch/XLA) 编写模型,XLA编译器 负责将高级代码转换成最优的底层硬件指令。XLA会完成算子融合、内存分配、数据布局和多芯片任务分片等所有优化工作。

在GPU上,开发者编写内核;在TPU上,开发者编写数值程序,剩下的交给编译器。

AMD GPU

AMD Instinct GPU采取了与NVIDIA不同的策略。它没有在每个计算单元(CU)内部进行激进的创新,而是专注于封装技术和开放生态。AMD率先使用了小芯片(Chiplet)和3D堆叠技术,并在内存容量上持续领先,同时大力推动ROCm作为CUDA的开源替代品。

  • 核心赌注 1:内存为王。 AI推理任务越来越受限于内存容量,所以每一代产品都在HBM容量上力求超越对手。
  • 核心赌注 2:先进封装。 在其他人还在用单片设计时,率先采用3D堆叠技术,将多个计算和I/O小芯片集成在一个封装内,如MI300系列。
  • 核心赌注 3:开放生态。 通过 ROCmHIP 工具链提供与CUDA兼容的编程体验,并联合业界推动UALink(对标NVLink)和UEC(高性能以太网)等开放标准。

架构与扩展

AMD的计算单元(CU)设计相对保守,但通过先进封装技术将越来越多的CU集成在一起。MI300X通过3D堆叠技术将8个计算小芯片(XCD)和4个I/O小芯片(IOD)封装在一起,并集成了高达256 MB的Infinity Cache(一个巨大的片上末级缓存)。

在扩展方面,AMD的策略是:

  • 向上扩展 (Scale-up): 通过Infinity Fabric将8个GPU连接成一个全互联的节点。未来将通过开放的UALink标准实现机柜级别的扩展。
  • 向外扩展 (Scale-out): 完全押注于以太网,通过其收购的Pensando提供DPU和NIC,并推动Ultra Ethernet Consortium (UEC)标准。

软件生态

ROCm是AMD对抗CUDA的武器。它旨在提供一个开源、与CUDA语法兼容的软件平台。虽然在性能和成熟度上与CUDA仍有差距,但通过支持PyTorch、Triton等业界主流框架,AMD正在努力缩小这一差距。其策略是拥抱开源社区,而不是试图从零开始复制一个封闭的CUDA生态。

其他专用架构

Cerebras WSE

Cerebras采取了最激进的策略:不切割晶圆。其晶圆级引擎(WSE)是单个巨大的芯片,集成了近百万个小型计算核心和几十GB的片上SRAM。

  • 理念: 通过消除芯片间的通信瓶颈来解决“内存墙”问题。所有内存都在片上,访问延迟只有一个时钟周期。
  • 内存模型: 训练时,采用权重流式传输,即模型权重从外部存储(MemoryX)流过晶圆,而激活值则固定在片上SRAM中。这使得模型大小不受片上内存限制。
  • 推理模型: 推理时,模型权重被固定在多个WSE系统的SRAM中,以实现极低的单用户解码延迟,这是其当前的核心卖点。
  • 挑战: 极高的成本、有限的片上内存容量(SRAM密度已停止增长)以及封闭的软件生态。

AWS Trainium

作为云厂商自研芯片的代表,Trainium是一个务实的追随者。它借鉴了Google TPU的成功经验(脉动阵列、软件管理内存、XLA编译器),并将其与AWS自家的云基础设施(如Nitro网络)深度集成。

  • 理念: 芯片只是云服务的一个组件。通过自研,可以在保证性能的同时,为AWS客户提供比商业芯片更优的性价比。
  • 特色: 设计了专用的集合通信核心(CC-Cores),将all-reduce等通信操作从主计算单元上卸载下来,实现了计算与通信的硬件级并行。
  • 生态: 完全集成在AWS生态内,通过Neuron SDK和对OpenXLA的支持,为PyTorch和JAX用户提供服务。

Groq LPU

Groq LPU(语言处理单元)的设计核心是确定性(Determinism)。它移除了所有可能导致性能波动的组件(如缓存、调度器),让编译器在运行前就精确计算出每个操作的执行时间。

  • 理念: 性能应该是可预测、可重复的。通过静态调度整个芯片乃至整个集群,消除所有不确定性。
  • 架构: 采用独特的“张量流处理器”设计,数据在不同的功能切片(矩阵单元、向量单元、内存单元)之间以固定的节奏流动。
  • 内存与扩展: 完全依赖片上SRAM,这意味着单个芯片无法容纳大型模型。模型必须被分片到由数百个LPU组成的、通过其专用网络直接连接的集群上。
  • 结局: 其技术和团队最终被NVIDIA以授权和招聘的形式吸收,成为NVIDIA产品线中一个专注于低延迟推理的补充。

架构对比总结

特性 NVIDIA GPU (B200) Google TPU (Ironwood) AMD GPU (MI350X) Cerebras WSE-3 AWS Trainium 2 Groq LPU
设计哲学 可编程、通用并行 专用矩阵加速器 先进封装、开放生态 晶圆级、SRAM为王 云原生、快速跟随 确定性、静态调度
核心计算单元 Tensor Core (异步) Systolic Array (256x256) Matrix Core (波前同步) 90万个数据流核心 Systolic Array (128x128) MXM (320x320)
FP8算力 (稠密) 4.5 PetaFLOPS 4.6 PetaFLOPS 10 PetaFLOPS ~0.016 PetaFLOPS* 1.3 PetaFLOPS 0.75 PetaFLOPS
内存类型/容量 HBM3e / 192 GB HBM / 192 GB HBM3e / 288 GB SRAM / 44 GB HBM3 / 96 GB SRAM / 230 MB
内存带宽 8.0 TB/s 4.4 TB/s 8.0 TB/s 21 PB/s (片上总和) 4.9 TB/s 80 TB/s (片上总和)
向上扩展 (Scale-up) NVLink (72-GPU机柜) ICI Torus (9k+芯片Pod) Infinity Fabric (8-GPU节点) 晶圆本身 NeuronLink (64-chip) RealScale (千片级)
软件生态 CUDA (主导) JAX / XLA (编译器驱动) ROCm (开放追赶) 封闭、编译器匹配 Neuron SDK / XLA 封闭、编译器驱动
  • 算力趋同: 各主流厂商在单个芯片的峰值算力上差距不大。
  • 内存容量: AMD凭借其封装优势,在HBM容量上持续保持领先。
  • 扩展规模: NVIDIA在机柜级“向上扩展”方面领先,而Google TPU在“Pod级”的芯片数量上无人能及。
  • 功耗增长: 旗舰芯片的功耗已普遍超过1000W,液冷成为必然选择。
  • 激进派的权衡: Cerebras和Groq为了极致的带宽和延迟,牺牲了内存容量,这决定了它们必须通过大规模集群来运行大模型,并主要在低延迟推理这一细分市场竞争。