哈哈哈,NCCL的视频在这:
哈哈哈,自己学习过程中查的一些名词或英文缩写,持续更新中
MNNVL:Multi-Node NVLink (MNNVL) 跨服务器NVLink,或者叫多节点NVlink,服务器间的NVLink通信。
NVB:NVB 连接是针对非 NVSwitch 系统的优化,其中使用GPU的内存来进行GPU之间的P2P通信,这些GPU不是通过NVLink直接连接的。
Hopper:以计算机先驱科学家 Grace Hopper 的名字命名的GPU架构。
NVLS:NVLink SHARP (NVLS)可用于具有Hopper和更高版本GPU架构的第三代NVSwitch系统(NVLink4),允许将ncclAllReduce等集体卸载到NVSwitch域(在网计算)。NVLS将在不支持该功能的系统上自动禁用。SHARP可参考下面连接:
Using NVIDIA SHARP with NVIDIA NCCL - NVIDIA Docs
collNet:是NCCL中的一个插件,用户可自定义通信方式。例如自定义在网计算(in-network computing) SHARP,在通信过程中就进行数据融合,例如Allreduce时,在交换机上就完成数据的加法操作,后续就传递加和的结果,不需要再传递需要所有要加的原始数据,减少需要通信的数据量。
NIC:Network Interface Card(NIC)Using NVIDIA SHARP with NVIDIA NCCL - NVIDIA Docs网卡也叫“网络适配器”
PXN:GPU如果和跨NUMA的NIC网卡通信的话,会过CPU。PXN让该GPU通过NVlink与该NUMA上的GPU通信再将数据传递到NIC上,即数据不经过CPU,传说中的NVlink+PCI。
SHM:机器内共享主机内存通信。
Intra-node:节点内,即服务器内。
Inter-node:节点间,即服务器之间。
busId:NCCL中用来定位一个Pcie设备的id,一个bus上可能会有多个设备(device),一个设备可能会有多个功能(function),busId利用bus+device+function来定位设备。
Nvml:NVIDIA management library(NVML)基于 C 的 API,用于监控和管理 NVIDIA GPU 设备的各种状态。它提供了对通过 nvidia-smi 公开的查询和命令的直接访问。
三种通信协议:Simple、LL、LL128
LL:L(ow)L(atency)协议优化NCCL小数据量传输,小数据量情况下,打不满传输带宽时,优化点同步带来的延迟。低延迟,8字节原子存储(LL):提供低延迟的通信,原子存储操作使用8字节。
LL128:L(ow)L(atency)128协议依赖硬件(NVLink)实现。LL128能够以较低的延迟达到较大的带宽率,NCCL会在带有NVLink的机器上默认使用该协议。低延迟,128字节原子存储(LL128):与LL类似,但原子存储操作使用128字节,某些情况下可能提供更好的带宽效率。
Simple:简化的协议,实现上更简单,针对不需要特别优化的场景。
NCCL 使用 3 种不同的协议:LL、LL128 和 Simple,它们具有不同的延迟(~1us、~2us 和 ~6us)、不同的带宽(50%、95% 和 100%),以及其他影响其性能的差异。
PXN
NCCL 2.12 中引入的新功能称为 PXN ,称为 PCI × NVLink ,因为它使 GPU 能够通过 NVLink 然后通过 PCI 与节点上的 NIC 通信。
SM90
通常指的是NVIDIA GPU架构中的一个流多处理器(Streaming Multiprocessor,简称SM)的版本号。
CUDA IPC(Inter-Process Communication):CUDA提供的一种机制,允许不同进程之间共享CUDA内存对象(如缓冲区、纹理等)。