目錄
- 問題描述
- 問題產生原因
- 解決辦法
- 最終執行并驗證
- 參考網站
- 命令擴展
問題描述
昇騰芯片(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配置信息