NVIDIA GH200 内部架构探究

科技   2024-12-04 11:23   北京  

大会预告

12月5-6日,智猩猩联合主办的2024中国生成式AI大会(上海站)将举办。主会场将进行大模型峰会、AI Infra峰会,分会场将进行端侧生成式AI、AI视频生成和具身智能三场技术研讨会。欢迎报名~


NVIDIA® GH200 Grace Hopper架构将NVIDIA Hopper GPU的突破性性能与NVIDIA Grace™ CPU的多功能性结合在一起,通过高带宽且内存一致的NVIDIA NVLink Chip-2-Chip (C2C)®互联技术,将它们整合在一个超级芯片中,并支持新的NVIDIA NVLink Switch System。
NVIDIA NVLink-C2C是NVIDIA为超级芯片设计的内存一致性、高带宽、低延迟的互联技术。它是Grace Hopper超级芯片的核心,提供最高达900GB/s的总带宽,比常用于加速系统中的x16 PCIe Gen5通道高出7倍。
NVLink-C2C的内存一致性提升了开发者的生产力、性能和GPU可访问的内存量。CPU和GPU线程现在可以并发且透明地访问CPU和GPU驻留的内存,允许开发者专注于算法,而不必显式管理内存。内存一致性使得开发者只需传输所需的数据,而无需将整个页面迁移到GPU或从GPU迁移。它还通过支持CPU和GPU上的本地原子操作,启用GPU和CPU线程之间的轻量级同步原语。
通过地址转换服务(ATS),NVLink-C2C利用NVIDIA Hopper DMA引擎加速主机和设备之间的可分页内存大规模传输。
NVLink-C2C使得应用程序能够超配GPU内存,并直接以高带宽使用NVIDIA Grace CPU的内存。每个Grace Hopper超级芯片拥有最多480GB的LPDDR5X CPU内存,GPU可以直接以高带宽访问额外的480GB内存。结合NVIDIA NVLink Switch System,运行在最多32个通过NVLink连接的GPU上的所有GPU线程现在可以访问最多19.5TB的内存,并保持高带宽。
第四代NVLink允许通过直接加载、存储和原子操作来访问同行内存,使加速应用程序能够比以往更容易地解决更大的问题。
NVIDIA GH200 Grace Hopper Superchip配备HBM3,使用96GB的HBM3内存,提供4TB/s的内存带宽。下一代NVIDIA GH200 Grace Hopper Superchip配备HBM3e,是世界上首个使用HBM3e内存技术的处理器,拥有144GB的HBM3e,提供超过4.9TB/s的带宽,是H100 80GB SXM的1.5倍。NVIDIA Grace Hopper中的HBM与通过NVLink-C2C连接的CPU内存相结合,提供最多624GB的高速访问内存,供GPU使用,从而提供处理全球最复杂的加速计算和生成性AI工作负载所需的内存容量和带宽。
NVIDIA GH200 Grace Hopper Superchip是首个真正的异构加速平台,专为高性能计算(HPC)和AI工作负载设计。它利用GPU和CPU的优势加速应用程序,并提供迄今为止最简单且最具生产力的异构编程模型,使科学家和工程师能够专注于解决世界上最重要的问题。结合NVIDIA的网络技术,NVIDIA GH200为下一代HPC超级计算机和AI工厂提供了蓝图,帮助客户应对更大的数据集、更复杂的模型和新的工作负载,并比以往更快地解决它们。
本文白皮书重点介绍了NVIDIA Grace Hopper的关键特性、编程模型及其在最具挑战性的HPC和AI应用中带来的性能提升
NVIDIA GH200 Grace Hopper概览
NVIDIA Grace CPU是首款NVIDIA数据中心CPU,它从零开始设计,旨在创建高性能计算(HPC)和AI超级芯片。NVIDIA Grace CPU采用72个Arm Neoverse V2 CPU核心,提供领先的每线程性能,同时相比传统CPU提供更高的能效。最多支持480GB的LPDDR5X内存,提供内存容量、能效和性能的最佳平衡,每个CPU的内存带宽可达到500GB/s。其可扩展一致性结构(Scalable Coherency Fabric)提供高达3.2TB/s的总分割带宽,充分发挥CPU核心、内存、系统I/O和NVLink-C2C的性能。
NVIDIA Hopper是NVIDIA数据中心GPU的第九代产品,设计目标是为大规模AI和HPC应用提供比前一代NVIDIA Ampere GPU更大的性能提升。Thread Block Clusters(线程块集群)和Thread Block Reconfiguration(线程块重配置)提高了空间和时间数据局部性,并结合新的异步执行引擎,使得应用程序能够始终保持所有计算单元忙碌。
NVIDIA GH200通过NVIDIA NVLink-C2C将NVIDIA Grace CPU和NVIDIA Hopper GPU融合成一个超级芯片,NVLink-C2C是一种总带宽为900GB/s的芯片到芯片互联技术。NVLink-C2C的内存一致性使得Grace CPU超级芯片和Grace Hopper超级芯片能够通过统一的编程模型进行编程。
下图展示了NVIDIA GH200 Grace Hopper超级芯片的逻辑概览,下表列出了其关键特性。
NVIDIA GH200平台
面向AI、数据分析和高性能计算(HPC)的异构GPU-CPU平台
GH200 Grace Hopper超芯片是多种服务器设计的基础,满足机器学习和高性能计算的不同需求。NVIDIA开发了两种平台来满足多样化的客户需求。
• NVIDIA MGX与GH200结合,非常适合扩展加速解决方案,包括但不限于传统的机器学习(ML)、AI、数据分析、加速数据库和HPC工作负载。拥有多达624GB的高速内存,单个节点可以运行多种工作负载,结合NVIDIA网络解决方案(Connect-X7、Spectrum-X和BlueField-3 DPUs),该平台易于管理和部署,采用传统的HPC/AI集群网络架构。
• NVIDIA GH200 NVL32使得NVLink连接域中的所有GPU线程可以访问最多19.5TB的内存,超芯片的总带宽达到900GB/s,且具有高达14.4TB/s的切分带宽,适用于32GPU NVLink连接系统。这使得该平台非常适合扩展全球最大、最具挑战性的AI训练和HPC工作负载。
NVIDIA MGX 配置 GH200 和 InfiniBand 或以太网理想的扩展型机器学习和高性能计算(HPC)工作负载
下图展示了 NVIDIA MGX 平台
NVIDIA MGX 是一个模块化的加速计算参考架构。通过它,ODM 和 OEM 可以采用模块化方法设计多种系统,从而节省开发成本并加快产品上市时间。NVIDIA MGX 支持数百种 GPU、DPU、CPU、存储和网络的组合,适用于 AI、高性能计算(HPC)和 NVIDIA Omniverse™ 工作负载。
NVLink 连接域通过 NVIDIA InfiniBand(IB)或以太网网络互联,例如 NVIDIA ConnectX-7 网络接口卡(NIC)搭配 NVIDIA Quantum 2 NDR 或 NVIDIA Spectrum-4 交换机,以及/或 OEM 定义的 I/O 解决方案。
通过 GH200 和 NVIDIA BlueField-3 DPU 增强 MGX
传统的超级计算提供裸机性能,但缺乏隔离或安全基础设施。NVIDIA BlueField-3 数据处理单元(DPU)是一种独立于主机系统的强大“前端计算机”,因此可以作为可信数据中心基础设施的一部分。BlueField DPU 提供高速网络连接(支持 EDR、HDR、NDR InfiniBand 或 100/200/400G 以太网),用于连接节点、HPC 的网络内计算卸载、基础设施卸载和加速。结合 NVIDIA DOCA(数据中心芯片)框架,BlueField DPU 为安全(例如防火墙和数据加密)、数据保护、租户隔离和裸机环境的多租户提供了软件定义、硬件加速的基础设施和数据中心服务。此外,DPU 还提供遥测收集、存储虚拟化和系统管理功能,这些功能完全独立于主机运行,因此不占用任何 CPU 或 GPU 资源。
这些技术结合在一起,支持云原生超级计算(CNSC),结合裸机性能和高数据中心效率,同时提供现代化的零信任安全隔离和多租户模式。CNSC 包含远程存储分配的存储虚拟化,以及基于租户隔离和其他需求的服务等级协议(SLA)实施,例如速率限制、带宽保证和网络资源保留。
在大规模操作时,先进的可视性至关重要。NVIDIA BlueField-3 扩展了传统监控工具,提供深入和即时的实时可视性,覆盖每个节点。NVIDIA DOCA Telemetry Service(DTS)是一种容器化遥测代理,支持从操作系统和网络级别的广泛提供商处收集和导出数据,包括核心和非核心性能监控单元以及主板管理控制器(BMC)。这使操作人员能够分析用户工作负载,并检测和应对系统健康状况、应用性能问题以及潜在的网络攻击。
图 3. NVIDIA MGX 配备 InfiniBand 网络的 Grace Hopper 超芯片系统,适用于扩展型 ML 和 HPC 工作负载
图 3 展示了不带 NVLink 交换系统的 GH200 MGX。NVLink-C2C 提供 Grace Hopper 超芯片内部的硬件一致性。每个节点包含一个 Grace Hopper 超芯片和一个或多个 PCIe 设备,如 NVMe 固态硬盘、BlueField-3 DPU、NVIDIA ConnectX-7 NIC 或 OEM 定义的 I/O。这些节点专为扩展型 ML 和 HPC 设计。通过 16 条 PCIe Gen 5 通道,一个 NDR400 InfiniBand NIC 可提供高达 100GB/s 的总带宽连接至超芯片。
图 3 所示的配置简化了集群管理,专为能够利用 NVIDIA Grace Hopper 强大计算能力且不受 InfiniBand 网络通信开销限制的工作负载设计。InfiniBand 是可用的最快互连网络之一,但仍属于传统的 RDMA 加速网络。配置 GH200 的 MGX 机箱是下一部分将介绍的 GH200 NVL32 机架级参考设计的基础模块。
NVIDIA GH200 NVL32 AI 超级计算机
适用于大规模扩展的超大 AI 大型语言模型(LLM)和推荐系统工作负载
NVIDIA GH200 NVL32 开启了 AI 的新时代,是一种全新类别的 AI 超级计算机,将 32 个 NVIDIA Grace Hopper™ 超芯片连接成一个统一的 GPU。GH200 NVL32 专为处理数万亿参数和 TB 级别的 AI 模型而设计,适用于大规模推荐系统、生成式 AI 和图分析。它突破了单一加速系统的内存限制,提供高达 19.5 TB 的 GPU 内存空间,为开发者提供近 30 倍的内存空间来构建大规模模型。
图 4 中展示的 NVIDIA GH200 NVL32 配备 NVLink 交换系统,使每个 Hopper GPU 能够在 NVLink 域内以 900GB/s 的总带宽与其他 GPU 通信。NVLink 的 TLB(翻译后备缓冲区)使单个 GPU 能够访问所有 NVLink 连接的内存(最多 19.5 TB)以实现 32 节点的 NVLink 连接系统。可在机架内使用 NVLink 连接多达 32 个超芯片,InfiniBand NIC 或以太网 NIC 和交换机则用于将多个超芯片机架互连。NVLink-C2C 和 NVLink 交换系统提供了 NVLink 连接域内所有超芯片之间的硬件一致性。
NVLink 的高带宽和低延迟、所有 NVLink 连接的 GPU 之间的内存一致性,以及通过直接加载、存储和原子操作访问多达 19.5TB 内存的能力,使该系统配置非常适合大规模扩展的机器学习和高性能计算(HPC)工作负载,以及训练超大 AI 模型。
NVIDIA MGX 配置 GH200 的对比
表 2 对比了 x86+Hopper、NVIDIA MGX 配置 GH200 以及配备 NVLink 交换系统的 NVIDIA GH200 NVL32 的速度和性能,按每个系统中的 Hopper GPU 数量归一化。
NVIDIA MGX 配置 GH200 的每 GPU CPU 内存带宽比 x86+Hopper 高出 3.5 倍,这得益于 1:1 的 GPU 与 CPU 比例以及 NVIDIA Grace CPU 的高 LPDDR5X 带宽。NVIDIA Grace Hopper 的 NVLink-C2C 每 GPU 提供的 GPU-CPU 链接带宽比 PCIe Gen 5 高 7 倍。NVLink 交换系统的 GPU 到 GPU 总带宽最高比通过 x16 PCIe Gen5 通道连接的 InfiniBand NDR400 NIC 高出 9 倍。这种大幅减少的计算需求有助于隐藏内存传输,使系统编程更简单,并提升了受 GPU-CPU 带宽限制的应用程序的性能。
在 CPU 比例、NVLink-C2C 和 NVLink 交换系统性能上的改进重新定义了如何从异构系统中获得最大性能,从而支持新的应用,并为复杂问题提供高效的解决方案
NVIDIA GH200 架构
本节介绍 NVIDIA GH200 的主要架构特性,包括:NVLink-C2C、NVLink 交换系统、扩展 GPU 内存 (EGM) 和超芯片的灵活计算能力。
NVLink-C2C
NVLink 芯片间互连(C2C)提供 Grace CPU 和 Hopper GPU 之间的高速直接连接,以构建 Grace Hopper 超芯片,专为 AI 和 HPC 应用的加速而设计。NVLink-C2C 提供 900GB/s 的双向带宽,比 x16 PCIe Gen 链接高出 7 倍的带宽且延迟更低。NVLink-C2C 仅消耗 1.3 皮焦每比特的能量,比 PCIe Gen 5 高效 5 倍以上。此外,NVLink-C2C 是一种具备系统级原子操作原生硬件支持的一致性内存互连。这提升了对非本地内存(如 CPU 和 GPU 线程访问驻留在另一设备中的内存)的访问性能。硬件一致性还改进了同步原语的性能,减少了 GPU 或 CPU 彼此等待的时间,增加了整个系统的利用率。最后,硬件一致性简化了异构计算应用的开发,支持常见的编程语言和框架,这在下方的 NVIDIA Grace Hopper 编程模型部分中有详细说明。
GH200 NVL32 的 NVLink 交换系统
NVIDIA NVLink 交换系统结合了第四代 NVIDIA NVLink 技术和新一代第三代 NVIDIA NVSwitch。NVLink 交换托盘中的 NVSwitch 芯片单层连接多达 32 个 Grace Hopper 超芯片,使任何一个超芯片之间通过 900GB/s 的 NVLink 连接实现全带宽的同时通信。
第四代 NVIDIA NVLink 允许 GPU 线程通过普通内存操作、原子操作和批量传输访问 NVLink 网络中所有超芯片提供的高达 19.5TB 的内存。当 NVLink 交换系统可用时,MPI、NCCL 或 NVSHMEM 等通信库会自动利用该系统。NVIDIA NVLink 交换系统将每个 Grace Hopper 超芯片连接到网络的总带宽为 900GB/s,即 Grace Hopper 超芯片对之间的数据交换速率最高可达 900GB/s。在连接多达 32 个 Grace Hopper 超芯片时,网络提供的总对全带宽达到 14.4TB/s,比 InfiniBand NDR400 的总对全带宽高 9 倍
32 个 Grace Hopper 超芯片提供的惊人 127 PFLOPS 性能,加上 NVLink 交换系统提供的 14.4TB/s 的全互带宽和高达 19.5TB 的可直接寻址内存,使得训练超大 AI 模型以及大规模扩展 HPC 和 AI 工作负载成为可能。
使用扩展 GPU 内存加速应用
NVIDIA GH200 旨在加速内存占用极大的应用程序,其需求超出单个超芯片的 HBM3 / HBM3e 和 LPDDR5X 内存容量(请参见下方的 NVIDIA GH200 加速应用章节)。
高带宽 NVLink-C2C 上的扩展 GPU 内存 (EGM) 特性使 GPU 能够高效访问系统的所有内存。EGM 在多节点 NVSwitch 连接系统中提供高达 19.5TB 的系统内存。通过 EGM,系统中的物理内存可分配给任意 GPU 线程访问。所有 GPU 都能以 GPU-GPU NVLink 或 NVLink-C2C 的最低速度访问 EGM。
在 Grace Hopper 超芯片配置中,内存访问通过本地高带宽 NVLink-C2C 通道实现,总带宽为 900GB/s。远程内存访问通过 GPU NVLink 实现,取决于所访问的内存,有时也通过 NVLink-C2C,详见图 5。借助 EGM,GPU 线程现在可以通过 NVSwitch 架构访问所有内存资源,包括 LPDDR5X 和 HBM3 或 HBM3e,以 450GB/s 的单向速度进行访问。
为峰值性能打造的灵活架构
NVIDIA Grace Hopper 架构具有灵活性,能够支持从大规模深度学习训练和 HPC 工作负载到需要服务质量(QoS)的小型推理工作负载的各种应用。NVIDIA GH200 系统可以在 NVIDIA Grace CPU 和 Hopper GPU 之间平衡功率。Grace Hopper 超芯片使得可以构建具有 1:1 GPU-CPU 比例的超级计算系统,这些系统在 GPU 密集型、CPU 密集型以及真正的异构工作负载下都能实现高效能。NVIDIA Grace Hopper 节点使得可以构建具有更高峰值性能、更低维护和更低管理开销的统一系统。
NVIDIA Grace CPU 支持内存资源分区和监控(MPAM)功能,提供任务间的性能隔离。MPAM 使得用户和管理员能够分配可用的 LPDDR5X 带宽和 CPU 缓存使用。NVIDIA 多实例 GPU(MIG)允许将 Hopper GPU 划分为更小的实例。MPAM 和 MIG 可以一起用于分配系统资源,从而改善 QoS。
NVIDIA Grace Hopper 超芯片的性能监控单元(PMU)遵循 ARM PMU 架构规范标准(Arm v8.5 PMUv3),用于捕获性能指标,并通过标准的 Linux 性能工具接口(如 Linux perf)进行暴露。它们提供了一种统一且可编程的方法,用于在一次操作中捕获 Grace CPU 和 Grace Hopper 超芯片的性能指标。一次性指标收集以极低的开销进行,几乎不需要 CPU 轮询,同时支持所有机密计算所需的特性。收集的指标涵盖了 CPU 核心和缓存、系统缓存、内存带宽、利用率、吞吐量以及 GPU、CPU、NVLink-C2C、PCIe 和 DRAM 的延迟。
硬件加速的内存一致性
在 PCIe 连接的 x86+Hopper 系统中,CPU 和 GPU 各自拥有独立的进程页表,系统分配的内存无法直接被 GPU 访问(如图 7 所示)。当程序在主机上使用系统分配器分配内存时,该分配的页条目不会出现在 GPU 的页表中,从而导致 GPU 线程无法访问该内存。
图 7. NVIDIA Hopper 系统中不连接的页表
在基于 NVIDIA Grace Hopper 超芯片的系统中,地址转换服务 (ATS) 使得 CPU 和 GPU 能够共享单一的进程页表,允许所有 CPU 和 GPU 线程访问系统分配的所有内存(如图 8 所示),这些内存可以驻留在物理 CPU 或 GPU 内存上。CPU 堆、CPU 线程栈、全局变量等都能够在这一共享内存结构中实现可访问性。所有 CPU 和 GPU 线程均可访问内存映射文件和进程间共享的内存。
 图 8. NVIDIA Grace Hopper Super Chip 系统中的 ATS
NVIDIA NVLink-C2C 硬件一致性允许 Grace CPU 以缓存行粒度缓存 GPU 内存,使 GPU 和 CPU 能够在无需页面迁移的情况下访问彼此的内存。NVLink-C2C 还加速了系统分配内存上的所有 CPU 和 GPU 支持的原子操作。作用域原子操作得到完全支持,使得系统中所有线程都能够进行细粒度且可扩展的同步。
运行时在首次访问时为系统分配的内存提供物理内存支持,依据 CPU 或 GPU 线程首先访问的情况,分配在 LPDDR5X 或 HBM3 / HBM3e 上。从操作系统的角度来看,Grace CPU 和 Hopper GPU 被视为两个独立的 NUMA 节点。
系统分配的内存是可迁移的,即运行时可以改变其物理内存支持以提升应用性能(如图 9 所示)或应对内存压力。硬件访问计数器允许延迟迁移,仅将“热点”页面进行迁移,从而避免基于页面故障的方法。
         图 9. 基于访问频率的自动内存迁移
通过非一致性 PCIe 通道连接的网络和存储设备可以采用多种方法对系统分配的内存执行直接内存访问(DMA)和远程 DMA(RDMA)。按需分页 (ODP) 是一种 RDMA 扩展,NVIDIA InfiniBand 网络产品如 BlueField-3 和 ConnectX-7 支持该功能,它允许设备跟踪正在迁移的页面。这一功能使得通信和存储库,如 MAGNUM IO(MPI、HPC-X、NCCL、NVSHMEM、UCX、MAGNUM IO 和 GPUDirect Storage),能够在系统分配的内存上执行高效的零拷贝 I/O 操作,而无需通过单独的缓冲区进行传输。
CUDA 特定的内存 API 为用户提供了内存位置、访问线程、是否可迁移等保证,帮助用户充分发挥硬件的性能。应用程序可以通过 CUDA 和/或 NUMA API 提供内存访问模式提示,使系统能够进行应用特定的优化。NUMA 内存提示允许应用通知运行时其内存访问模式。
NVLink 交换系统中的内存访问
在通过 NVLink 交换系统连接的 Grace Hopper 超芯片中,GPU 线程可以通过 NVLink 页表访问 NVLink 网络中其他 Grace Hopper 超芯片上的 HBM3 / HBM3e 和 LPDDR5X 内存(如图 10 所示)。CUDA API 允许应用程序将远程节点的内存映射到当前进程中,然后通过加载、存储、原子操作以及批量内存传输直接访问该内存。
最后留几个疑问和大家讨论,GB200组成的NVL32 机架里面,看起来CPU还是不能直接访问机架上NVL32 所有的HBM,GPU 已经做到访问所有的其他GPU的HBM。
1. GB200 组成NVL32机柜 是装了一个OS还是32个OS  ? 
2. NVLINK Page table 是驻留在哪里?在GPU HBM中还是在DDR ?
3. NVLINK Page table 是32份还是一份? 
欢迎互动

—END—


点击下方名片


即刻关注我们



算力猩
隶属于智猩猩,关注计算芯片创新,解读中国算力突破。
 最新文章