来源:半导体行业观察
2025-07-02 00:18:39
(原标题:深挖英伟达Blackwell)
公众号记得加星标⭐️,第一时间看推送不会错过。
来源:内容编译自hipsandcheese。
Nvidia 长期以来一直致力于打造巨型 GPU。其最新的图形架构 Blackwell 延续了这一传统。GB202 是最大的 Blackwell 芯片。它占据了 750 平方毫米的庞大面积,并拥有 922 亿个晶体管。GB202 拥有 192 个流多处理器 (SM),这是 GPU 上与 CPU 核心最接近的等效单元,并通过一个庞大的内存子系统为其供电。
Nvidia 的 RTX PRO 6000 Blackwell 拥有迄今为止最大的 GB202 配置。它与 Nvidia 产品线中的 RTX 5090 并列,后者也使用 GB202,但禁用了更多 SM。
高级对比展现了 Nvidia 旗下 Blackwell 产品的规模。AMD 的 RDNA4 系列以 RX 9070 和 RX 9070XT 为标杆。RX 9070 的性能略有下降,32 个 WGP 中有 4 个被禁用。我将使用 RX 9070 来提供对比数据。
工作分配
GPU 使用专用硬件在其核心之间启动线程,这与依赖操作系统中的软件调度的 CPU 不同。硬件线程启动非常适合 GPU 工作负载中常见的短小任务。流多处理器 (SM) 是 Nvidia GPU 的基本构建块,大致类似于 CPU 核心。SM 被分组到图形处理集群 (GPC) 中,其中包含光栅化器和相关的工作分配硬件。
GB202 的 SM 与 GPC 比例为 1:16,而 Ada Lovelace 最大的 AD102 芯片的比例为 1:12。这使得 Nvidia 能够以低成本增加 SM 数量,从而在无需更多 GPC 级硬件的情况下计算吞吐量。然而,短时波次的调度可能难以利用 Blackwell 的规模优势,因为吞吐量受限于 GPC 向 SM 分配工作的速度,而不是 SM 完成工作的速度。
AMD 的 RDNA4 采用 1:8 的 SE:WGP 比例,因此一个光栅化器为着色器引擎中的一组八个 WGP 提供数据。AMD 上的 WGP 与 Nvidia 上的 SM 最为接近,并且具有相同的标称矢量通道数。RDNA4 更易于用于小型调度和短持续时间的 wave,但值得注意的是,Blackwell 的设计并非独树一帜。独立于工作分配硬件扩展 GPU“核心”是构建更大型 GPU 的常用技术。AMD 的 RX 6900XT(RDNA2)的 SE:WGP 比例为 1:10。在此之前,AMD 最大的 GCN 实现(例如 Fury X 和 Vega 64)的 SE:CU 比例为 1:16(CU,即计算单元,是 GCN GPU 的基本组成部分)。虽然 Blackwell 的功率比与大型 GCN 芯片相同,但它拥有更高的时钟速度,并且很可能拥有更高的波发射率,以匹配每个 GPU 核心的吞吐量。它不会像 10 年前的 Fury X 那样承受短波的冲击,但 GB202 仍然比小型 GPU 更难提供信号。
虽然 Nvidia 没有扩展工作分配硬件,但他们确实对 Blackwell 进行了改进。之前的 Nvidia 产品无法在同一队列中重叠不同类型的工作负载。在图形和计算任务之间切换需要“子通道切换”和“等待空闲”机制。这意味着即使游戏没有请求同步,队列中的一个任务也必须完全完成才能开始下一个任务。管理暴露给主机端应用程序的队列的高级调度硬件可能一次只能跟踪一种工作负载类型的状态。Blackwell 取消了子通道切换,如果应用程序频繁在同一队列中混合不同类型的工作,它可以更高效地填充着色器数组。
SM 前端
一旦分配了工作,SM 的前端就会获取着色器程序指令并将其交付给执行单元。Blackwell 使用固定长度的 128 位(16 字节)指令,而 SM 采用两级指令缓存设置。这两个特性都继承自 Nvidia 的后图灵/Volta 设计。SM 的四个分区各自拥有一个私有的 L0 指令缓存,而 L1 指令缓存则由 SM 共享。
Nvidia 的长 16 字节指令意味着指令端带宽需求较高。L0+L1 指令缓存设置可能旨在处理这些带宽需求,同时在更大的代码占用空间下保持性能。每个 L0 指令每个周期只需提供一条指令,其较小的缓存大小应该更容易优化以实现高带宽和低功耗。SM 级 L1 指令缓存则可以进行容量优化。
Blackwell 的 L1i 可能只有 128 KB,这是通过对不同大小的展开循环进行测试,并检查生成的汇编代码 (SASS) 来验证循环的占用空间得出的结论。L1i 可以处理大约 8K 的指令,相比 Nvidia 的前几代产品有了显著提升。
Blackwell 和 Ada Lovelace 似乎都拥有 32 KB 的 L0i 缓存,比 Turing 的 16 KB 有所提升。L1i 可以完全满足单个分区的需求,并且可以过滤掉冗余的指令读取,从而满足所有四个分区的需求。然而,如果不同分区上的两个 wave 溢出 L1i 并运行不同的代码段,L1i 带宽可能会成为一个明显的限制。在这种情况下,每个 wave 的吞吐量会下降到每两个周期一条指令。
AMD 使用 4 到 12 字节的可变长度指令,与 Nvidia 相比,这降低了指令缓存的容量和带宽压力。RDNA4 具有在工作组处理器 (WGP) 上共享的 32 KB 指令缓存,与前几代 RDNA 非常相似。与 Nvidia 的 SM 一样,WGP 分为四个分区 (SIMD)。RDNA1 的白皮书表明 L1i 每周期可以为每个 SIMD 提供 32 字节。考虑到 AMD 更紧凑的指令,这是一个巨大的带宽。也许 AMD 想要确保每个 SIMD 能够以持续的方式共同向其矢量和标量单元发出指令。在这个基本测试中,当两波穿过不同的代码路径时,RDNA4 的 L1i 可以轻松保持全吞吐量。RDNA4 还享有来自 L2 的更好的代码读取带宽,尽管我测试过的所有 GPU 都显示 L2 代码读取带宽较差。
执行单元
每个 Blackwell SM 分区最多可跟踪 12 个波段以隐藏延迟,这比 RDNA4 上每个 SIMD 的 16 个波段略低。实际占用率(即活动波段槽的数量)可能受多种因素限制,包括寄存器文件容量。自 Ampere 以来,Nvidia 一直未改变理论占用率或寄存器文件容量,后者仍为每个分区 64 KB。因此,假设分配粒度自 Ada 以来未发生变化且仍为 8 个寄存器,则内核在使用全部 12 个波段槽时不能使用超过 40 个寄存器。相比之下,AMD 的高端 RDNA3/4 SIMD 具有 192 KB 的矢量寄存器文件,使内核可以使用最多 96 个寄存器,同时保持最大占用率。
与前几代产品相比,Blackwell 的主要 FP32 和 INT32 执行流水线进行了重组,并在内部将其排列为一个 32 位宽的执行流水线。这与 AMD 的 RDNA GPU 以及 Nvidia 的旧款 Pascal 架构相似。一个 32 位宽的流水线同时处理 INT32 和 FP32 意味着 Blackwell 在遇到一连串相同类型的操作时不会出现卡顿。Blackwell 继承了 Turing 的优势,能够在每个分区中每周期执行 16 次 INT32 乘法。而 Pascal 和 RDNA GPU 只能以大约四分之一的速率(每个分区、每个周期 8 次)执行 INT32 乘法。
与 Blackwell 相比,AMD 的 RDNA4 在每个 SIMD 中都包含了大量矢量计算。与 RDNA3 类似,RDNA4 可以使用 VOPD 双发射指令或 wave64 模式,在每个分区中每周期完成 64 次 FP32 运算。AMD SIMD 还可以同时发射来自不同 wave 的不同类型指令,而 Nvidia 的调度单元每个周期只能发射一条指令。RDNA4 的 SIMD 还包含 8 个特殊功能单元 (SFU),而 Nvidia 只有 4 个。这些单元可以处理更复杂的运算,例如平方根倒数和三角函数。
Blackwell 庞大的 SM 数量很快掩盖了每个分区执行单元布局或数量的差异。即使 RX 9070 可以利用双发射,28 个 WGP 也无法应对 188 个 SM。Nvidia 在每个类别中都保持领先。
其他 SM 级别变化
Nvidia 在 Blackwell 的统一数据路径中添加了浮点指令,该指令可以追溯到图灵架构,其作用与 AMD 的标量单元类似。两者都卸载了在 Wave 中保持不变的指令。Blackwell 的统一浮点指令包括加法、乘法、FMA、最小/最大运算以及整数和浮点之间的转换。Nvidia 的这一举措与 AMD 在 RDNA 3.5 和 RDNA4 中添加浮点标量指令的做法如出一辙。
不过,与 AMD 的标量单元相比,Nvidia 的统一数据路径感觉有些受限。统一寄存器只能从常量内存加载,但奇怪的是,统一寄存器可以写入全局内存。我无法让 Nvidia 的编译器在任何指令或缓存延迟测试的关键部分发出统一指令,即使是从常量内存加载值时也是如此。
光线追踪一直是 Nvidia GPU 的重点。Blackwell 将每个 SM 的光线三角形相交测试速率提高了一倍,尽管 Nvidia 并未具体说明盒子或三角形的测试速率是多少。与 Ada Lovelace 一样,Blackwell 的光线追踪硬件支持“不透明度微图”,提供类似于英特尔即将推出的 Xe3 架构所引用的子三角形不透明度剔除的功能。
SM内存子系统
与 Ada Lovelace 和 Ampere 一样,Blackwell 拥有一个 SM 宽度的 128 KB 存储块,该存储块被划分为 L1 缓存和共享内存。共享内存是 Nvidia 的术语,指的是软件管理的暂存器,用于支持 OpenCL 中的本地内存空间。AMD 的对应物是本地数据共享 (LDS),而英特尔的对应物是共享本地内存 (SLM)。与他们的数据中心 GPU 不同,Nvidia 选择不增加 L1/共享内存的容量。与前几代产品一样,不同的 L1/共享内存划分不会影响 L1 延迟。
AMD 的 WGP 使用更复杂的内存子系统,其高级设计在 RDNA 第一代中首次亮相。WGP 拥有 128 KB 的逻辑数据结构 (LDS),其内部由一对 64 KB、32 组结构构成,并通过交叉开关连接。一级矢量数据缓存(称为 L0 缓存)专用于 SIMD 对。WGP 范围内的 16 KB 标量缓存用于标量和常量读取。RDNA4 WGP 总共拥有 208 KB 的数据侧存储空间,可用于不同用途。
RDNA4 WGP 的私有内存拥有更高的带宽,可用于全局和本地内存访问。每个 L0 矢量缓存每周期可传输 128 字节,而 LDS 每周期可向 WGP 传输总计 256 字节。混合本地和全局内存流量可以进一步提高可实现的带宽,这意味着 LDS 和 L0 矢量缓存拥有独立的数据总线。
在 Nvidia 上执行相同操作不会使每个 SM 的吞吐量超过 128B/周期,这表明 128 KB L1/共享内存块到执行单元有一条 128B 的路径。
然而,AMD 凭借这一特性所获得的任何优势都被削弱了,因为 RX 9070 为了保持 220W 的功耗目标,将主频降至 2.6 GHz。相比之下,Nvidia 的功耗上限更高,为 600W,并且可以保持接近最高主频的速度,同时从 SM 私有的 L1/共享内存存储提供 128B/周期的数据传输率。
与计算能力一样,Nvidia 的庞大规模消除了核心间的差异。RTX PRO 6000 Blackwell 上的 188 个 SM 总计拥有超过 60 TB/s 的带宽。高 SM 数量也为 Nvidia 带来了更大的 L1/本地内存总量。Nvidia 在 RTX PRO 6000 上拥有 24 MB 的 L1/共享内存。AMD 的 RX 9070 在其 WGP 中拥有略低于 6 MB 的一级数据存储。
SM-private 存储通常延迟较低,至少就 GPU 而言是如此,而 Blackwell 依然如此。Blackwell 在多个方面都比 AMD 更具优势,部分优势在于地址生成。我正在测试依赖数组访问,Nvidia 只需一条 IMAD.WIDE 指令即可将数组索引转换为地址。
AMD 通过其标量单元实现了快速的 64 位地址生成,但当然,只有当编译器确定地址计算在整个波形中保持不变时,才能使用该功能。如果每个通道都需要独立生成自己的地址,AMD 的矢量整数单元原生只能处理 32 位数据类型,并且必须执行带进位的加法运算才能生成 64 位地址。
GPU 还可以将地址生成任务交给纹理单元处理,纹理单元可以处理数组地址计算。当然,纹理单元也可以进行纹理过滤,不过我只在使用 OpenCL 的 image1d_buffer_t 类型测试时要求它返回原始数据。如果纹理单元进行地址计算,AMD 的延迟会更低,但 Nvidia 则不会。
原子(Atomics)
GPU 通常使用靠近一致性点的专用 ALU 来处理原子操作,例如用于本地内存的 LDS 或共享内存,或用于全局内存的 L2 缓存。这与 CPU 形成了鲜明对比,CPU 依靠锁定缓存行来处理原子操作并确保排序。Nvidia 似乎在每个 SM 上都有 16 个 INT32 原子 ALU,而 AMD 的每个 WGP 上都有 32 个。
一个常见的趋势是,Nvidia 可以凭借其更强大的 GPU 击败 AMD,至少在本地内存原子方面是如此。RTX PRO 6000 和 RX 9070 在全局内存中的原子加法吞吐量惊人地相似,这表明 Nvidia 的 L2 存储体更少,或者每个存储体中的原子单元更少。
当线程通过原子比较和交换操作交换数据时,RDNA4 和 Blackwell 的延迟相似,不过 AMD 的速度略快一些。RX 9070 是一款尺寸更小、时钟频率更高的 GPU,两者均有助于降低在 GPU 之间移动数据的延迟。
GPU 范围的内存子系统
Blackwell 采用传统的两级数据缓存设置,但延续了 Ada Lovelace 的策略,即增加 L2 容量,以实现与 AMD Infinity Cache 相同的目标。Blackwell 的 L2 延迟回落至略高于 130 纳秒,而 Ada Lovelace 的延迟为 107 纳秒。Nvidia 的 L2 延迟仍然介于 AMD 的 L2 和 Infinity Cache 之间,但现在明显更接近后者。
使用 Vulkan 的测试结果表明,较小的 RTX 5070 也具有比 RTX 4090 更高的 L2 延迟(122 纳秒),即使 5070 具有更少的 SM 和更小的 L2。Nemes 的 Vulkan 测试套件的缓存延迟结果应该与我的 OpenCL 结果大致相当,因为我们都使用 current = arrcurrent 访问模式。深入观察后发现,代码生成存在细微差异,这似乎会使 Vulkan 结果的延迟增加约 3 纳秒。但这并没有改变 L2 延迟的大局。此外,L1 和 L2 延迟之间的差异应该近似于遍历片上网络和访问 L2 所需的时间。在这方面,OpenCL 和 Vulkan 结果之间的差异微不足道。GB202 的 L2 延迟回归部分可能来自其庞大的规模,但 5070 的结果表明情况并非如此。
RTX PRO 6000 Blackwell 的 VRAM 延迟可控在 329 纳秒,L2 命中延迟约为 200 纳秒。AMD 的 RDNA4 的 VRAM 延迟更佳,矢量访问延迟为 254 纳秒,标量路径延迟为 229 纳秒。有趣的是,Nvidia 之前的Ada Lovelace 和 Ampere 架构的VRAM 延迟比 Blackwell 更好,与 RDNA4 和 RDNA2 的延迟大致相同。
Blackwell 的 L2 带宽约为 8.7 TB/s,略高于 RX 9070 的 8.4 TB/s。在更大的测试规模下,Nvidia 仍保持着巨大的优势,而 AMD 的 Infinity Cache 提供的带宽还不到后者的一半。在显存方面,Blackwell 的 GDDR7 和 512 位显存总线使其继续遥遥领先于 AMD。
Nvidia 的 L2 性能值得密切关注,因为这是 RX 9070 与巨头 RTX PRO 6000 Blackwell 惊人地接近的领域之一。GB202 的芯片照片显示其拥有 64 个缓存块,这表明 L2 被拆分成了 64 个缓存组。如果是这样,每个缓存组可能每周期传输 64 字节(其中测试达到了 48B/周期)。这比 Ada Lovelace 最大的 AD102 芯片中的 48 个 L2 块有所提升。然而,Nvidia 的 L2 仍然难以兼顾 L1 未命中的第一站和大型末级缓存。换句话说,它正在执行 AMD 的 L2 和 Infinity Cache 级别的工作。减少缓存级别肯定是有好处的,因为检查缓存级别会增加延迟和功耗成本。然而,缓存也必须在容量、性能和功耗/面积成本之间做出权衡。
Nvidia 很可能依赖其灵活的 L1/共享内存安排来控制 L2 带宽需求,并使 SM 免受 L2 延迟的影响。如果内核不需要本地内存,Blackwell SM 可以将其整个 128 KB L1/共享内存块用作 L1 缓存,而 AMD WGP 则只能使用两个 32 KB 矢量缓存和一个 16 KB 标量缓存。然而,如果内核受限于本地内存容量,且数据占用量在几兆字节左右,那么 Nvidia 就会处于劣势。观察 AMD 和 Nvidia 如何权衡这些权衡颇有趣味,但由于两款产品在如此不同的细分市场竞争,因此无法得出任何结论。
计算性能:FluidX3D
FluidX3D 模拟流体行为,可能需要大量的内存带宽。它使用 FP32 值进行计算,但可以将其转换为 FP16 格式进行存储。这样做可以降低 VRAM 带宽和容量要求。正如计算和内存带宽规格所示,Nvidia 的 RTX PRO 6000 远远领先于 AMD 的 RX 9070。
无论 FluidX3D 采用何种模式编译,Nvidia 的领先优势都保持相对稳定。
最后的话
从技术层面来看,2025 年 GPU 领域的竞争将比以往任何时候都更加激烈,因为英特尔的 GPU 研发工作稳步推进,并使其成为第三大竞争对手。在数据中心领域,AMD 的 MI300 凭借其在超级计算领域的胜利,证明了其极强的竞争力。但在高端消费市场,竞争却明显缺失。英特尔的 Battlemage 和 AMD 的 RDNA4 都停留在中端市场。RX 9070 的目标性能水平确实高于英特尔的 Arc B580,但两者都远不及英伟达最大的 202 GB 显存的 GPU。
至于 GB202,这是 Nvidia 竭尽全力打造更大尺寸以征服高端市场的又一例证。750mm2 的芯片突破了单片设计的极限。其 575W 或 600W 的目标功率考验着消费级 PC 的功率极限。通过突破这些极限,Nvidia 创造了当今市场上最大的消费级 GPU。就矢量 FP32 吞吐量而言,RTX PRO 6000 令人难以置信地接近 AMD 的 MI300X,并且远远领先于 Nvidia 自己的 B200 数据中心 GPU。内存子系统也是一个怪物。也许 Nvidia 的工程师们问过他们是否应该像 AMD 的 RDNA2 那样强调缓存,还是像他们在 Ampere 上那样依赖 VRAM 带宽。显然,答案是两者兼而有之。同样的方法也适用于计算,答案显然是“所有 SM”。
打造如此强大的 GPU 并非易事,Nvidia 显然也面临着诸多挑战。考虑到它可能需要处理的海量计算吞吐量,L2 性能表现平平。除了 GPU 尺寸之外,与 RDNA4 的比较也显示出 AMD 继续使用数量更少、性能更强的独立核心的趋势。RDNA4 的基本工作组处理器构建块比 Blackwell SM 拥有更高的计算吞吐量和缓存带宽。
但这些在高端市场都不重要,因为英伟达的“核心”数量是后者的6倍多,末级缓存容量是后者的两倍,并且显存带宽也遥遥领先。Blackwell在某些方面可能没有那么出色。但英伟达的工程师值得称赞,因为其他所有人显然都看到了这些挑战,并决定根本不去尝试。因此,Blackwell理所当然地赢得了高端市场。像RTX PRO 6000这样的产品令人着迷,我预计英伟达将继续突破其消费级GPU的极限。但我也希望,在未来的几十年乃至几个世纪里,高端市场的竞争最终会重新出现。
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第4080期内容,欢迎关注。
加星标⭐️第一时间看推送,小号防走丢
求推荐
半导体行业观察
2025-07-02
半导体行业观察
2025-07-02
半导体行业观察
2025-07-02
半导体行业观察
2025-07-02
半导体行业观察
2025-07-02
半导体行业观察
2025-07-02
证券之星资讯
2025-07-01
证券之星资讯
2025-07-01
证券之星资讯
2025-07-01