文档
注册

算子UT测试

使用说明

基于MindStudio进行算子开发的场景下,用户可基于MindStudio进行算子的UT测试,UT(Unit Test:单元测试)是开发人员进行算子代码验证的手段之一,主要目的是:
  • 测试算子代码的正确性,验证输入输出结果与设计的一致性。
  • UT侧重于保证算子程序能够正常运行,选取的场景组合应能覆盖算子代码的所有分支(一般来说覆盖率要达到100%),从而降低不同场景下算子代码的编译失败率。

当前MindStudio支持进行算子功能实现代码(*.py)以及算子原型定义(*.h,*.cc)的UT测试,详细测试方法可参见MindStudio 用户指南中的“算子开发 > UT测试”章节。

命令行方式下,暂不支持进行算子实现的UT测试。

查看算子仿真流水图

  1. MindStudio已进行算子的UT测试,可获取供解析的dump文件,路径如下所示:
    • MindStudio配置运行信息时选择的“Simulator_Performance”:TBE算子工程目录/out/model/ca/{op_type}/{op_type}_pre_static_test_{case_name}
    • MindStudio配置运行信息时选择的“Simulator_TMModel”:TBE算子工程目录/out/model/tm/{op_type}/{op_type}_pre_static_test_{case_name}
  2. 使用msopgen工具生成算子仿真流水图文件。
    进入msopgen工具所在目录执行如下命令,详细参数说明请参见表1
    cd /usr/local/Ascend/ascend-toolkit/latest/python/site-packages/bin
    ./msopgen sim -c core0 -d xx/out/model/ca/add/add_pre_static_test_add_auto_case_name_1 -out ./output_data -subc cubecore0

    root用户安装toolkit包默认路径为“/usr/local/Ascend”,请根据实际环境进行替换。

    表1 参数说明

    参数名称

    参数描述

    是否必选

    sim

    用于性能仿真相关操作。

    -c,--core-id

    核编号。

    配置芯片号,如:core0。

    -d,--dump-dir

    dump文件路径,可配置为绝对路径或者相对路径。

    说明:

    支持MindStudio运行UT测试时配置为“Simulator_Performance”“Simulator_TMModel”生成的dump文件。

    -subc,--subcore_id

    子核编号,支持展示单个子核。

    dump文件名带有veccore{id}或cubecore{id}时,需配置此参数指定待解析的dump文件。如文件名为core0.veccore0.instr_log.dump,“veccore0”即为subcore id。

    说明:

    Atlas A2训练系列产品需配置该参数。

    -out,--output

    生成算子仿真流水图文件的路径,可配置为绝对路径或者相对路径,并且工具执行用户具有可读写权限。

  3. 查看算子仿真流水图。

    可以在Chrome浏览器中输入“chrome://tracing”地址,将获取到的dump2trace_core0.json文件拖到空白处打开,通过键盘上的快捷键(w:放大,s:缩小,a:左移,d:右移)进行查看,如下图所示,关键字段如表2所示。

    图1 dump2trace_core0.json文件
    表2 字段说明

    字段名

    字段含义

    VECTOR

    向量运算单元。

    SCALAR

    标量运算单元。

    MTE1

    数据搬运流水,数据搬运方向为:L1 ->{L0A/L0B, UBUF}。

    MTE2

    数据搬运流水,数据搬运方向为:{DDR/HBM, L2} ->{L1, L0A/B, UBUF}。

    MTE3

    数据搬运流水,数据搬运方向为:UBUF -> {DDR/HBM, L2, L1}。

    FLOWCTRL

    控制流指令。

    CUBE

    矩阵乘运算单元。

    ICmiss

    未命中icache。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词