GPU 测试开发的一些概念总结
1. 常见概念1. NCCLNVIDIA Collective Communications Library做什么专门优化多 GPU / 多节点的集体操作AllReduce最常用梯度汇总Broadcast、Reduce、AllGather 等特点拓扑感知自动识别 NVLink / PCIe / InfiniBand选最优路径通信 计算融合一个 kernel 做完通信和算术延迟低谁在用PyTorch DDP、DeepSpeed、Megatron-LM 底层默认就是 NCCL2. NVSHMEMNVIDIA SHMEM一句话把整个集群所有 GPU 显存拼成一个 “全局大内存”GPU 直接读写远程显存不用 CPU 中转。NVIDIA模型PGAS分区全局地址空间每个 GPU 都能直接访问别人的显存通信方式单边通信one‑sidedshmem_put写远程显存shmem_get读远程显存原子操作NVIDIA特点GPU 发起通信CUDA kernel 里直接发网络请求不用 CPU 启动适合细粒度、频繁的小数据访问比如 MoE 路由、稀疏计算和 NCCL 区别NCCL主打集合通信AllReduceNVSHMEM主打单边、点到点、细粒度3. UCXUnified Communication X一句话HPC/AI 的 “万能通信底座”统一 RDMA、共享内存、TCP 等所有底层传输上层MPI/NCCL/OpenSHMEM都可以基于它。定位通信框架的框架把不同硬件IB、RoCE、PCIe、共享内存统一成一套 API分层UCT底层传输层RDMA、SHM、TCPUCP高层协议层MPI、RMA 等特点性能接近原生硬件开销极低NCCL 可插 UCX 插件NVSHMEM、OpenMPI 都能用 UCX场景超算、大模型分布式训练、存储系统4. GDRCopyGPU Direct RDMA Copy一句话基于 GPUDirect RDMA 的CPU ↔ GPU 显存超低延迟拷贝库 **小数据比 cudaMemcpy 快很多。**传统 cudaMemcpy走 GPU 拷贝引擎 → 有 6–7us 固定开销小数据慢GDRCopy把 GPU 显存直接映射到用户态CPU 直接读写显存绕过内核、绕过系统内存微秒级延迟用途高频、小块 CPU ↔ GPU 数据交换UCX、NVSHMEM、OpenMPI 底层都用它加速限制CPU 占用更高只支持 Tesla/Quadro 卡5. GPUDirect RDMA一句话硬件级能力让网卡或其他 PCIe 设备直接读写 GPU 显存 **完全绕开 CPU 和主机内存。**NVIDIA传统路径GPU → 主机内存 → 网卡 → 网络两次拷贝 CPU 参与GPUDirect RDMA网卡 DMA 直接访问 GPU 显存零拷贝、无 CPU 干预NVIDIA条件GPU 网卡如 ConnectX‑6同 PCIe 根复合体NVIDIA地位GDRCopy、NVSHMEM、UCX、NCCLIB/RoCE 路径都依赖它大模型跨节点通信的性能基石6. 区别和联系GPUDirect RDMA✅硬件能力底层通道✅ 面向网卡 / 存储 ↔ GPU✅ CPU不能直接用只能第三方 PCIe 设备用NVIDIAGDRCopy✅软件库基于上述能力✅ 面向CPU ↔ GPU✅ 把显存暴露给 CPU用户态直接访问NVIDIA