nvidia grace hopper superchip 架构是第一个真正的异构加速平台,适用于高性能计算(hpc) 和ai工作负载。它利用 gpu 和 cpu 的优势加速应用程序,同时提供迄今为止最简单、最高效的分布式异构编程模型。科学家和工程师可以专注于解决世界上最重要的问题。
图 1. grace hopper 与 x86+hopper 的最终用户应用程序性能模拟(来源:nvidia grace hopper 架构白皮书) 在本文中,您将全面了解 grace hopper 超级芯片,并重点介绍 nvidia grace hopper 带来的性能突破。
强大的可扩展 hpc 和大型 ai 工作负载的性能和生产力
nvidia grace hopper superchip 架构将nvidia hopper gpu的突破性性能与nvidia grace cpu的多功能性结合在一起,在单个超级芯片中与高带宽和内存一致的 nvidia nvlink chip-2-chip (c2c)互连相连,并且支持新的nvidia nvlink 切换系统。
图 2. nvidia grace hopper superchip逻辑概述
nvidia nvlink-c2c 是一种 nvidia 内存一致性、高带宽和低延迟的超级芯片互连。它是 grace hopper superchip 的核心,提供高达 900 gb/s 的总带宽。这比加速系统中常用的 x16 pcie gen5 通道高 7 倍。 nvlink-c2c 内存一致性提高了开发人员的生产力和性能,并使 gpu 能够访问大量内存。cpu 和 gpu 线程现在可以同时透明地访问 cpu 和 gpu 驻留内存,使您能够专注于算法而不是显式内存管理. 内存一致性使您能够仅传输所需的数据,而不是将整个页面迁移到 gpu 或从 gpu 迁移出来。它还通过启用来自 cpu 和 gpu 的本机原子操作(native atomic operations)来启用跨 gpu 和 cpu 线程的轻量级同步原语(lightweight synchronization primitives)。具有地址转换服务 (ats:address translation services ) 的 nvlink-c2c 利用 nvidia hopper 直接内存访问 (dma) 复制引擎来加速跨主机和设备的可分页内存的批量传输。 nvlink-c2c 使应用程序能够超额订阅( oversubscribe) gpu 的内存,并在高带宽下直接使用 nvidia grace cpu 的内存。每个 grace hopper superchip 具有高达 512 gb 的 lpddr5x cpu 内存,gpu 可以直接高带宽访问比 hbm 可用内存多 4 倍的内存。结合 nvidia nvlink 开关系统,在多达 256 个连接 nvlink 的 gpu 上运行的所有 gpu 线程现在可以在高带宽下访问高达 150 tb 的内存。第四代 nvlink 支持使用直接加载、存储和原子操作访问对等内存,使加速应用程序能够比以往更轻松地解决更大的问题。 与 nvidia 网络技术一起,grace hopper 超级芯片为下一代 hpc 超级计算机和人工智能工厂提供了配方。客户可以承担更大的数据集、更复杂的模型和新的工作负载,从而比以前更快地解决它们。
nvidia grace hopper 超级芯片的主要创新如下:
英伟达 grace cpu:
多达 72 个 arm neoverse v2 内核,每个内核具有 armv9.0-a isa 和 4 个 128 位 simd 单元。
高达 117 mb 的 l3 缓存。
高达 512 gb 的 lpddr5x 内存,提供高达 546 gb/s 的内存带宽。
多达 64 个 pcie gen5 通道。
nvidia 可扩展一致性结构 (scf) 网格和分布式缓存,内存带宽高达 3.2 tb/s。
单个 cpu numa 节点可提高开发人员的工作效率。
nvidia hopper gpu:
与 nvidia a100 gpu 相比,多达 144 个带有第四代张量核心、transformer engine、dpx 和 3 倍高 fp32 和 fp64 的 sm。
高达 96 gb 的 hbm3 内存提供高达 3000 gb/s 的速度。
60 mb 二级缓存。
nvlink 4 和 pcie 5。
英伟达 nvlink-c2c:
grace cpu 和 hopper gpu 之间的硬件一致性互连。
高达 900 gb/s 的总带宽,450 gb/s/dir。
扩展 gpu 内存功能使 hopper gpu 能够将所有 cpu 内存寻址为 gpu 内存。每个 hopper gpu 可以在超级芯片内寻址多达 608 gb 的内存。
nvidia nvlink 切换系统:
使用 nvlink 4 连接多达 256 个 nvidia grace hopper 超级芯片。
每个连接 nvlink 的 hopper gpu 都可以寻址网络中所有超级芯片的所有 hbm3 和 lpddr5x 内存,最高可达 150 tb 的 gpu 可寻址内存。
性能、可移植性和生产力的编程模型
具有 pcie 连接加速器的传统异构平台要求用户遵循复杂的编程模型,该模型涉及手动管理设备内存分配和与主机之间的数据传输。 nvidia grace hopper superchip 平台是异构的且易于编程,nvidia 致力于让所有开发人员和应用程序都可以访问它,而不受所选编程语言的影响。 grace hopper superchip 和平台的构建都是为了让您能够为手头的任务选择正确的语言,而nvidia cuda llvm 编译器api 使您能够将您喜欢的编程语言带到具有相同代码级别的 cuda 平台 -生成质量和优化作为 nvidia 编译器和工具。 nvidia 为 cuda 平台(图 3)提供的语言包括加速标准语言,如 iso c++、iso fortran 和 python。该平台还支持基于指令的编程模型,如 openacc、openmp、cuda c++ 和 cuda fortran。nvidia hpc sdk支持所有这些方法,以及一组丰富的用于分析和调试的加速库和工具。
图 3. nvidia grace hopper superchip 编程模型 nvidia 是 iso c++ 和 iso fortran 编程语言社区的成员,这使得符合 iso c++ 和 iso fortran 标准的应用程序能够在 nvidia cpu 和 nvidia gpu 上运行,无需任何语言扩展。有关在 gpu 上运行符合 iso 标准的应用程序的更多信息,请参阅使用标准并行 c++ 进行多 gpu 编程和使用 fortran 标准并行编程实现 gpu 加速。 该技术在很大程度上依赖于 nvidia nvlink-c2c 和 nvidia 统一虚拟内存提供的硬件加速内存一致性。如图 4 所示,在没有 ats 的传统 pcie 连接 x86+hopper 系统中,cpu 和 gpu 具有独立的每进程页表,系统分配的内存不能直接从 gpu 访问。当程序使用系统分配器分配内存但页面条目在 gpu 的页表中不可用时,从 gpu 线程访问内存将失败。
图 4. 具有不相交页表的 nvidia hopper 系统 在基于 nvidia grace hopper superchip 的系统中,ats 使 cpu 和 gpu 能够共享单个每个进程的页表,从而使所有 cpu 和 gpu 线程能够访问所有系统分配的内存,这些内存可以驻留在物理 cpu 或 gpu 内存上。cpu 堆、cpu 线程堆栈、全局变量、内存映射文件和进程间内存可供所有 cpu 和 gpu 线程访问。
图 5. nvidia grace hopper 超级芯片系统中的地址转换服务 nvidia nvlink-c2c 硬件一致性使 grace cpu 能够以缓存行粒度缓存 gpu 内存,并使 gpu 和 cpu 无需页面迁移即可访问彼此的内存。 nvlink-c2c 还可以加速 cpu 和 gpu 在系统分配内存上支持的所有原子操作。范围内的原子操作得到完全支持,并且可以跨系统中的所有线程实现细粒度和可扩展的同步。 运行时在第一次接触时使用物理内存支持系统分配的内存,无论是在 lpddr5x 还是 hbm3 上,取决于 cpu 或 gpu 线程是先访问它。从操作系统的角度来看,grace cpu 和 hopper gpu 只是两个独立的 numa 节点。系统分配的内存是可迁移的,因此运行时可以更改其物理内存支持以提高应用程序性能或应对内存压力。 在 nvidia grace hopper 上,这些应用程序明显受益于 nvlink-c2c 提供的更高带宽、更低延迟、更高原子吞吐量和内存一致性硬件加速,无需任何软件更改。
superchip 架构特点
以下是 nvidia grace hopper 架构的主要创新:
nvidia grace cpu
nvidia hopper gpu
nvlink-c2c
nvlink switch system
extended gpu memory
nvidia grace cpu
随着 gpu 的并行计算能力每一代都增加三倍,快速高效的 cpu 对于防止现代工作负载的串行和仅 cpu 部分主导性能至关重要。 nvidia grace cpu 是第一款 nvidia 数据中心cpu,它是从头开始构建的,用于创建 hpc 和 ai超级芯片。grace 提供多达 72 个带有armv9.0-a isa的 arm neoverse v2 cpu 内核,以及每个内核 4×128 位宽的 simd 单元,并支持 arm 的scalable vector extensions 2 (sve2) simd 指令集。 nvidia grace 提供领先的每线程性能,同时提供比传统 cpu 更高的能效。72 个 cpu 内核在specrate 2017_int_base上提供高达 370(估计)的分数,确保高性能以满足 hpc 和 ai 异构工作负载的需求。
图 6. grace hopper 超级芯片中的 nvidia grace cpu 与 amd milan 7763 的最终用户应用程序性能和节能模拟显示,grace cpu 的速度提高了 2.5 倍,而能耗降低了 4 倍 机器学习和数据科学中的现代 gpu 工作负载需要访问大量内存。通常,这些工作负载必须使用多个 gpu 将数据集存储在 hbm 内存中。 nvidia grace cpu 提供高达 512 gb 的 lpddr5x 内存,可在内存容量、能效和性能之间实现最佳平衡。它提供高达 546 gb/s 的 lpddr5x 内存带宽,nvlink-c2c 以 900 gb/s 的总带宽可供 gpu 访问。 单个 nvidia grace hopper 超级芯片为 hopper gpu 提供总计 608 gb 的快速可访问内存,几乎是 dgx-a100-80 中可用的慢速内存总量;上一代的八 gpu 系统。 图 7 所示的 nvidia scf 使这成为可能,这是一种网状结构和分布式缓存,可提供高达 3.2 tb/s 的总二分带宽,以实现 cpu 内核、内存、系统 i/o 和 nvlink 的全部性能- c2c。cpu 内核和 scf 缓存分区 (scc) 分布在整个网格中,而缓存交换节点 (csn) 通过结构路由数据并充当 cpu 内核、缓存内存和系统其余部分之间的接口。
图 7. scf 逻辑概述
nvidia hopper gpu
nvidia hopper gpu是第九代 nvidia 数据中心 gpu。与前几代 nvidia ampere gpu 相比,它旨在为大规模 ai 和 hpc 应用程序提供数量级的改进。hopper gpu 还具有多项创新:
新的第四代张量核心在更广泛的 ai 和 hpc 任务中执行比以往更快的矩阵计算。
与上一代 nvidia a100 gpu 相比,新的 transformer 引擎使 h100 在大型语言模型上的 ai 训练速度提高了 9 倍,ai 推理速度提高了 30 倍。
空间和时间数据局部性和异步执行的改进功能使应用程序能够始终保持所有单元忙碌并最大限度地提高能效。
安全多实例 gpu (mig )将 gpu 划分为隔离的、大小合适的实例,以最大限度地提高较小工作负载的服务质量 (qos)。
图 8. nvidia hopper gpu 实现下一代 ai 和 hpc 突破 nvidia hopper 是第一个真正的异步 gpu。其张量内存加速器 (tma) 和异步事务屏障使线程能够重叠和流水线独立的数据移动和数据处理,使应用程序能够充分利用所有单元。 线程块集群、分布式共享内存和线程块重新配置等新的空间和时间局部性功能为应用程序提供了对更大量共享内存和工具的快速访问。这使应用程序能够更好地重用片上数据,从而进一步提高应用程序性能。
图 9. nvidia hopper gpu 异步执行使独立数据移动与计算重叠(左)。新的空间和时间局部性功能提高了应用程序性能(右)
nvlink-c2c:用于超级芯片的高带宽、芯片到芯片互连
nvidia grace hopper 通过 nvidia nvlink-c2c 将 nvidia grace cpu 和 nvidia hopper gpu 融合到单个超级芯片中,这是一个 900 gb/s 的芯片到芯片相干互连,可以使用统一的编程模型对 grace hopper 超级芯片进行编程。 nvlink chip-2-chip (c2c) 互连在 grace cpu 和 hopper gpu 之间提供高带宽直接连接,以创建 grace hopper superchip,该超级芯片专为 ai 和 hpc 应用程序的嵌入式加速而设计。 凭借 900 gb/s 的双向带宽,nvlink-c2c 以更低的延迟提供 7 倍于 x16 pcie gen 链路的带宽。nvlink-c2c 每传输比特仅使用 1.3 皮焦耳,比 pcie gen 5 节能 5 倍以上。 此外,nvlink-c2c 是一种连贯的内存互连,具有对系统范围的原子操作的本机硬件支持。这提高了对非本地内存的内存访问性能,例如 cpu 和 gpu 线程访问驻留在其他设备中的内存。硬件一致性还提高了同步原语的性能,减少了 gpu 或 cpu 相互等待的时间,并提高了总系统利用率。 最后,硬件一致性还简化了使用流行编程语言和框架的异构计算应用程序的开发。
nvlink 开关系统
nvidia nvlink 开关系统结合了第四代 nvidia nvlink 技术和全新的第三代 nvidia nvswitch。nvswitch 的单级最多可连接八个 grace hopper 超级芯片,胖树拓扑结构中的第二级最多可将 256 个 grace hopper 超级芯片与 nvlink 联网。grace hopper superchip 对以高达 900 gb/s 的速度交换数据。 该网络拥有多达 256 个 grace hopper 超级芯片,可提供高达 115.2 tb/s 的全对全带宽。这是nvidia infiniband ndr400 整体带宽的 9 倍。
图 10. nvidia nvlink 4 nvswitch 的逻辑概述 第四代 nvidia nvlink 技术使 gpu 线程能够使用正常的内存操作、原子操作和批量传输来处理 nvlink 网络中所有超级芯片提供的高达 150 tb 的内存。mpi、nccl或nvshmem等通信库在可用时透明地利用 nvlink 开关系统。
扩展 gpu 显存
nvidia grace hopper superchip 旨在加速具有超大内存占用空间的应用程序,其容量大于单个超级芯片的 hbm3 和 lpddr5x 内存容量。有 高带宽 nvlink-c2c 上的扩展 gpu 内存 (egm) 功能使 gpu 能够高效地访问所有系统内存。egm 在多节点 nvswitch 连接系统中提供高达 150 tb 的系统内存。使用 egm,可以分配物理内存以供多节点系统中的任何 gpu 线程访问。所有 gpu 都可以以 gpu-gpu nvlink 或 nvlink-c2c 的最低速度访问 egm。 grace hopper superchip 配置中的内存访问通过本地高带宽 nvlink-c2c 以 900 gb/s 的速度进行。远程内存访问是通过 gpu nvlink 执行的,并且根据正在访问的内存,还可以使用 nvlink-c2c(图 11)。借助 egm,gpu 线程现在可以以 450 gb/s 的速度访问 nvswitch 结构上的所有可用内存资源,包括 lpddr5x 和 hbm3。
图 11. 跨 nvlink 连接的 grace hopper 超级芯片的内存访问
为下一代家用电器注入更多想象力
可安置在人体皮肤上的声音传感器:既能检测心率还能够控制远程设备
科技新资讯:新浪OLED大热 TCL认购子公司更名
这款硅胶保护套竟然可以为Apple AirPods无线充电
“猎户座”无人机挂载武器配置方案
深入解读NVIDIA Grace Hopper Superchip架构
如何制作arduino驱动的eeg机器
双绞线的原理 双绞线的分类
细数这些年你曾经用过的手机屏
西部数据深耕工业应用场景,以多样化解决方案赋能制造行业智能化转型
基于MCU外部存储器接口的系统设计
在日常生产过程中如何利用测径仪来对线缆进行测量
小米平板3堪比平板价格买电脑
外媒青睐为哪般?LG OLED出众品质蜚声国际
小米自带整合猫眼门铃+广角摄像头的旗舰门锁新品测评介绍
在上海完成国内首次5G医疗手术直播
升级办公方式!MAXHUB 成为OA届的“新物种”
气体传感器有哪四个特性?
Pi滤波器设计技巧
小米新机8X曝光,或为小米8透明探索版的减配版?