Grace 性能调优指南#

简介#

NVIDIA® Grace™ CPU 是 NVIDIA 设计的首款数据中心 CPU。Grace CPU 具有 72 个高性能且节能的 Arm Neoverse V2 核心,这些核心通过高性能 NVIDIA 可扩展一致性 Fabric 和服务器级 LPDDR5X 内存连接。

NVIDIA Grace CPU 产品组合包括 NVIDIA Grace CPU Superchip,它是双路服务器的核心,在一个紧凑的模块中具有 144 个 Arm Neoverse V2 核心和高达 960GB 的 LPDD5X 内存,CPU 和内存仅需 500W 功耗。为了提供额外的灵活性,Grace CPU C1 在单路配置中提供了惊人的性能,该配置针对云、存储、边缘和电信部署进行了优化,并且每瓦性能是传统 x86 服务器的两倍。

Grace CPU 也可在 NVIDIA GH200 Grace Hopper™ Superchip 架构中找到。Grace Hopper Superchip 将 Grace CPU 与 NVIDIA Hopper™ GPU 配对,以最大限度地提高高性能加速计算、数据处理和生成式 AI 工作负载的能力。NVLink®-C2C 将 CPU 和 GPU 连接起来,带宽是 PCIe Gen 5 x16 的七倍,并提供内存一致性以简化编程。Grace Hopper Superchip 还为 NVIDIA GH200 NVL2 提供动力,该 NVL2 通过 NVLink 完全连接两个 Grace Hopper Superchip。

_images/grace_cpu_superchip.png

NVIDIA Grace CPU Superchip#

下表提供了 NVIDIA Grace CPU Superchip 的规格。

NVIDIA Grace CPU Superchip 规格#

NVIDIA Grace CPU C1

NVIDIA Grace CPU Superchip

配置

1x Grace CPU

2x Grace CPU

核心数

72 个 Arm Neoverse V2 核心,每个核心具有 4x 128b SVE2

144 个 Arm Neoverse V2 核心,每个核心具有 4x 128b SVE2

L1 缓存

每个核心 64KB i-cache + 64KB d-cache

每个核心 64KB i-cache + 64KB d-cache

L2 缓存

每个核心 1MB

每个核心 1MB

L3 缓存

114MB

228MB

LPDDR5X 大小

提供 120GB、240GB 和 480GB 板载内存选项

提供 240GB、480GB 和 960GB 选项

内存带宽

  • 480GB 最高可达 384 GB/s

  • 120GB、240GB 最高可达 512 GB/s

  • 960GB 最高可达 768 GB/s

  • 240GB、480GB 最高可达 1024 GB/s

NVLink-C2C 带宽

不适用

最高可达 900 GB/s

PCIe 链路

最多 4 个 PCIe Gen 5x16,可选择分叉

最多 8 个 PCIe Gen 5 x16,可选择分叉

下表提供了 GH200 Grace Hopper Superchip 的规格。

NVIDIA GH200 Grace Hopper Superchip 规格#

NVIDIA GH200 Grace Hopper Superchip

NVIDIA GH200 NVL2

配置

1x Grace CPU 和 1x Hopper GPU

2x Grace CPU 和 2x Hopper GPU

核心数

72 个 Arm Neoverse V2 核心,每个核心具有 4x 128b SVE2

144 个 Arm Neoverse V2 核心,每个核心具有 4x 128b SVE2

CPU 内存容量

高达 480 GB LPDDR5X

高达 960 GB LPDDR5X

CPU 内存带宽

高达 500 GB/s

高达 1 TB/s

GPU 内存容量

96GB HBM3 | 144 GB HBM3e

高达 288 GB HBM3e

GPU 内存带宽

高达 4 TB/s | 高达 4.9 TB/s

高达 9.8 TB/s

NVLInk 带宽

不适用

最高可达 900 GB/s

高性能架构#

Grace CPU 具有高单线程性能、高内存带宽和出色的数据移动能力,以及领先的每瓦性能。为了实现 Grace CPU Superchip,这些设计目标需要多项创新。

Grace Hopper CPU+GPU Superchip 将 Grace CPU 的高性能与 NVIDIA H100 GPU 的世界一流 GPU 性能相结合。

通过 NVIDIA 可扩展一致性 Fabric 扩展核心和带宽#

NVIDIA 可扩展一致性 Fabric (SCF)(如Grace + Hopper Superchip 系统概述图形中所示)是由 NVIDIA 设计用于扩展核心和带宽的网状 Fabric 和分布式缓存架构。为了保持 CPU 核心、NVLink-C2C、内存和系统 IO 之间的数据流动,SCF 提供了超过 3.2 TB/s 的总二等分带宽。

CPU 核心和 SCF 缓存分区分布在整个网状结构中,缓存交换节点通过 Fabric 路由数据,并充当 CPU、缓存和系统 IO 之间的接口。Grace CPU Superchip 在两个芯片上具有 234 MB 的分布式 L3 缓存。

_images/grace_cpu_and_scalable_coherency_fabric.png

NVIDIA Grace CPU 和 NVIDIA 可扩展一致性 Fabric#

上图显示了 NVIDIA Grace CPU 和 NVIDIA 可扩展一致性 Fabric,它们将 Neoverse V2 核心以及分布式缓存和系统 IO 连接到高带宽网状互连中。Grace CPU 支持内存分区和监控 (MPAM),这是 Arm® 标准,用于对系统缓存和内存资源进行分区,以在作业之间提供性能隔离。通过使用 MPAM,NVIDIA 设计的 SCF 缓存支持缓存容量、I/O 和内存带宽的分区。MPAM 还支持使用 MPAM 性能监视器组 (PMG) 来监视资源,例如缓存存储使用率和内存带宽使用率。

LPDDR5X 内存子系统#

Grace CPU Superchip 使用高达 960 GB 的服务器级 LPDDR5X 内存,并带有错误校正码 (ECC)。这种设计在带宽、能源效率、容量和大规模 AI 和 HPC 工作负载的成本之间取得了最佳平衡。

Grace CPU LPDDR5X 内存子系统仅在约 16W 的功耗下提供高达 500 GB/s 的带宽。这仅为 12 通道传统 DDR5 内存功耗的五分之一。HBM2e 内存子系统提供出色的内存带宽和能源效率,但每 GB 成本是 LPDDR5X 的三倍以上,最大容量仅为 LPDDR5X 的八分之一。

Grace CPU LPDDR5X 架构是首个数据中心级、弹性的 LPDDR 技术实现。LPDDR5 通道备用还在重新启动时恢复内存子系统的健康状况,从而降低了因内存故障导致的服务率。这使得 Grace CPU 可以部署在可维护性困难且成本高昂的场景中。

共封装内存采用了一种新颖的配置和错误检测技术,无需在现场维修或更换故障内存,从而使 Grace CPU 可以部署在可维护性困难或成本高昂的场景中。

LPDDR5X 的较低功耗降低了整体系统功耗要求,并使更多资源可用于 CPU 核心。紧凑的外形尺寸实现了典型基于 DIMM 设计的两倍密度。

CPU I/O#

Grace CPU Superchip 支持高达 128 条通道的 PCIe Gen 5 用于 I/O 连接,每个 PCIe Gen 5 x16 链路支持高达 128 GB/s 的双向带宽,并且为了增加连接性,可以分叉为 2x8。为系统管理目的提供了额外的 PCIe 接口。服务器制造商可以将标准扩展选项用于各种 PCIe 插槽外形尺寸,并开箱即用地支持 NVIDIA GPU、NVIDIA DPU、NVIDIA ConnectX SmartNIC、E1.S 和 M.2 NVMe 设备、模块化 BMC 选项等。

Grace CPU 核心架构#

Grace CPU Neoverse V2 核心实现了 Armv9.0-A 架构,该架构扩展了 Armv8-A 架构中定义的架构,直至 Armv8.5-A。为 Armv8 架构(直至 Armv8.5-A)构建的应用程序二进制文件将在 NVIDIA Grace 上执行,这包括以 Ampere Altra、AWS Graviton2 和 AWS Graviton3 等 CPU 为目标的二进制文件。

重要提示

NVIDIA HPC 编译器为固定长度编译,这在 Graviton 和 Grace 等之间不是二进制兼容的。

SIMD 向量化#

Neoverse V2 在 4x128 位配置中实现了以下单指令多数据 (SIMD) 向量指令集

  • 可扩展向量扩展版本 2 (SVE2)

  • 高级 SIMD (NEON)

四个 128 位功能单元中的每一个都可以执行 SVE2 或 NEON 指令,这种设计允许更多代码利用 SIMD 性能。

许多应用程序和库已经在使用高级 SIMD(也称为 NEON)。SVE 是一种与长度无关的下一代 SIMD 指令集架构(与高级 SIMD 正交),并提供预测、首次错误加载、gather、scatter、扩展到大向量长度而无需重新编译或手动移植到新向量长度等功能。SVE2 提供向量长度灵活性,这使得软件工作可以专注于特定于应用程序的优化。

SVE 已在许多旗舰 Arm 实现中实现,通过对 Grace CPU 使用与长度无关的指令,可以累积到可移植的二进制文件,确保与 SVE 优化的兼容性。SVE2 还使用可以加速关键 HPC 应用(如机器学习、基因组学和密码学)的高级指令扩展了 SVE ISA。

有关常用编译器的命令行选项,请参阅编译器

原子操作#

NVIDIA Grace CPU 支持 Armv8.1 中引入的大型系统扩展 (LSE)。LSE 提供以下低成本原子操作,可以提高 CPU 到 CPU 通信、锁和互斥锁的系统吞吐量

  • 比较和交换指令 CAS 和 CASP。

  • 原子内存操作指令 LD<OP> 和 ST<OP>,其中 <OP> 为 ADD、CLR、EOR、SET、SMAX、SMIN、UMAX 或 UMIN。

  • 交换过程 SWP。

这些指令可以对整数数据进行操作。所有支持 Grace CPU 的编译器都会在同步函数中自动使用这些指令,例如 GCC 的 __atomic 内置函数。当使用 LSE 原子操作而不是加载/存储独占操作时,性能会有巨大提升。例如,可以使用一个原子 ADD 而不是以下序列来递增共享整数值

  1. 加载独占。

  2. 添加。

  3. 尝试存储独占。

  4. 如果操作失败,则重复该序列。

其他 Armv9 功能#

Grace CPU 实现了 Armv9 产品组合的多个关键功能,这些功能在通用数据中心 CPU 中提供实用程序,包括加密加速、可扩展分析扩展、虚拟化扩展和安全启动。除了标准的 Armv9 功能外,Grace 还支持全内存加密。

基于 Grace Hopper 的应用程序的性能调优#

NVIDIA GH200 Grace Hopper Superchip 支持 CUDA 统一内存的所有功能(有关特定于 Grace Hopper 的性能调优的更多信息,请参阅 CUDA 统一内存编程指南)。

NVIDIA Hopper 调优指南中的性能调优信息适用于调整 Superchip 上 Hopper GPU 的应用程序性能。