使用昇腾芯片进行多卡训推时使用hccl_tools.py为npu分配ip报错问题解决办法

问题描述

昇腾芯片(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配置信息

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 15:40:01       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 15:40:01       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 15:40:01       4 阅读
  4. Python语言-面向对象

    2024-07-10 15:40:01       5 阅读

热门阅读

  1. ThreadLocal的内存泄漏

    2024-07-10 15:40:01       9 阅读
  2. 【软件工程中的演化模型及其优缺点】

    2024-07-10 15:40:01       10 阅读
  3. Linux 例题及详解

    2024-07-10 15:40:01       10 阅读
  4. 金蝶云苍穹-插件开发(四)GPT开发相关插件

    2024-07-10 15:40:01       13 阅读
  5. Windows图形界面(GUI)-SDK-C/C++ - 应用程序结构

    2024-07-10 15:40:01       14 阅读
  6. MySQL 速记SQL语句(SQL语句学习)

    2024-07-10 15:40:01       11 阅读
  7. xformers版本与其依赖pytorch版本的对应关系

    2024-07-10 15:40:01       9 阅读