开发者
资源

时延测试

测试项功能

时延测试主要用于测试CPU、NPU相关链路的时延。

测试流程

若使用MPI方式测试超节点P2P时延,请参考《CANN HCCL性能测试工具用户指南》的“MPI安装与配置”章节提前在环境上安装配置MPI,并参考《CANN HCCL性能测试工具用户指南》的“工具编译”章节配置其环境变量,仅支持使用Open MPI-4.1.5版本。请勿使用上述参数和使用示例提到以外的参数、配置及环境变量,Open MPI其余执行参数、环境变量、配置文件可参考《Open MPI使用参考》

请确认参数填写的IP地址有效。

测试项特定参数查询

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

ascend-dmi -l -h

ascend-dmi --latency --help

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

表1 参数说明

参数

说明

是否必填

约束

[-l, --latency]

使用该参数测试芯片的时延。

-

[-t, --type]

测试数据流向的分类。

当使用时延测试功能时,测试的数据流可以分为以下方向。若不填写数据流方向,则默认返回h2d和d2h两个方向的时延测试结果。

  • h2d:测试数据从Host侧内存通过PCIe总线搬移到Device侧内存的时延。
  • d2h:测试数据从Device侧内存通过PCIe总线搬移到Host侧内存的时延。
  • p2p:测试指定源头Device到目标Device的时延。

  • Atlas 350 标卡仅支持指定p2p类型。
  • Atlas 350 标卡不支持跨4p的p2p时延测试,例如Device 0到Device 4。

[-s, --size]

指定传输数据大小。默认为512Byte。传输数据的取值范围如下:

  • Atlas 350 标卡512Byte~131072Byte。
  • 其他产品:512Byte~1MB(即1024 * 1024Byte)。

建议指定大小为512的2次幂(例如512、1024、2048、4096等)。如果指定的大小不是512的 2次幂,在实际测试时使用的size将会自动向上对齐为最接近512的2次幂。

-

[-d, --device]

指定时延测试的Device ID,Device ID是指昇腾AI处理器的逻辑ID。

  • 若填写Device ID,则默认返回对应的Device ID时延测试结果。
  • 若不填写Device ID,则默认返回Device 0的时延测试结果。
  • 不支持与[-ds, --ds, --device-src]、[-dd, --dd, --device-dst]同时指定。

Atlas 350 标卡暂不支持指定该参数。

[-ds, --ds, --device-src]

指定P2P时延测试的源头Device的ID号。必须与[-dd, --dd, --device-dst]参数成对指定。

不指定该参数时:

  • 若指定[-sp, --sp, --super-pod]参数,默认返回Device 0到Device 0的超节点时延测试结果。
  • 若不指定[-sp, --sp, --super-pod]参数,默认返回所有Device的节点内P2P时延测试结果。

-

[-dd, --dd, --device-dst]

指定P2P时延测试的目标Device的ID号。必须与[-ds, --ds, --device-src]参数成对指定。

不指定该参数时:

  • 若指定[-sp, --sp, --super-pod]参数,默认返回Device 0到Device 0的超节点时延测试结果。
  • 若不指定[-sp, --sp, --super-pod]参数,默认返回所有Device的节点内P2P时延测试结果。

-

[-sp, --sp, --super-pod]

指定该参数时进行超节点的时延测试。该参数只支持[-t, --type]参数指定p2p时使用。

Atlas 350 标卡暂不支持指定该参数。

注:

  • 本文档输入或输出的Device ID都是芯片逻辑ID。
  • 用户可以执行npu-smi info -m命令,在显示界面表格中的Chip Logic ID参数处获得芯片逻辑ID,NPU ID则为对应的芯片物理ID。

使用示例

  • 以使用Atlas 900 A3 SuperPoD 超节点,不带参数为例(不带参数则默认查询在Device 0,以h2d、d2h两个数据流向显示的时延测试结果)。

    ascend-dmi -l -q

    若返回如下所示信息,表示工具运行正常。

    Device Id: 0
    Data Size: 512 B
    Device to Host Latency: 802.421 ns
    Host to Device Latency: 766.108 ns
  • 以使用Atlas 900 A3 SuperPoD 超节点,指定测试数据流向为h2d,size为1024Byte,Device为0为例。

    ascend-dmi -l -t h2d -s 1024 -d 0 -q

    若返回如下所示信息,表示工具运行正常。

    Device Id: 0
    Data Size: 1024 B
    Host to Device Latency: 760.847 ns
  • 以使用Atlas 900 A3 SuperPoD 超节点,指定测试数据流向为h2d,size为1024Byte,Device为0,输出格式为json为例。

    ascend-dmi -l -t h2d -s 1024 -d 0 --fmt json

    若返回如下所示信息,表示工具运行正常。

    {
        "Latency": [
            {
                "device_id": "0",
                "latency": "730.551392 ns",
                "size": "1024 Bytes",
                "type": "Host to Device Test"
            }
        ]
    }
  • 以使用Atlas 900 A3 SuperPoD 超节点在P2P模式下,不指定源头Device ID和目标Device ID,节点内P2P时延测试为例。

    ascend-dmi -l -t p2p -q

    若返回如下所示信息,表示工具运行正常。

    Peer to Peer Test Latency Matrix(ns)
    DataSize: 512B
       D\D         0         1         2         3         4         5         6         7         8         9        10        11        12        13        14        15
         0       ***    325.16    969.35    966.85    966.79    956.41    966.18    960.39    956.57    953.76    953.14    946.77    944.15    981.92    980.80    974.58
         1    330.05       ***    968.09    970.09    961.34    959.97    964.92    965.87    951.86    956.85    949.81    951.18    967.33    971.98    964.08    965.35
         2    939.32    968.42       ***    326.20    959.93    958.73    957.58    958.16    953.78    959.57    945.64    946.91    936.11    942.73    973.71    972.00
         3    958.91    957.44    340.43       ***    953.08    940.04    949.74    942.95    944.34    982.36    976.16    971.29    969.47    966.37    965.55    960.38
         4    963.15    962.73    954.09    957.77       ***    356.44    953.38    945.96    948.74    977.68    972.01    971.85    968.67    967.59    967.54    956.16
         5    950.61    942.05    939.59    967.77    324.42       ***    969.67    969.99    966.62    972.40    957.07    958.05    950.77    955.16    943.99    942.91
         6    948.66    948.03    968.72    969.73    967.50    965.83       ***    337.61    969.89    967.87    961.44    957.44    954.07    949.16    942.88    933.82
         7    976.93    975.45    967.34    968.76    959.31    957.11    349.05       ***    964.16    960.38    953.91    948.20    943.35    967.12    961.62    953.32
         8    963.13    952.56    953.37    949.14    950.89    970.35    981.88    980.45       ***    329.96    972.23    974.47    963.37    968.13    964.10    963.59
         9    964.94    953.57    954.26    951.08    952.50    972.18    982.47    981.44    330.59       ***    974.08    975.84    965.46    969.30    965.85    966.28
        10    964.13    963.64    951.72    954.40    948.32    945.63   1003.53    977.47    976.35    982.95       ***    335.24    969.35    966.56    965.56    960.00
        11    954.26    945.40    943.27    969.07    969.50    966.57    974.68    969.69    969.44    966.57    344.91       ***    955.75    960.55    949.62    948.76
        12    959.89    948.97    945.51    941.76    941.33    962.59    971.05    970.31    972.42    972.67    968.42    959.49       ***    347.29    952.97    952.85
        13    947.74    970.27    967.84    968.85    968.34    960.08    969.02    958.60    961.57    962.39    958.51    950.05    357.58       ***    941.05    940.14
        14    967.45    960.86    956.95    951.62    949.21    939.95    943.54    968.11    976.88    981.09    973.57    970.16    967.33    962.49       ***    346.76
        15    942.62    973.57    969.72    968.12    965.75    954.46    957.11    953.13    962.75    959.02    953.23    947.68    941.98    972.22    324.26       ***
  • 以使用Atlas 900 A3 SuperPoD 超节点在P2P模式下,指定源头Device ID为0,目标Device ID为1的节点内P2P时延测试为例。

    ascend-dmi -l -t p2p --ds 0 --dd 1 -q

    若返回如下所示信息,表示工具运行正常。

    Device Id: 0 -> 1
    Data Size: 512 B
    Peer to Peer Latency: 360.144 ns
  • 以使用OpenMPI方式测试超节点P2P时延为例。
    • 使用示例提及参数说明:
      • -mca btl_tcp_if_include参数:指定MPI通信协议和通信端口。
      • -mca btl_tcp_port_min_v4参数:指定MPI通信IPv4协议使用的TCP端口的最小值。
      • -mca btl_tcp_port_min_v6参数:指定MPI通信IPv6协议使用的TCP端口的最小值。
    • MPI使用端口均无认证机制,为防止恶意连接攻击,请参考防止MPI全零侦听章节进行安全加固操作。

    使用mpirun -mca btl_tcp_if_include xx.xx.xx.x2(源节点ip)/port -mca btl_tcp_port_min_v4 32768 -mca btl_tcp_port_min_v6 32768 -host xx.xx.xx.x2(源节点IP):1,xx.xx.xx.x3(对方节点IP):1 -n 2 ascend-dmi -l -t p2p --sp --ds 0 --dd 1 -q进行超节点P2P时延测试。

    [****@node-97-52 xxx]# mpirun -mca btl_tcp_if_include xx.xx.xx.x2/22 -mca btl_tcp_port_min_v4 32768 -mca btl_tcp_port_min_v6 32768 -host xx.xx.xx.x2:1,xx.xx.xx.x3:1 -n 2 ascend-dmi -l -t p2p --sp --ds 0 --dd 1 -q
    Device Id: 0 -> 1
    Data Size: 512 B
    SuperPoD Peer to Peer Latency: 1726.06 ns

    使用mpirun -mca btl_tcp_if_include xx.xx.xx.x2(源节点ip)/port -mca btl_tcp_port_min_v4 32768 -mca btl_tcp_port_min_v6 32768 -host xx.xx.xx.x2(源节点IP):1,xx.xx.xx.x3(对方节点IP):1 -n 2 ascend-dmi -l -t p2p --sp --ds 0 --dd 1 -q --fmt json进行超节点P2P时延测试。

    [****@node-97-52 xxx]# mpirun -mca btl_tcp_if_include xx.xx.xx.x2/22 -mca btl_tcp_port_min_v4 32768 -mca btl_tcp_port_min_v6 32768 -host xx.xx.xx.x2:1,xx.xx.xx.x3:1 -n 2 ascend-dmi -l -t p2p --sp --ds 0 --dd 1 -q --fmt json
    {
        "Latency": [
            {
                "src_device_id": "0",
                "dst_device_id": "1",
                "latency": "1911.797119 ns",
                "size": "512 Bytes",
                "type": "SuperPod Peer to Peer Test"
            }
        ]
    }
  • 以使用Atlas 350 标卡在P2P模式下,指定源头Device ID为0,目标Device ID为1的节点内P2P时延测试为例。

    ascend-dmi -l -t p2p --ds 0 --dd 1 -q

    若返回如下所示信息,表示工具运行正常。

    Device Id: 0 -> 1
    Data Size: 512 B
    Peer to Peer Latency: 800.144 ns

上述回显参数介绍如下表所示:

表2 normal格式回显参数说明

参数

说明

Device Id

当前测试的设备ID。上述回显中0表示测试Device 0的时延。0 -> 1表示测试源头Device ID为0,目标Device ID为1的节点内/超节点P2P的时延。

Data Size

传输数据大小,单位为Byte。

Device to Host Latency

时延数据流方向,单位为ns。

Host to Device Latency

Peer to Peer Latency

SuperPoD Peer to Peer Latency

表3 json格式回显参数说明

参数

说明

device_id

当前测试的设备ID。上述回显中0表示测试Device 0的时延。

src_device_id

当前测试的源头设备ID。

dst_device_id

当前测试的目标设备ID。

latency

时延测试结果,单位为ns。

size

传输数据大小,单位为Byte。

type

时延测试数据流方向。