使用昇騰芯片進行多卡訓推時使用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)"

顯示下面命令則表示執行成功
在這里插入圖片描述

參考網站

  • mindformers生成hccl.json文件的時候報錯
  • 基于昇騰的大模型部署
  • kimi

命令擴展

hccn_tool -i 1 -ip -g  # 獲取索引為1的NPU設備的IP配置信息

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42908.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42908.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42908.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[AI 大模型] Meta LLaMA-2

文章目錄 [AI 大模型] Meta LLaMA-2簡介模型架構發展新技術和優勢示例 [AI 大模型] Meta LLaMA-2 簡介 Meta LLaMA-2 是 Meta 推出的第二代開源大型語言模型(LLM),旨在為研究和商業應用提供強大的自然語言處理能力。 LLaMA-2 系列模型包括從…

Python實現串口通信(Python+Stm32)詳解

Python實現串口通信(PythonStm32)詳解 引言 在現代的嵌入式系統開發和自動化控制中,串口通信是一種非常常見的通信方式。Python作為一種易于學習且功能強大的編程語言,結合Stm32微控制器,能夠實現高效、靈活的串口通…

Python29 Tensorflow的基本知識和使用

1. TensorFlow TensorFlow 是一個開源的機器學習框架,由 Google Brain 團隊開發。它用于數據流圖的計算,尤其擅長深度學習任務。在 TensorFlow 中,數據流圖(Data Flow Graph)是其核心概念之一,它定義了計算…

Blackbox AI : 全新的人工智能編碼助手 您的高效AI開發全能助手

🎬 鴿芷咕:個人主頁 🔥 個人專欄: 《C干貨基地》《粉絲福利》 ??生活的理想,就是為了理想的生活! 引入 提起AI 智能編碼助手,相信到了如今大家都不陌生。其對我們開發的代碼時的效率有顯著的提升,可以說…

效果驚人!LivePortrait開源數字人技術,讓靜態照片生動起來

不得了了,快手已經不是眾人所知的那個短視頻娛樂平臺了。 可靈AI視頻的風口尚未過去,又推出了LivePortrait--開源的數字人項目。LivePortrait讓你的照片動起來,合成逼真的動態人像視頻,阿里通義EMO不再是唯一選擇。 讓圖像動起來 LivePortrait 主要提供了對眼睛和嘴唇動作的…

Mattermost:一個強大的開源協作平臺

Mattermost是一個強大的開源協作平臺,基于云原生架構,為企業級用戶提供安全、可擴展且自托管的消息傳遞解決方案。 一、平臺特點 開源與定制性:Mattermost是一個開源項目,用戶可以根據自身需求定制界面、添加功能或擴展其功能&am…

[大師C語言(第四十一篇)]C語言指針數組與數組指針技術詳解

C語言中的指針和數組是兩個核心概念,它們在許多高級編程任務中扮演著重要角色。本文將深入探討C語言中的指針數組與數組指針,包括它們的基本概念、使用場景和技術細節。我們將通過詳細的解釋和實用的代碼案例來展示如何有效地使用這些技術。 第一部分&a…

matlab 卷積和多項式乘法

目錄 一、算法原理1、原理概述2、主要函數二、代碼實現1、通過卷積計算多項式乘法2、向量卷積3、卷積的中心部分三、參考鏈接一、算法原理 1、原理概述 兩個向量 u u u和 v v v的卷積,表示

大屏自適應容器組件 v-scale-screen

在vue中,v-scale-screen可用于大屏項目開發,實現屏幕自適應,可根據寬度自適應,高度自適應,和寬高等比例自適應,全屏自適應。 倉庫地址:github國內地址:gitee 一、安裝 npm instal…

qr 獲取當前路徑

qDebug() 函數在 Qt 應用程序中用于輸出調試信息。這些信息通常被發送到標準輸出(stdout)或標準錯誤(stderr),具體取決于你的應用程序是如何配置的。在大多數開發環境中,你可以通過以下方式查看 qDebug() 輸…

React setState

老生常談之setState 是同步的還是異步的? 設想setState是同步的,那也就是每次調用setState都要進行新舊虛擬DOM的對比,然后將差異化的dom更新到頁面上,性能損耗很大 所以react把setState設置為了異步,當狀態更新時不…

【Unity2D 2022:Audio】添加游戲音樂和音效

一、添加背景音樂 1. 創建空的游戲物體,名為BackgroundMusic 2. 為音頻播放器添加音頻源(Audio Source)組件 3. 將背景音樂音頻賦值到AudioClip(紅色) 4. 設置循環播放(藍色) 二、添加草莓拾取…

springboot封裝請求參數json的源碼解析

源碼位置: org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver#readWithMessageConverters(org.springframework.http.HttpInputMessage, org.springframework.core.MethodParameter, java.lang.reflect.Type…

解答 | http和https的區別,誰更好用

TTP(超文本傳輸協議)和HTTPS(安全超文本傳輸協議)的主要區別在于安全性和數據傳輸的方式。 一、區別 1、協議安全性: HTTP:使用明文形式傳輸數據,不提供數據加密功能,數據在傳輸過…

coze搭建工作流和Agent

coze搭建工作流和Agent Agent LLM 記憶感知規劃使用工具 LLM是大語言模型,prompt提示詞影響LLM的輸出質量 描述需求——>背景——>解決思路,提示詞文檔。 當有明確的需求和實現需求的路徑時,可以通過搭建工作流來完成標準化任務為…

函數聲明與函數表達式的區別?

一、區別如下: 函數聲明的方法定義的函數,函數名是必須的,函數表達式的函數名是可選的。函數聲明的方法定義的函數,函數可以在函數聲明之前調用,函數表達式的函數只能在聲明之后調用。 函數聲明的方法定義的函數并不是真正的聲明,它們僅僅可以出現在全局中,或者嵌套在其他的函數…

Python爬蟲原理以及3個小案例(源碼)

一、爬蟲原理 網絡爬蟲是一種用于自動獲取網頁內容的程序。它模擬用戶瀏覽網頁的過程,通過發送HTTP請求獲取網頁的源代碼,并利用解析和提取技術來獲取所需的數據。 1. HTTP請求與響應過程 爬蟲向目標網站發送HTTP請求,請求包含URL、請求方…

Linux內核 -- DMA控制器之dmaengine框架的注冊與使用流程

Linux Kernel dmaengine 框架 簡介 Linux內核的dmaengine框架是一個用于管理DMA(Direct Memory Access)操作的通用框架。它抽象了不同DMA控制器的實現,使得上層代碼可以方便地進行DMA傳輸。 初始化流程 1. 驅動注冊 每個DMA控制器驅動都…

定義變量和聲明變量、定義類和聲明類

一、定義變量和聲明變量 在編程中,定義變量和聲明變量是兩個相關但不同的概念,尤其是在靜態類型的編程語言中。靜態類型的編程語言比如Java 1、聲明變量 (1)定義:聲明變量是指告訴編譯器變量的名字、類型和在某些情…

Mysql:時區問題

Mysql:時區問題 1、時區配置 Mysql默認使用系統的時區 mysql> show global variables like %time%zone%; -------------------------- | Variable_name | Value | -------------------------- | system_time_zone | | | time_zone | SYSTEM…