NCCL 分布式通信

NCCL 的性能直接决定多机多卡训练的扩展效率。本目录覆盖从理论到压测的完整链路:算法原理 → 安装验证 → 基准测试 → Debug 排障 → 通信路径逐层压测,支持容器化和 Kubernetes 两种部署方式。

文档

# 文档 内容
01 NCCL 技术理论 AllReduce 算法、Ring/Tree 拓扑、RDMA 机制、性能建模
02 单卡验证指南 无需多卡的 NCCL 安装验证
03 详细使用教程 安装、配置、单/多节点测试、容器化部署
04 基准测试方法论 allreduce_perf 编译运行,A100 实测,MIG+NVLink 异常案例
05 Debug 输出解读 NCCL_DEBUG=INFO 逐段拆解,正常/异常速查表
06 通信路径逐层压测 H100 实测:NVLink (316 GB/s) → P2P Disable (24 GB/s)
Kubernetes 部署 K8s 多节点 NCCL 测试方案

工具脚本

文件 用途
nccl_benchmark.sh 主基准测试脚本(NVLink/IB/PXN)
nccl_container_manager.sh 容器化测试管理
nccl_multinode_launcher.sh 原生多节点启动
gpu_topology_detector.sh GPU 拓扑检测
nccl_python_template.py PyTorch 分布式测试模板

快速开始

# 容器化(推荐)
./nccl_container_manager.sh --build
./nccl_container_manager.sh --gpus all --size 100M --time 60

# 拓扑检测
./gpu_topology_detector.sh

# 运行测试套件(验证脚本正确性)
./test/run_all_tests.sh --quick

多节点和 K8s 部署见详细教程K8s 指南


前置条件

  • NVIDIA GPU + CUDA 驱动
  • Docker + NVIDIA Container Toolkit(容器化部署)
  • InfiniBand 或高速以太网(多节点测试)

参考