1 工具安裝
1.1 下載鏈接
https://www.hiascend.com/developer/download/community/result?module=dl%2Bcann
1.2 安裝指令:
./Ascend-mindx-toolbox_{version}_linux-{arch}.run --install設置環境變量:
source /usr/local/Ascend/toolbox/set_env.sh
source /usr/local/Ascend/ascend-toolkit/set_env.sh
2 帶寬測試
分別執行一下四個指令
ascend-dmi --bw -t d2d
ascend-dmi --bw -t d2h
ascend-dmi --bw -t h2d
ascend-dmi --bw -t p2p
參考鏈接:https://www.hiascend.com/document/detail/zh/mindcluster/70rc1/toolbox/toolboxug/toolboxug_0015.html
參數說明:
參數 | 說明 | 約束 | 是否必填 |
---|---|---|---|
[-bw, --bw, --bandwidth] | 使用該參數測試芯片或整卡的帶寬。支持-bw,但建議使用–bw或–bandwidth。 | - | 是 |
[-t, --type] | 指測試數據流向的分類。當使用帶寬測試功能時,測試的數據流可以分為以下方向,若不填寫數據流方向則默認返回h2d、d2h、d2d三個方向的帶寬和總耗時。h2d:指數據從Host側內存通過PCIe總線搬移到Device側內存,測試整體帶寬及總耗時。(使用Atlas A3 訓練系列產品帶寬測試功能時,測試的為HCCS平面總帶寬及總耗時。)d2h:指數據從Device側內存通過PCIe總線搬移到Host側內存,測試整體帶寬及總耗時。(使用Atlas A3 訓練系列產品帶寬測試功能時,測試的為HCCS平面總帶寬及總耗時。)d2d:指數據從Device側內存搬移到同一Device側內存(主要是用于測試Device側的內存帶寬),測試整體帶寬及總耗時。p2p:測試指定源頭Device到目標Device的傳輸速率和總耗時。說明使用p2p且不指定Device時(不指定-ds和-dd參數),-s、-et和-fmt參數不生效,使用定長模式和對應默認值。如ascend-dmi --bw -t p2p -fmt json命令中,-fmt參數不生效,使用默認值normal。 | Atlas 200I/500 A2 推理產品 僅支持d2d模式,不支持使用該參數。p2p模式僅支持 Atlas 訓練系列產品 、Atlas A2 訓練系列產品、 Atlas 800I A2 推理產品 、Atlas 300I Duo 推理卡、Atlas A3 訓練系列產品。Atlas 300I Duo 推理卡使用p2p模式時,-ds和-dd參數僅支持主芯片的Device ID或同一張卡的主從芯片對應的Device ID。執行Atlas 200T A2 Box16 異構子框上兩個8p之間的p2p測試時,僅支持輸出兩個對等位置的p2p結果,例如0卡對應8卡,可輸出0卡傳輸至8卡的p2p測試結果,以此類推。 | 否 |
[-m, --mode] | 指定帶寬測試模式,執行卡粒度或芯片粒度的帶寬測試。不指定該參數時默認測試device粒度的帶寬測試。device:表示芯片粒度,指昇騰芯片的邏輯ID。card:表示卡粒度,指昇騰芯片的卡ID,測試整卡的帶寬。 | 僅支持Atlas 900 A3 SuperPoD 超節點、Atlas 9000 A3 SuperPoD 集群算力系統、A200T A3 Box8 超節點服務器在type為p2p模式時,使用此參數。 | 否 |
[-s, --size] | 指傳輸數據大小并指定測試結果顯示方式。傳輸數據的取值范圍有以下情況:超節點系列產品:d2h/h2d/p2p這3種模式下,最大傳輸數值為1Byte4G。其他產品:1Byte512M。指定-s參數后面必須填寫數值指定傳輸數據的大小,不填寫屬于錯誤寫法。在h2d、d2h、d2d以及p2p且指定-ds和-dd場景。指定-s為定長模式。不指定-s為步長模式,傳輸數據的默認取值范圍為2Byte~32M。p2p場景且不指定-ds和-dd場景。該場景下-s參數不生效,使用定長模式和默認值。默認值說明如下。Atlas A2訓練系列產品、Atlas A3 訓練系列產品,0卡或8卡到其他卡的默認傳輸數據大小為512M,除此之外,默認傳輸數據大小為256M。其他產品,傳輸數據大小默認值為128M。 | Atlas A2 訓練系列產品、Atlas 800I A2 推理服務器、Atlas A3 訓練系列產品若指定“-t”為d2d模式時,傳輸數據大小由AI Core決定,所以不支持使用“-s”參數。Atlas 200I/500 A2 推理產品 傳輸數據大小為固定值0.97GB(由傳輸數據的Tensor決定),不支持使用該參數。 | 否 |
[-et, --et, --execute-times] | 指迭代次數,即內存拷貝次數。取值范圍為[1, 1000],若不填寫,步長模式下拷貝次數則默認為5,定長模式下拷貝次數則默認為40。 | Atlas 200I/500 A2 推理產品 、Atlas 800I A2 推理服務器、Atlas A2 訓練系列產品、Atlas A3 訓練系列產品在d2d模式下,不支持使用該參數,拷貝次數默認為1。 | 否 |
[-d, --device] | 指定需要測試帶寬的Device ID,Device ID是指昇騰AI處理器的邏輯ID。若填寫Device ID時:默認返回對應的Device ID帶寬信息,ID字段回顯為對應的Device ID。若不填寫Device ID時:使用Atlas 900 A3 SuperPoD 超節點、Atlas 9000 A3 SuperPoD 集群算力系統在d2d模式下默認返回Device 0帶寬信息,ID字段回顯為0;在d2h、h2d模式下默認返回全量Device帶寬信息,ID字段回顯為All。使用A200T A3 Box8 超節點服務器或非Atlas A3 訓練系列產品在d2d、d2h、h2d模式下默認返回Device 0帶寬信息,ID字段回顯為0。 | 為確保Atlas 300I Duo帶寬測試結果達到最佳,建議測試Device 0帶寬信息。Atlas A2 訓練系列產品在p2p模式下,不支持使用該參數。 | 否 |
[-ds, --ds, --device-src] | 指定p2p測試的源頭Device的ID號。必須與[-dd, --dd, --device-dst]參數成對指定;若與[-dd, --dd, --device-dst]參數同時不指定時,測試全量的昇騰NPU芯片。 | Atlas 200/300/500 推理產品 、 Atlas 推理系列產品 、Atlas 800I A2 推理服務器、 Atlas 200I/500 A2 推理產品 不支持使用該參數。 | 否 |
[-dd, --dd, --device-dst] | 指定p2p測試的目標Device的ID號。必須與[-ds, --ds, --device-src]參數成對指定;若與[-ds, --ds, --device-src]參數同時不指定時,測試全量的昇騰NPU芯片。 | Atlas 200/300/500 推理產品 、 Atlas 推理系列產品 、Atlas 800I A2 推理服務器、 Atlas 200I/500 A2 推理產品 不支持使用該參數。 | 否 |
[-fmt, --fmt, --format] | 指定輸出格式,可以為normal或json。若未指定則默認為normal。 | - | 否 |
[-q, --quiet] | 指定該參數時,將不再進行防呆提示,用戶將默認允許該操作。 | 若不指定該參數,將進行防呆提示,用戶需要輸入Y或N(y或n)確認是否進行測試。 | 否 |
[-h, --help] | 查看Ascend DMI工具“帶寬測試”功能的幫助信息。 | - | 否 |
3 使用實例
p2p測試命令截圖取自訓練服務器。
-
以不帶參數為例(不帶參數則默認查詢在Device 0,以h2d、d2h、d2d三個數據流向和步長模式顯示的帶寬耗時信息)。
ascend-dmi --bw
-
以測試數據從Host側傳輸到Device 0,迭代100次的帶寬與總耗時為例。
-
定長模式。
ascend-dmi --bw -t h2d -d 0 -s 8388608 --et 100
若返回如圖1所示信息,表示工具運行正常,圖中參數介紹如表3所示。
圖1 帶寬測試示例(定長模式)
放大 -
步長模式。
ascend-dmi --bw -t h2d -d 0 –et 100
若返回如圖2所示信息,表示工具運行正常,圖中參數介紹如表3所示。
圖2 帶寬測試示例(步長模式)
-
-
以測試數據從Device側傳輸到同一Device側的帶寬與總耗時為例。
ascend-dmi --bw -t d2d -d 0
若返回如圖3、圖4、圖5所示信息,表示工具運行正常,圖中參數介紹如表3所示。
圖3 帶寬測試示例(Atlas 訓練系列產品)
圖4 帶寬測試示例(Atlas A2 訓練系列產品)
ascend-dmi --bw -d 0
圖5 帶寬測試示例(Atlas 200I/500 A2 推理產品)
-
測試指定源頭Device到目標Device的傳輸速率和總耗時。
-
以測試數據從源頭Device 0傳輸到目標Device 1的p2p測試為例。
ascend-dmi --bw -t p2p --ds 0 --dd 1 -s 6 -q
若返回如圖6所示信息,表示工具運行正常,圖中參數介紹如表3所示。
圖6 p2p方式帶寬測試示例
表3 顯示界面參數介紹
參數 說明 Host to Device Test 帶寬數據流方向。有以下顯示可能:Host to Device TestDevice to Host TestDevice to Device TestUnidirectional Peer to Peer TestBidirectional Peer to Peer Test Device X : Ascend XXX Device X為當前測試的設備ID,Ascend XXX為處理器類型。0表示源頭設備,1表示目標設備。 ID 0:表示測試d2d、d2h、h2d模式下Device 0的帶寬。0→1表示測試Device 0到Device 1的單向P2P帶寬。0?1表示測試Device 0和Device 1的雙向P2P帶寬。 Size(Bytes) 傳輸數據大小,單位為字節。 Execute Times 迭代次數 Bandwidth(GB/s) 芯片的帶寬 Elapsed Time(us) 總執行時長 -
不指定源頭Device和目標Device的p2p樣例。
ascend-dmi --bw -t p2p
若返回如圖7所示信息,表示工具運行正常。
圖7 不指定device的p2p方式帶寬測試示例
-
-
使用 Atlas 900 A3 SuperPoD 超節點 在p2p模式下,不指定源頭Card和目標Card的p2p樣例。
ascend-dmi --bw -t p2p -q --mode card
若返回如下所示信息,表示工具運行正常。
[root@****]ascend-dmi --bw -t p2p -m card -q Unidirectional Peer to Peer Test Bandwidth Matrix(GB/s)C\C 0 1 2 3 4 5 6 70 *** 328.96 328.98 329.02 329.08 329.04 329.17 328.991 328.61 *** 328.58 328.56 328.48 328.55 328.53 328.572 328.57 328.49 *** 328.76 328.54 328.54 328.49 328.543 328.52 328.46 328.55 *** 328.72 328.50 328.54 328.544 329.02 329.05 328.99 329.03 *** 329.05 329.04 329.005 328.70 328.58 328.51 328.57 328.59 *** 328.56 328.566 328.56 328.53 328.63 328.58 328.61 328.57 *** 328.557 328.95 328.49 328.56 328.61 328.55 328.56 328.54 *** Bidirectional Peer to Peer Test Bandwidth Matrix(GB/s)C\C 0 1 2 3 4 5 6 70 *** 540.51 540.39 540.50 541.80 541.90 541.05 540.341 540.90 *** 540.90 541.05 541.48 540.53 559.08 540.562 540.95 541.40 *** 540.61 540.45 540.76 540.80 541.783 540.97 540.87 541.61 *** 541.41 540.35 540.90 540.984 541.30 541.04 540.82 542.88 *** 540.40 541.13 540.685 540.68 541.14 541.86 540.80 540.44 *** 540.80 540.366 540.54 540.91 540.98 541.03 540.63 541.20 *** 541.277 540.51 542.78 540.91 541.69 540.22 540.95 541.02 ***