每一代GPU都面临着同样的限制:内存容量。模型规模的快速增长远远超过了内存容量的增长速度,这迫使工程师们采用复杂的多GPU架构、进行激进的量化处理,或者做出各种艰难的权衡。

NVIDIA在2024年推出的Blackwell架构从硬件层面解决了这一问题。它不仅重新定义了GPU的内存容量,还彻底改变了内存的结构及访问方式。

现在,运行Llama 3 70B模型已不再成为问题——无需进行并行化处理,也不必将模型压缩到有限的内存空间中。同样的硬件配置如今能够支持数量多得多的参数。

本文详细介绍了Blackwell在内存方面所取得的改进,这些改进使得它成为了迄今为止功能最强大的AI加速器。

先决条件

本文假设您已经掌握了关于GPU的一些基础知识。如果您对这些内容还不熟悉,那么链接中的资源可以帮助您在10到15分钟内补齐相关知识。

  • GPU的内部结构——SM单元的含义,以及寄存器、共享内存(L1缓存)、L2缓存和内存控制器的作用。[GPU的内存层次结构]

  • 三种关键的内存指标——容量、带宽和延迟。这三者是不可互换的,而Blackwell在提升这三项指标方面采取了不同的方法。[GPU内存带宽

  • GPU的内存类型——HBM、GDDR和LPDDR5X,以及它们在带宽、容量和功耗方面的差异。[CUDA GPU内存类型

  • 芯片间的互连技术——PCIe、NVLink,以及芯片间互连的概念。[AI系统的发展与芯片间互连技术

如果您已经掌握了以上四项内容,那么您就可以继续阅读本文了。

目录

  • 代际飞跃

  • GB200超级芯片

  • 内存层次结构与带宽

  • 结论

  • 代际飞跃

    在探讨Blackwell是如何实现性能提升的之前,我们先来看看与上一代GPU相比有哪些变化:

    规格参数 Hopper H100 Blackwell B200 变化幅度
    HBM容量 80 GB(HBM3) 192 GB(HBM3e) 2.4倍
    HBM带宽 3.35 TB/s 8 TB/s 2.4倍
    L2缓存 50 MB 126 MB 2.5倍
    L1/每个SM共享的缓存容量 256 KB 128 KB 0.5倍
    芯片架构设计 单芯片结构 双芯片组合结构(MCM) ——
    CPU集成方式 独立连接(PCIe接口) 统一连接(NVLink C2C接口) ——

    这些数据清楚地说明了变化之处:更大的内存容量、更高的带宽以及更强大的缓存性能。在本文的后续部分,我们将详细解释这些组件是如何协同工作的。

    GB200超级芯片

    NVIDIA Blackwell GB200 Superchip

    Grace Blackwell(GB200)延续了NVIDIA在Grace Hopper(GH200)时期推出的超级芯片设计理念:将基于ARM架构的Grace CPU与GPU芯片集成到同一个封装中,从而形成一个统一的计算系统。

    在Blackwell系列中,GB200将一个Grace CPU与两个Blackwell GPU通过NVLink芯片间连接技术组合在一起。这种高带宽接口使得CPU和GPU能够共享内存,并作为一个整体系统协同工作。

    Grace CPU

    Grace CPU是由NVIDIA设计的基于ARM Neoverse v2架构的处理器,其设计重点在于提升数据传输效率与性能。它能够处理各种通用任务、预处理操作以及数据分块处理,并通过NVLink C2C接口将数据传递给GPU。同时,Grace CPU还充当了GPU的扩展存储设备。

    Grace CPU的工作频率虽然不高,但其LPDDR5X内存具有高达500 GB/s的带宽,再加上约100 MB的L3缓存,使其在性能与功耗之间取得了完美的平衡。

    LPDDR5X(低功耗双倍数据传输率5x内存标准)

    LPDDR5X是一种高速内存技术,其数据传输速率可达到10.7 Gbps。这种内存类型具有出色的低功耗特性,因此非常适合用于此类应用场景。

    它能够在性能与能耗之间实现完美平衡:在仅消耗约16瓦电力的情况下,就能提供高达500 GB/s的数据传输速度,这一数值大约是传统DDR5内存功耗的五分之一。

    Blackwell GPU

    与上一代Hopper GPU相比,Blackwell GPU在性能方面取得了显著提升,尤其是在内存配置上。Blackwell GPU采用双芯片设计,一个模块中包含了两个GPU核心。

    每颗芯片都通过速度为10TB/s的超高速NV-HBI接口与另一颗芯片相连,这一设计确保了GPU能够发挥出最佳性能。每颗芯片包含1040亿个晶体管,因此两颗芯片总共包含了2080亿个晶体管。此外,每颗芯片还配备了96GB的HBM3e内存,两颗芯片合计拥有192GB的内存容量,其中180GB可供实际使用(因为另有12GB被用于错误校正码、系统固件等功能)。

    凭借这样的内存配置,Blackwell GPU的内存带宽是Hopper世代GPU的约2.4倍。

    L2缓存的大小也增加到了126MB。由于L2缓存的容量增大,Blackwell GPU能够在芯片内部存储更多的神经网络权重或中间计算结果,从而避免频繁访问外部HBM内存,进而确保GPU的计算单元能够持续获得足够的数据支持。

    Blackwell双芯片多芯片模块设计

    高带宽接口(NV-HBI)

    高带宽互连技术是一种用于芯片间通信的标准。NVIDIA的高带宽接口(NV-HBI)能够提供10TB/s的连接速度,从而将两颗GPU芯片整合成一个统一的整体。

    NVLINK C-2-C技术使得Grace CPU与Blackwell GPU之间的数据传输速度可达到约900GB/s,因此无需通过PCIe总线将数据从CPU复制到GPU的内存池中。

    NVLINK C-2-C的互连速度远远超过了普通的PCIe总线。PCIe Gen6在每个方向上的数据传输速度仅为约128GB/s,而NVLink C-2-C的技术速度要高得多。此外,这种技术还具备缓存一致性特性,这意味着CPU和GPU能够共享同一个内存架构,从而实现数据的高效读写。

    NVIDIA将这种统一的内存架构称为“统一CPU-GPU内存”或“扩展GPU内存”。

    内存层次结构与带宽

    了解数据在Blackwell GPU的内存系统中是如何流动的,对于优化AI计算任务的性能至关重要。该内存系统遵循经典的层次结构设计原则:速度更快、容量更小的内存位于离计算单元更近的位置,而容量更大但速度较慢的内存则分布在更外层的位置。

    内存层次结构概览

    内存层级 容量 带宽 用途
    寄存器 每个SM约256KB 即时访问内存 用于当前计算操作
    L1/共享内存 每个SM约128KB 总带宽约为40TB/s 用于数据临时存储及线程间数据共享
    L2缓存 每颗芯片64-65MB(两颗芯片合计约126MB) 带宽约为20TB/s 用于不同SM之间的数据复用
    HBM3e内存 192GB(其中180GB可用) 带宽为8TB/s 用于存储模型权重和激活值等信息
    LPDDR5X内存(CPU端使用) 约480GB 带宽约为500GB/s(通过NVLink C2C接口可达900GB/s) 用于存储额外数据或大型嵌入向量

    Blackwell内存映射

    寄存器与L1/共享内存

    流式多处理器在GPU上执行计算指令。在最基本的层面上,每个流式多处理器都包含一个寄存器文件以及可配置的L1/共享内存,如上图所示。寄存器用于存储当前正在被GPU核心处理的操作数,也就是那些正在进行运算的数据。

    流式多处理器以固定大小的线程组来执行任务,这些线程组被称为“warp”。每个warp包含恰好32个线程,它们会同步地执行相同的指令。L1/共享内存充当了一个中间缓存区,使得同一个流式多处理器内的线程能够直接共享数据,而无需访问速度较慢的内存层级。

    Blackwell架构中,每个流式多处理器的默认L1/共享内存容量为128 KB,这一数值比Hopper架构中的256 KB要小。在某些特定配置下,这一容量可以增加到228 KB。所有流式多处理器共同提供的总带宽约为40 TB/s。

    为什么会出现这样的设计变化呢?NVIDIA将部分存储资源重新分配到了用于Tensor Core运算的TMEM中,并通过增加L2缓存来弥补这一损失。对于通用性的共享内存任务来说,每个流式多处理器的可用存储容量确实减少了;但对于那些最为重要的计算任务(比如矩阵乘法运算),NVIDIA仍然为它们提供了专用的高速内存。

    L2缓存:弥补较小的L1内存容量

    L2缓存位于流式多处理器与HBM之间,所有计算单元都可以共享这一缓存资源。Blackwell架构中,每个芯片提供了64-65 MB的L2缓存空间(双芯片模块总共约为126 MB)。这一数值是Hopper架构中50 MB L2缓存的2.5倍,因此有效弥补了每个流式多处理器L1内存容量较小的问题。

    在人工智能应用中,相同的模型权重会在不同的输入数据批次中被反复使用。较大的L2缓存容量意味着这些权重可以在不同批次之间保留在芯片上,从而减少频繁访问HBM所带来的性能开销。对于推理服务而言,由于同一个模型需要处理成千上万的请求,因此更大的L2缓存可以直接提升系统的延迟降低能力与吞吐量。

    不过,双芯片设计也会带来一些复杂性。每个芯片都拥有自己独立的63 MB L2缓存空间,如果要访问另一个芯片上的缓存数据,就需要通过速度为10 TB/s的NV-HBI互连通道进行数据传输,尽管这个速度仍然比本地L2缓存的访问速度慢。NVIDIA的软件栈能够透明地处理这种跨芯片的数据传输机制,但那些注重系统性能的工程师应该了解,数据在不同芯片之间的分布情况确实会影响缓存的使用效率。

    HBM3e:主内存池

    高带宽内存(HBM3e)被用作存储模型权重、激活值、梯度以及输入数据的主要介质。Blackwell架构中的HBM3e为每个GPU提供了8 TB/s的带宽,这一数值是Hopper架构中3.35 TB/s HBM3性能的2.4倍。

    其物理实现采用了8层堆叠结构:每层由8个DRAM芯片垂直堆叠而成,每个芯片提供3 GB的存储空间,因此整个堆栈总共可以提供24 GB的内存容量。由于B200 GPU配备了8层这样的堆叠结构(每颗芯片上有4层),因此它总共提供了192 GB的片上内存空间,不过在实际使用中,由于ECC校验和系统开销的原因,只有180 GB的内存是可用的。

    这种带宽的提升至关重要。张量核心在运行时会以极高的速度消耗数据。如果HBM无法快速提供足够的数据,计算单元就会陷入停滞状态,从而导致昂贵的芯片资源被浪费掉。Blackwell所配备的8 TB/s带宽确保了即使在进行大规模矩阵乘法运算时,张量核心也能持续获得所需数据。

    LPDDR5X:高级别内存解决方案

    在GPU的HBM之外,Grace CPU还配备了LPDDR5X内存。大约480 GB的内存空间可以在本地以最高500 GB/s的速度被访问;而当通过NVLink C-2-C接口从GPU进行访问时,其数据传输速度可达到约900 GB/s。

    与HBM相比,从GPU访问LPDDR5X时,带宽会降低大约10倍,延迟也会增加。不过,它的速度仍然远高于NVMe SSD或网络存储设备。

    LPDDR5X主要起到高速辅助存储的作用。那些无法被HBM容纳的数据——比如大型嵌入表、用于长上下文推理的键值缓存,或是检查点缓冲区——都可以存储在CPU内存中,而不会对系统性能造成严重影响。

    实际数据流动过程

    当Blackwell GPU执行AI任务时,数据会按照以下层次结构逐步流动:

    1. 模型加载:模型权重首先从存储设备传输到CPU内存,然后进入HBM;如果HBM已满,这些权重也会留在LPDDR5X内存中。

    2. 批量处理:输入数据首先被送入HBM,随后根据SM的需求被转移到L2缓存中。

    3. 计算过程:在运算过程中,活跃的数据会从L2缓存传输到L1缓存或共享内存中,最终存储在寄存器中。

    4. 结果输出:计算完成后的结果会再次按照相反的路径返回到HBM或CPU内存中。

    每一层内存都充当着其上一层数据的缓冲区。

    实际应用案例:运行Llama 3 70B模型

    以使用Llama 3 70B模型进行推理为例来看。在FP16精度下,仅模型权重本身就需要大约140 GB的内存空间。

    在Hopper H100上(配备80 GB的HBM3内存):由于内存容量不足,这个模型无法被完全加载。此时要么采取严格的量化处理措施,要么利用多块GPU进行张量并行计算,或者通过PCIe接口将部分计算任务转移到CPU内存中执行(不过PCIe的数据传输速度仅为约64 GB/s)。

    在单个GB200超级芯片上(拥有约360 GB的可用HBM3e内存以及480 GB的LPDDR5X内存):140 GB的内存空间完全可以在单块GPU的HBM中容纳,剩余的HBM空间以及所有CPU内存都可以用于存储键值缓存、进行数据批量处理,或者同时运行多个模型实例。在这种情况下,既不需要使用多块GPU进行并行计算,也不必进行强制性的量化处理。GB200超级芯片所提供的可用内存容量是H100的10倍左右,这从根本上改变了原本需要多块GPU才能运行的任务现在是否可以在单颗芯片上完成。

    这就是Blackwell内存架构所带来的实际意义:那些过去需要多块GPU才能运行的模型,现在只需要通过单个超级芯片就能顺利运行了,这样一来不仅简化了部署流程,还大幅降低了GPU之间的通信开销。

    结论

    在AI硬件领域,内存资源一直以来都是制约性能的关键因素。而Blackwell的出现彻底改变了这一现状。

    通过将双芯片GPU、带宽为8 TB/s的HBM3e以及通过NVLink C2C实现的统一的CPU-GPU内存系统相结合,NVIDIA打造出了这样的产品:单个超级芯片所提供的可用内存容量大约是前代产品的10倍。那些过去需要复杂的多GPU协同运行才能实现的计算任务,现在都可以通过一个设备来完成。

    对于AI工程师来说,这意味着他们可以减少在内存限制问题上花费的时间,从而有更多时间专注于开发更优秀的模型。这种架构不仅运行速度更快,而且使用起来也更加便捷。

    随着模型规模的不断扩大,NVIDIA Blackwell所倡导的“以内存为核心”的设计理念恰恰指明了GPU架构的发展方向:更紧密的集成、统一的内存管理机制,以及为那些最为关键的任务专门设计的硬件资源。

    参考资料

    1. NVIDIA Blackwell架构技术文档:https://resources.nvidia.com/en-us-blackwell-architecture

    2. 深入解析NVIDIA Blackwell架构:https://medium.com/@kvnagesh/nvidia-blackwell-architecture-a-deep-dive-into-the-next-generation-of-ai-computing-79c2b1ce3c1b

    3. 《AI系统性能工程》一书:https://learning.oreilly.com/library/view/ai-systems-performance/9798341627772/

    4. GPU的内存层次结构:https://www.arccompute.io/arc-blog/gpu-101-memory-hierarchy

    5. GPU内存带宽及其对性能的影响:https://www.digitalocean.com/community/tutorials/gpu-memory-bandwidth

    6. AI系统的发展趋势:芯片间的互连技术——推理计算的未来:https://medium.com/@adi.fu7/the-ai-systems-game-are-chip-to-chip-interconnects-the-future-of-inference-ec3bbda53eb3

    7. CUDA GPU的内存类型:https://medium.com/@jghaly00/cuda-gpu-memory-types-a07428b3eb16

Comments are closed.