未指定网卡名报错retcode 9
问题现象
多机测试场景下,执行HCCL Test测试工具时,进程执行卡住,然后报错retcode 9,如下图所示:
# mpirun -f hostfile -n 32 ./bin/all_reduce_test -b 1 -e 2G -p 16 -f 2 -o sum -c 0 the minbytes is 1, maxbytes is 2147483648, iters is 20,warmup_iters is 5 hccl interface return errreturn err ./common/src/hccl_test_common.cc:499, retcode:9 hccl interface return errreturn err ./common/src/hccl_test_common.cc:499, retcode:9 hccl interface return errreturn err ./common/src/hccl_test_common.cc:499, retcode:9 hccl interface return errreturn err ./common/src/hccl_test_common.cc:499, retcode:9 ... This is an error in init_hcclComm.
原因分析
未配置初始化root通信网卡名导致。
解决步骤
多机场景下,执行HCCL Test测试工具前需要在操作节点配置HCCL初始化root通信网卡的网卡名,HCCL可通过该网卡名获取Host IP,完成通信域创建。
配置方式如下:
配置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为前缀的网卡
需要注意:
MPI工具执行时,会将环境变量同步到所有节点,如果参与集合通信的不同节点的网卡名字不同,例如node1的网卡名为eth1,node2的网卡名为eth2,则需要使用模糊匹配网卡的方式进行环境变量配置。
父主题: HCCL Test常见问题总结