---
title: 带宽测试
description: "带宽测试主要用于测试总线带宽、内存带宽。"
url: https://www.hiascend.com/document/detail/zh/mindcluster/latest/toolbox/toolboxug/toolboxug_0015.html
sourcePath: /source/zh/mindcluster/2610/toolbox/toolboxug/toolboxug_0015.html
indexId: 6567aceb32cd9556d32eb45c6054636d9bcffae7d8c9e7c1bb1c34b7a8ff154d65
---
# 带宽测试

#### 测试项功能

带宽测试主要用于测试总线带宽、内存带宽。


#### 场景说明

- 若需要指定测试链路，可设置环境变量ADMI_TMP_P2P_LINK_TYPE。关于环境变量的详细说明请参见  使用环境变量说明
。
- ADMI_TMP_P2P_LINK_TYPE环境变量的取值如下：

  - Atlas 850 系列硬件产品：CLOS8
  - Atlas 950 SuperPoD 超节点：CLOS2、CLOS6


#### 测试项特定参数查询

用户可任选以下指令之一查看带宽测试命令的可用参数。

ascend-dmi --bw -h

ascend-dmi --bw --help

命令各参数解释如表1所示，表格内仅展示测试项特定参数，其余公共参数请参见公共参数说明。


**表1 参数说明**

| 参数 | 说明 | 约束 | 是否必填 |
| --- | --- | --- | --- |
| [\-bw, \-\-bw, \-\-bandwidth] | 使用该参数测试芯片或整卡的带宽。 | \- | 是 |
| [\-t, \-\-type] | 指定测试数据流向的分类。 当使用带宽测试功能时，测试的数据流可以分为以下方向，若不填写数据流方向则默认返回h2d、d2h、d2d三个方向的带宽和总耗时。 h2d：指数据从Host侧内存通过PCIe总线搬移到Device侧内存，测试整体带宽及总耗时。（使用 Atlas A3 训练系列产品 、 Atlas A3 推理系列产品 带宽测试功能时，测试的为HCCS平面总带宽及总耗时。） d2h：指数据从Device侧内存通过PCIe总线搬移到Host侧内存，测试整体带宽及总耗时。（使用 Atlas A3 训练系列产品 、 Atlas A3 推理系列产品 带宽测试功能时，测试的为HCCS平面总带宽及总耗时。） d2d：指数据从Device侧DDR/HBM介质内存搬移到同一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 A2 推理系列产品 、Atlas 300I Duo 推理卡、 Atlas A3 训练系列产品 、 Atlas A3 推理系列产品 、昇腾950PR&950DT系列产品。 Atlas 300I Duo 推理卡使用p2p模式时，\-ds和\-dd参数仅支持主芯片的Device ID或同一张卡的主从芯片对应的Device ID。 执行Atlas 200T A2 Box16/Atlas 200I A2 Box16 异构子框上两个8p之间的p2p测试时，仅支持输出两个对等位置的p2p结果，例如0卡对应8卡，可输出0卡传输至8卡的p2p测试结果，以此类推。 | 否 |
| [\-m, \-\-mode] | 指定带宽测试模式，执行卡粒度或芯片粒度的带宽测试。 不指定该参数时默认测试device粒度的带宽测试。 device：表示芯片粒度，指昇腾芯片的逻辑ID。 card：表示卡粒度，指昇腾芯片的卡ID，测试整卡的带宽。 | 仅支持Atlas A3 训练及推理产品在type为p2p模式时，使用此参数。 | 否 |
| [\-s, \-\-size] | 指定传输数据大小及测试结果显示方式。 传输数据的取值范围有以下情况： Atlas A3 训练系列产品 、 Atlas A3 推理系列产品 ：d2h/h2d/p2p这3种模式下，最大传输数值为1Byte~4GB。 其他产品：1Byte~512MB。 指定\-s参数后面必须填写数值指定传输数据的大小，不填写属于错误写法。 在h2d、d2h、d2d以及p2p且指定\-ds和\-dd场景。 指定\-s为定长模式。 不指定\-s为步长模式，传输数据的默认取值范围为2Byte~32MB。 p2p场景且不指定\-ds和\-dd场景。该场景下\-s参数不生效，使用定长模式和默认值。默认值说明如下。 Atlas A2 训练系列产品 、 Atlas A2 推理系列产品 、 Atlas A3 训练系列产品 、 Atlas A3 推理系列产品 ，0卡或8卡到其他卡的默认传输数据大小为512MB，除此之外，默认传输数据大小为256MB。 其他产品，传输数据大小默认值为128MB。 | Atlas A2 训练系列产品 、 Atlas A2 推理系列产品 、 Atlas A3 训练系列产品 、 Atlas A3 推理系列产品 、昇腾950PR&950DT系列产品若指定“\-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 A2 训练系列产品 、 Atlas A2 推理系列产品 、 Atlas A3 训练系列产品 、 Atlas A3 推理系列产品 、昇腾950PR&950DT系列产品在d2d模式下，不支持使用该参数，拷贝次数默认为1。 | 否 |
| [\-d, \-\-device] | 指定需要测试带宽的Device ID，Device ID是指昇腾AI处理器的逻辑ID。 若填写Device ID时： 默认返回对应的Device ID带宽信息，ID字段回显为对应的Device ID。 若不填写Device ID时： 使用 Atlas A3 训练系列产品 、 Atlas A3 推理系列产品 在d2h、h2d模式下默认返回全量Device带宽信息。 使用其他产品时，默认返回Device 0带宽信息。 | 为确保Atlas 300I Duo带宽测试结果达到最佳，建议测试Device 0带宽信息。 在p2p模式下，不支持使用该参数。 | 否 |
| [\-ds, \-\-ds, \-\-device\-src] | 指定p2p测试的源头Device的ID号。必须与[\-dd, \-\-dd, \-\-device\-dst]参数成对指定，不支持单独使用，使用时参数后的数值不能相同；若与[\-dd, \-\-dd, \-\-device\-dst]参数同时不指定时，测试全量的昇腾NPU芯片。 | Atlas 200/300/500 推理产品 、Atlas 300I Pro 推理卡、Atlas 300V 视频解析卡、Atlas 300V Pro 视频解析卡、Atlas 200I SoC A1 核心板、 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 300I Pro 推理卡、Atlas 300V 视频解析卡、Atlas 300V Pro 视频解析卡、Atlas 200I SoC A1 核心板、 Atlas 200I/500 A2 推理产品 不支持使用该参数。 | 否 |
| 注： 本文档输入或输出的Device ID都是芯片逻辑ID。 用户可以执行npu\-smi info \-m命令，在显示界面表格中的Chip Logic ID参数处获得芯片逻辑ID，NPU ID则为对应的芯片物理ID。 | 注： 本文档输入或输出的Device ID都是芯片逻辑ID。 用户可以执行npu\-smi info \-m命令，在显示界面表格中的Chip Logic ID参数处获得芯片逻辑ID，NPU ID则为对应的芯片物理ID。 | 注： 本文档输入或输出的Device ID都是芯片逻辑ID。 用户可以执行npu\-smi info \-m命令，在显示界面表格中的Chip Logic ID参数处获得芯片逻辑ID，NPU ID则为对应的芯片物理ID。 | 注： 本文档输入或输出的Device ID都是芯片逻辑ID。 用户可以执行npu\-smi info \-m命令，在显示界面表格中的Chip Logic ID参数处获得芯片逻辑ID，NPU ID则为对应的芯片物理ID。 |


#### 使用示例

一、以使用Atlas 800I A2 推理服务器，不带参数为例（不带参数则默认查询在Device 0，以h2d、d2h、d2d三个数据流向和步长模式显示的带宽耗时信息）。

ascend-dmi --bw -q

- d2d模式。
- d2h模式。
- h2d模式。

二、以使用Atlas 800I A2 推理服务器，Device 0定长模式迭代100次，指定size为128MB为例。- h2d模式。
  ascend-dmi --bw -t h2d -d 0 --et 100 -s 134217728 -q

- d2h模式。
  ascend-dmi --bw -t d2h -d 0 --et 100 -s 134217728 -q


三、以使用Atlas 800I A2 推理服务器，测试数据从Device侧传输到同一Device侧的带宽与总耗时为例。

ascend-dmi --bw -t d2d -d 0 -q


四、测试指定源头Device到目标Device的传输速率和总耗时。- 以使用Atlas 800I A2 推理服务器，测试数据从源头Device 1传输到目标Device 0，执行次数为100，size为128MB的p2p测试为例。
  ascend-dmi --bw -t p2p --dd 0 --ds 1 --et 100 -s 134217728 -q

- 使用Atlas 800I A2 推理服务器，不指定源头Device和目标Device的p2p样例。
  ascend-dmi --bw -t p2p -q


五、使用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        7
0         ***      328.96   328.98   329.02   329.08   329.04   329.17   328.99
1         328.61   ***      328.58   328.56   328.48   328.55   328.53   328.57
2         328.57   328.49   ***      328.76   328.54   328.54   328.49   328.54
3         328.52   328.46   328.55   ***      328.72   328.50   328.54   328.54
4         329.02   329.05   328.99   329.03   ***      329.05   329.04   329.00
5         328.70   328.58   328.51   328.57   328.59   ***      328.56   328.56
6         328.56   328.53   328.63   328.58   328.61   328.57   ***      328.55
7         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        7
0         ***      540.51   540.39   540.50   541.80   541.90   541.05   540.34
1         540.90   ***      540.90   541.05   541.48   540.53   559.08   540.56
2         540.95   541.40   ***      540.61   540.45   540.76   540.80   541.78
3         540.97   540.87   541.61   ***      541.41   540.35   540.90   540.98
4         541.30   541.04   540.82   542.88   ***      540.40   541.13   540.68
5         540.68   541.14   541.86   540.80   540.44   ***      540.80   540.36
6         540.54   540.91   540.98   541.03   540.63   541.20   ***      541.27
7         540.51   542.78   540.91   541.69   540.22   540.95   541.02   ***
```

以上示例中的参数介绍如下表所示。
**表2 显示界面参数介绍**

| 参数 | 说明 |
| --- | --- |
| Host to Device Test | 带宽数据流方向。有以下显示可能： Host to Device Test Device to Host Test Device to Device Test Unidirectional Peer to Peer Test Bidirectional 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) | 总执行时长。 |


#### FAQ

- 带宽测试时间较长，测试结果未达到预期时可参考  【D2D带宽】环境开启SWAP交换空间机制导致性能不达标
。
- h2d带宽测试结果未达到预期时，建议在host侧修改Max Payload Size值为512B，具体操作可参考  BIOS上设置Payload
。
- Atlas 200T A2 Box16/Atlas 200I A2 Box16 异构子框执行p2p测试结果未达到预期时，可参考  【P2P带宽】【Atlas 200T A2 Box16/Atlas 200I A2 Box16 异构子框】前8卡和后8卡间P2P带宽测试不达标
。
