- 安装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
- 编译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等,每一个可执行文件对应一个集合通信算子。
- 使用准备
- 使用mpirun工具前,请确保已配置MPI工具相关环境变量,请参见配置环境变量。
- 运行环境已关闭防火墙。
- 由于Master节点允许处理的并发建链数受linux内核参数“somaxconn”与“tcp_max_syn_backlog”的限制,所以,针对大规模集群组网,若“somaxconn”与“tcp_max_syn_backlog”取值较小会导致部分客户端概率性提前异常退出,导致集群初始化失败
- 多机测试
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