HCCL通信集群检测

官方文档

MPI-3.2.1

  1. 安装MPI
tar -zxvf mpich-3.2.1.tar.gz
cd mpich-3.2.1
./configure --disable-fortran  --prefix=/usr/local/mpich-3.2.1
make && make install
  1. 编译HCCL测试算子
export INSTALL_DIR=/usr/lcoal/Ascend/ascend-toolkit/latest
export PATH=/usr/local/mpich-3.2.1/bin:$PATH
export LD_LIBRARY_PATH=${INSTALL_DIR}/lib64:$LD_LIBRARY_PATH:/usr/local/mpich-3.2.1/lib

cd ${INSTALL_DIR}/tools/hccl_test
make MPI_HOME=/usr/local/mpich-3.2.1 ASCEND_DIR=${INSTALL_DIR}

编译成功后,会在${INSTALL_DIR}/tools/hccl_test/bin目录下生成集合通信性能测试工具的可执行文件,例如:

all_gather_test、all_reduce_test等,每一个可执行文件对应一个集合通信算子。

  1. 使用准备
  • 使用mpirun工具前,请确保已配置MPI工具相关环境变量,请参见配置环境变量
  • 运行环境已关闭防火墙。
  • 由于Master节点允许处理的并发建链数受linux内核参数“somaxconn”与“tcp_max_syn_backlog”的限制,所以,针对大规模集群组网,若“somaxconn”与“tcp_max_syn_backlog”取值较小会导致部分客户端概率性提前异常退出,导致集群初始化失败
  1. 多机测试
    4.1 变量导入
配置HCCL的初始化root通信网卡使用的IP协议版本,AF_INET:IPv4;AF_INET6:IPv6
export HCCL_SOCKET_FAMILY=AF_INET       #IPv4

# 支持以下格式的网卡名配置(4种规格自行选择1种即可,环境变量中可配置多个网卡,取最先匹配到的网卡作为root网卡)

# 精确匹配网卡
export HCCL_SOCKET_IFNAME==eth*,enp***   # 使用指定的eth*或enp**网卡
export HCCL_SOCKET_IFNAME=^=eth*,enp***     # 不使用指定的eth*或enp**网卡

# 模糊匹配网卡
export HCCL_SOCKET_IFNAME=eth,enp       # 使用所有以eth或enp为前缀的网卡
export HCCL_SOCKET_IFNAME=^eth,enp      # 不使用任何以eth或enp为前缀的网卡

4.2 准备hostfile 格式如下

# 训练节点ip:每节点的进程数
10.78.130.22:8
10.78.130.21:8

4.3 训练

# n 为NPU个数
cd hccl_test
mpirun -f hostfile -n 16 ./bin/all_reduce_test -b 8K -e 64M -f 2 -d fp32 -o sum -p 8
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容