NVSHMEM 安装指南#
本 NVIDIA NVSHMEM 安装指南提供下载和安装 NVSHMEM 3.1.7 的分步说明
概述#
NVIDIA® NVSHMEM™ 是一种编程接口,它在 NVIDIA GPU 集群上实现分区全局地址空间 (PGAS) 模型。NVSHMEM 提供了一个易于使用的接口来分配在 GPU 之间对称分布的内存。除了 CPU 端接口之外,NVSHMEM 还提供 CUDA 内核端接口,允许 NVIDIA CUDA® 线程访问对称分布内存中的任何位置。
硬件要求#
NVSHMEM 需要以下硬件
x86_64
或aarch64
CPU 架构。NVIDIA 数据中心 GPU,采用 NVIDIA Volta™ GPU 架构或更高版本。
有关完整列表,请参阅 https://developer.nvidia.com/cuda-gpus。
- 所有 GPU 必须通过 NVLink/PCIe 或 GPUDirect RDMA 进行 P2P 连接。支持以下网络
InfiniBand/RoCE,配备 Mellanox 适配器(CX-4 或更高版本)
Slingshot-11 (Libfabric CXI 提供程序)
Amazon EFA (Libfabric EFA 提供程序)
原子操作支持需要 NVLink 连接或 GPUDirect RDMA 连接以及 GDRCopy。有关更多信息,请参阅软件要求。
软件要求#
NVSHMEM 需要以下软件
64 位 Linux。
有关完整的兼容性矩阵,请参阅NVIDIA CUDA Linux 安装指南。
支持 C++11 的 C++ 编译器。
CUDA 10.2 或更高版本。
CMake 3.19 或更高版本
NVLink SHARP
需要 CUDA 12.1 或更高版本。
需要 nvidia.ko 530.30.02 或更高版本。它在采用 Hopper 及更高 GPU 架构的第三代 NVSwitch 系统 (NVLink4) 中可用,这允许将诸如
nvshmem_<TYPENAME>_reduce
之类的集合操作卸载到 NVSwitch 域。
(可选)InfiniBand GPUDirect Async (IBGDA) 传输
需要 Mellanox OFED >= 5.0
需要 nvidia.ko >= 510.40.3。支持两种操作模式:默认模式和 CPU 辅助模式。- 在默认情况下,必须加载 PeerMappingOverride=1 的 nvidia.ko,方法是更改 /etc/modprobe.d/nvidia.conf 文件中的选项,将选项 nvidia NVreg_RegistryDwords=”PeerMappingOverride=1;”更改为 - 在 CPU 辅助模式下,不需要
PeerMappingOverride
。需要 nvidia-peermem >= 510.40.3
有关更多信息,请参阅:GPUDirect Async。
(可选)Mellanox OFED。
构建 IBRC 传输需要此软件。如果 OFED 不可用,则可以使用环境中设置的
NVSHMEM_IBRC_SUPPORT=0
构建 NVSHMEM。
(可选)用于 GPUDirect RDMA 的 nvidia-peermem。
当在编译时未设置
NVSHMEM_IBRC_SUPPORT=0
和NVSHMEM_UCX_SUPPORT=0
时,此软件必须使用 IBRC 和 UCX 传输,并且是必需的。注意
IBRC 和 UCX 传输都使用 GDRCopy 来执行原子操作。如果用户正在使用这些传输中的任何一种并打算执行原子操作,则他们必须启用 GDRCopy 支持。所有其他传输都不依赖 GDRCopy,在这些情况下不需要它。
PMI-1(例如,Hydra)、PMI-2(例如,Slurm)或 PMIx(例如,Open MPI)兼容的启动器。
(可选)GDRCopy v2.0 或更高版本。
在非 NVLink 连接上进行原子操作支持需要此软件。
当在编译时未设置
NVSHMEM_IBRC_SUPPORT=0
和NVSHMEM_UCX_SUPPORT=0
时,这是必需的。
(可选)UCX 1.10.0 或更高版本。
构建 UCX 传输需要此软件。
注意
UCX 必须配置为
--enable-mt
和--with-dm
。(可选)libfabric 1.15.0.0 或更高版本
(可选)NCCL 2.0 或更高版本。
(可选)PMIx 3.1.5 或更高版本。
系统要求#
CUDA MPS 服务是可选的。当每个 GPU 使用多个进程时,为了支持完整的 NVHSMEM API,必须在系统上配置 CUDA MPS 服务器。为了避免死锁情况,进程之间共享的总 GPU 利用率必须限制在 100% 或更低。
有关如何配置 MPS 服务器的更多信息,请参阅多进程服务。