Ascend上如何进行带宽测试
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 ***