自研集合通信库(ACCL-P)使用最佳实践

更新时间:
复制 MD 格式

ACCL-P 是 PAI-PPU 的自研集合通信库,针对跨机 RDMA 通信和机内 ICN-Link 拓扑提供最优配置方案。

跨机通信:在PAI-PPU中使用跨机RDMA网络

PAI中的ml.gp7vf.16.40xlarge和ml.gp7vf.16.46xlarge机型使用了自研RDMA网卡,请确保容器环境中已设置以下环境变量,以使跨机通信走 RDMA 网络:

export NCCL_SOCKET_IFNAME=eth0
export NCCL_IB_HCA=
export NCCL_DEBUG=INFO
export NCCL_IB_DISABLE=1

关键环境变量

环境变量说明

NCCL_SOCKET_IFNAME

通信库选择建连的端口,不同的机型、多租和单租都有差异,不配置或者配置错误可能会导致通信库建连不起来

NCCL_DEBUG

一般配置为INFO,如果不配置,可能导致没有足够的日志来定位问题

NCCL_IB_HCA

指定RDMA通信的网卡。不同机型的IBdev数量和命名规则不同,PPU已做适配,设置为空即可匹配所有网卡。

NCCL_IB_DISABLE

默认为 0,需设置为 1。

说明

上述环境变量在PAI-PPU官方镜像中已经内置,请勿随意更改。

机内通信:在PAI-PPU中使用最佳ICN-Link拓扑

PAI-PPU机型使用了独特的16卡ICN-Link机内互联(如下图所示)。为达到最优性能,根据模型的并行策略,通过环境变量配置 CUDA 设备顺序。

image

一般来说,TP(张量并行)对通信带宽更为敏感,只需考虑TP并行度,设置CUDA设备顺序即可。

并行策略

环境变量设置

TP 2

export CUDA_VISIBLE_DEVICES=4,7,5,6,1,2,0,3,12,15,13,14,9,10,8,11

TP 4

export CUDA_VISIBLE_DEVICES=4,5,7,6,0,1,3,2,9,8,10,11,13,12,14,15

TP 8

export CUDA_VISIBLE_DEVICES=4,5,7,6,2,3,1,0,13,12,14,15,11,10,8,9

TP1/TP 16

无需配置

当采取复杂的5D并行策略时,一般也只需考虑TP并行度(如无TP并行则视为TP=1)。如遇极端情况导致任务运行异常或性能受损,建议提交工单寻求技术支持。