目录
- 问题描述
- 问题产生原因
- 解决办法
- 最终执行并验证
- 参考网站
- 命令扩展
问题描述
昇腾芯片(910b
/310p
等)进行多卡训练或者推理时需要先获取并配置每张npu
的ip
信息,因此需要执行类似下面问题:
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
问题产生原因
- 宿主机无
hccn_tool
执行命令,可使用下述命令查询(无输出则没有该命令)
whereis hccn_tool
/etc/hccn.conf
文件为空,可使用下述命令查询(无输出则没有该命令)
vi /etc/hccn.conf
- 下面指令需要在宿主机执行,且要确保有权限执行
hccn_tool
python mindformers/tools/hccl_tools.py --device_num "[0,8)"
解决办法
注:hccn_tool
命令无法识别则需要安装必要的工具组件,不在本文考虑范围
/etc/hccn.conf
文件为空时,按照下面方法手动生成/etc/hccn.conf
文件:
以下是定义每个NPU
的IP
地址的一般步骤:
-
确定
NPU
设备数量:首先,您需要知道您的系统中有多少个NPU
设备,以及它们在系统中的索引号(通常是从0开始的整数)。 -
规划
IP
地址范围:您需要规划一个IP
地址范围,专门用于NPU设备。这些IP
地址应该是您网络中未被使用的,并且最好在一个单独的子网中。 -
分配
IP
地址:为每个NPU
设备分配一个唯一的IP
地址。通常,这些地址会按照NPU
设备的索引号顺序分配。 -
设置子网掩码:为
NPU
设备设置适当的子网掩码。子网掩码定义了网络的大小和可用的IP
地址范围。常见的子网掩码如255.255.255.0
表示网络中可以有256个IP
地址。 -
使用
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)"
显示下面命令则表示执行成功
参考网站
- mindformers生成hccl.json文件的时候报错
- 基于昇腾的大模型部署
- kimi
命令扩展
hccn_tool -i 1 -ip -g # 获取索引为1的NPU设备的IP配置信息