3.3. 指令说明

通过执行 Python 脚本启动芯片DDR带宽基准测试工具:

注意

仅支持在后摩硬件设备上运行,无法在模拟器中执行。为确保在硬件平台上运行,请将环境变量设置为 export HDPL_PLATFORM=ASIC

python3 bandwidth_perf.py [OPTIONS]

指令参数说明如下:

  • --work-dir <output>:指定模型编译和推理过程中,中间计算结果的存放路径。默认为当前路径下的 output 目录。

  • --device-id <id>:指定DDR带宽测试的目标设备的逻辑设备ID。默认值为0。每颗后摩M50 芯片在系统中都会被识别为一个独立的逻辑设备,一个后摩设备中可能包含一颗或多颗后摩M50芯片。可通过后摩SMI工具查询可用的逻辑设备 ID,详情参看《后摩大道® SMI工具使用指南》。

  • --skip-build:Flag 参数,若设置,则跳过 ONNX 模型的编译步骤,仅执行模型推理。默认情况下会执行模型编译。

  • --sample-num <sample_num>:指定芯片DDR带宽测试的基础样本数量。该值用于计算总循环次数(Round number)。默认值为 8,取值必须是4的整数倍。

  • --type <type>:指定对DDR带宽测试的操作类型,<type> 取值如下:

    • r :(默认值)评测IPU内核从 DDR内存中读取数据的最大有效带宽。

    • w :评测IPU内核将数据写回DDR内存的最大有效带宽。

3.3.1. 使用示例

读取数据的最大有效带宽

houmo-examples-xh2/tools/bandwidth_perf 目录下,执行下面指令,指定设备 ID 和样本数量,并跳过模型编译:

python3 bandwidth_perf.py --device-id 0 --sample-num 8 --skip-build --type r

写回数据的最大有效带宽

houmo-examples-xh2/tools/bandwidth_perf 目录下,执行下面指令,指定设备 ID 和样本数量,并跳过模型编译:

python3 bandwidth_perf.py --device-id 0 --sample-num 8 --skip-build --type w

3.4. 性能指标与结果解析

读操作返回结果示例如下:

Model run successfully on device 0, elapsed time: 4.91 seconds.

============================================================
           Read Bandwidth Test Summary
============================================================
Model Parameter           |           Value
------------------------------------------------------------
Data size                 |          8.00 MiB
Round number              |          80000
Test time                 |          4.9056 seconds
BANDWIDTH                 |          127.40 GiB/s
============================================================

写操作返回结果示例如下:

============================================================
      Write Bandwidth Test Summary
============================================================
Model Parameter           |           Value
------------------------------------------------------------
Data size                 |            8.00 MiB
Round number              |           80000
Test time                 |          5.1710 seconds
Write Bandwidth           |          120.86 GiB/s
============================================================

结果参数说明:

  • Data size: 模型单次推理操作中传输的数据总量。

  • Round number: 模型推理的总重复次数。该值由用户设置的样本数量(--sample-num)乘以内部循环因子 1000 计算得出。

  • Test time: 完成所有预设样本推理所消耗的部时间。

  • BANDWIDTH: 实际有效带宽。表示芯片在 AI 工作负载下的持续数据传输能力。

3.4.1. 核心指标计算公式

实际有效DDR带宽计算公式如下:

\text{BANDWIDTH} = \frac{\text{Data size} \times \text{Round number}}{\text{Test time}}

其中:

  • BANDWIDTH :表示实际有效带宽。

  • Data size :表示模型单次推理操作中传输的数据总量。

  • Round number :模型推理的总重复次数。该值由用户设置的样本数 sample-num 乘以内部循环因子 1000 计算得出。

  • Test time :完成所有预设样本推理所消耗的部时间。