文章目录
- 前言
- 1. NCCL简介
- 2. 如何使用NCCL
前言
NCCL 源码解析总目录
简单写几个重点。
如有问题,请留言指正。
1. NCCL简介
-
NCCL主要用来集体通信的,提高多个CUDA设备的通信效率
-
发展,2.X 主要支持多个节点
-
NCCL中使用的通信总线:一个节点内:NVLINK、PCIE、P2P;多个节点:Sockets、RDMA等
-
NCCL在软件栈中的位置,向上由深度学习框架调用,向下通过CUDA库操作设备
-
功能简述,NCCL 在 ring-based collective communication 中主要做的就是将要使用的多个CUDA设备,建立多个环,多个channel。图中比较简单,就一个环。
-
NCCL 主要的API如下:初始化API、通信原语API、点对点API、析构API;
2. 如何使用NCCL
- 一个进程管理一个GPU
- 一个线程管理一个GPU
- 一个节点一个进程,每个进程管理多个GPU
PPT 讲的也挺清楚的:
- 性能比较