问题描述

昇腾芯片(910b/310p等)进行多卡训练或者推理时需要先获取并配置每张npuip信息,因此需要执行类似下面问题:

python mindformers/tools/hccl_tools.py --device_num "[0,8)"

执行后报错:
请添加图片描述
注意:有的报错显示Command execute failed!
有的报错显示/bin/sh: hccn_tool: command not found
Failed to call hccn_tool, try to read /etc/hccn.conf instead

问题产生原因

  1. 宿主机无hccn_tool执行命令,可使用下述命令查询(无输出则没有该命令)
whereis hccn_tool

在这里插入图片描述

  1. /etc/hccn.conf文件为空,可使用下述命令查询(无输出则没有该命令)
vi /etc/hccn.conf
  1. 下面指令需要在宿主机执行,且要确保有权限执行hccn_tool
python mindformers/tools/hccl_tools.py --device_num "[0,8)"

解决办法

注:hccn_tool命令无法识别则需要安装必要的工具组件,不在本文考虑范围

/etc/hccn.conf文件为空时,按照下面方法手动生成/etc/hccn.conf文件:
以下是定义每个NPUIP地址的一般步骤:

  1. 确定NPU设备数量:首先,您需要知道您的系统中有多少个NPU设备,以及它们在系统中的索引号(通常是从0开始的整数)。

  2. 规划IP地址范围:您需要规划一个IP地址范围,专门用于NPU设备。这些IP地址应该是您网络中未被使用的,并且最好在一个单独的子网中。

  3. 分配IP地址:为每个NPU设备分配一个唯一的IP地址。通常,这些地址会按照NPU设备的索引号顺序分配。

  4. 设置子网掩码:为NPU设备设置适当的子网掩码。子网掩码定义了网络的大小和可用的IP地址范围。常见的子网掩码如255.255.255.0表示网络中可以有256个IP地址。

  5. 使用hccn_tool配置IP:使用hccn_tool命令为每个NPU设备设置IP地址和子网掩码。

例如(8卡npu配置如下),可以先ping一下每个ip是否有被使用,没有被使用则可以执行下面命令:

hccn_tool -i 0 -ip -s address 192.168.100.100 netmask 255.255.255.0
hccn_tool -i 1 -ip -s address 192.168.100.101 netmask 255.255.255.0
hccn_tool -i 2 -ip -s address 192.168.100.102 netmask 255.255.255.0
hccn_tool -i 3 -ip -s address 192.168.100.103 netmask 255.255.255.0
hccn_tool -i 4 -ip -s address 192.168.100.104 netmask 255.255.255.0
hccn_tool -i 5 -ip -s address 192.168.100.105 netmask 255.255.255.0
hccn_tool -i 6 -ip -s address 192.168.100.106 netmask 255.255.255.0
hccn_tool -i 7 -ip -s address 192.168.100.107 netmask 255.255.255.0

最终执行并验证

终端执行以下命令:

python mindformers/tools/hccl_tools.py --device_num "[0,8)"

显示下面命令则表示执行成功
在这里插入图片描述

参考网站

命令扩展

hccn_tool -i 1 -ip -g  # 获取索引为1的NPU设备的IP配置信息

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部