2.3. 指令说明

在应用开发示例包 houmo-examples-xh2/tools/computing_perf 目录下,通过执行 Python 脚本启动算力测试工具:

注意

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

python3 computing_perf.py [OPTIONS]

指令参数说明如下:

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

  • --device-id <id>:指定进行算力测试的目标芯片的逻辑设备 ID。默认值为0。可通过后摩SMI工具查询可用的设备 ID,详情参看《后摩大道® SMI工具使用指南》。

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

  • --sample-num <sample_num>:指定算力测试过程中,用于计算有效算力所使用的样本总数量。默认值为 512。

  • --compute-mode <mode>:指定算力测试的数据精度模式。<mode> 取值如下:

    注意

    目标设备 M50 芯片有多个硬件修订版本。int8 模式仅在 V2 版本芯片上支持,bfp16 模式在 V1 和 V2 版本芯片上均支持。

    • int8:以 INT8 精度进行算力测试,结果以 TOPS@INT8 表示。

    • bfp16:以 bFP16 精度进行算力测试,结果以 TFLOPS@bFP16 表示。

2.3.1. 使用示例

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

python3 computing_perf.py --device-id 0 --sample-num 1024 --skip-build --compute-mode bfp16

2.4. 性能指标与结果解析

返回结果示例如下:

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

============================================================
           Performance Test Summary
============================================================
Model Parameter           |           Value
------------------------------------------------------------
Number of Conv2d Layers   |              64
Batch Size                |               1
Input Channels            |             256
Output Channels           |             256
Feature Map Size          |        [64, 64]
Kernel Shape              |          [3, 3]
------------------------------------------------------------
Computing amount          |          0.3092 TFLOPs/sample
Test time                 |          1.9529 seconds
PERFORMANCE               |           81.07 TFLOPS@bFP16
============================================================

结果参数说明:

  • Number of Conv2d Layers: 用于构建测试模型的 Conv2d 算子的总层数。

  • Batch Size: 模型单次推理的样本batch大小。

  • Input Channels: 卷积层输入特征图的通道数量。

  • Output Channels: 卷积层输出特征图的通道数量。

  • Feature Map Size: 卷积层输入特征图的高度和宽度。

  • Kernel Shape: 卷积核的高度和宽度。

  • Computing amount: 基于上述模型参数,计算得出的单样本推理所需的总理论浮点运算次数。

  • Test time: 完成所有预设样本数量推理任务所消耗的总时间。

  • PERFORMANCE: 实际有效算力。

2.4.1. 核心指标计算公式

实际有效算力 是衡量芯片端到端综合性能的关键指标。它的计算基于吞吐量模型:

\text{Actual Effective Computing} = \frac{\text{Computing amount} \times \text{Total Samples}}{\text{Test time}}

其中:

  • Computing amount :表示单样本推理所需的总理论浮点运算次数。

  • Test time :表示完成所有预设样本数量推理任务所消耗的总时间。

  • Total Samples :总样本数,默认为512。

2.5. 常见错误解析

  • 芯片算力基准测试失败并提示IPU同步超时

    运行芯片算力基准测试工具时,如果返回下面错误信息:

    Process Process-4:
    [2026-04-09 13:52:17.828] [tid 45] [error] src/backend/tcim_backend_xh2a_hal.cc:732:YieldStream: 'info->SyncDone() ' values: 12 !=0 FAILED!
    [2026-04-09 13:52:17.828] [tid 45] [error] [Stream] [0xc8ae540] Model:xh2_conv DevID:0 SyncYieldErr:12 Stream:0xc8b7170
    [2026-04-09 13:52:17.828] [tid 45] [error] src/tcim_stream_impl.cc:107:SyncYield: 'ret != tcim::Status::ERR_FATAL' FAILED! [Status: 0]
    [2026-04-09 13:52:17.828] [tid 45] [error] src/tcim_module_impl.cc:533:Sync: 'stream_.impl()->Sync() ' values: 12 !=0 FAILED!
    Process Process-1:
    [2026-04-09 13:52:17.830] [tid 62] [error] Executor error ret: 7
    [2026-04-09 13:52:17.830] [tid 45] [error] SyncDone: Failed = 7
    xh2a_ipu_sync_group failed! ret:110 result:0 group_id:0 timeout_us:100000000
    

    解决方法:

    执行下面步骤通过复位IPU内核:

    1. 使用后摩SMI工具复位指定后摩芯片的IPU内核:

      sudo hm_smi -rd <device_id>
      

      其中 <device_id> 应替换为后摩逻辑设备ID,即单颗M50芯片在系统中的逻辑编号。

    2. 设备复位完成之后,建议先运行小样本任务验证硬件连通性:

      python3 computing_perf.py --device-id 0 --sample-num 4 --skip-build