op_ut_run工具使用

功能描述

CANN开发套件包中提供了UT测试工具:op_ut_run,支持算子在仿真环境中进行功能验证并生成dump数据文件。

具有如下功能:
  • 根据算子实现文件(*.cpp文件)运行算子测试用例定义文件(test_*_impl.py),作为算子UT测试用例的输入。
  • 根据算子测试用例定义文件生成UT测试数据及测试用例执行代码,在仿真环境上执行算子测试用例。
  • 根据用户定义并配置的性能仿真环境(ca)或功能仿真环境(pv)上执行算子测试用例后生成dump数据。
  • 根据用户定义并配置的算子期望数据生成函数,回显期望算子输出和实际算子输出的对比测试结果。

工具路径

通过可执行文件“op_ut_run”进行UT测试,其功能和安装路径如下。

表1 op_ut_run文件介绍

文件名

功能

路径

op_ut_run

UT测试工具。

CANN软件安装后文件存储路径中的“python/site-packages/bin”

使用前提

使用方法

  1. 请用户完成输入文件的准备工作。

  2. 进入op_ut_run工具所在目录执行如下命令,参数说明请参见表2

    $HOME/Ascend/ascend-toolkit/latest/python/site-packages/bin/op_ut_run --case_files {test case file} --case_name {case name } --data_path {test case data file} --process_num {process num} --simulator_lib_path {simulator library path} --simulator_data_path {simulator dump data files} --simulator_mode {simulator model} --ascendc_op_path {*.cpp file } --block_dim {block_dim} --soc_version {soc_version}
    表2 参数说明

    参数名称

    参数描述

    是否必选

    --case_files

    测试用例定义文件(test_*_impl.py文件)。

    --case_name

    测试用例文件中的用例名称。

    • 配置为需要执行的case的名字,若需要同时运行多个case,多个case之间使用逗号分隔。
    • 若配置为“all”,或者不配置此参数,代表执行所有case。

    --data_path

    保存运行过程中生成的测试用例数据.bin文件所在路径,可配置为绝对路径或者相对路径,并且工具执行用户具有可读写权限。

    默认值:“./data”。

    --process_num

    UT测试的进程数目。

    默认值:“1”。

    --simulator_lib_path

    配置仿真环境运行依赖,指定配置为$HOME/Ascend/ascend-toolkit/latest/toolkit/tools/simulator目录。

    --simulator_data_path

    仿真环境dump数据存放目录,可配置为绝对路径或者相对路径,并且工具执行用户具有可读写权限。

    默认值:“./model”。

    --simulator_mode

    运行测试用例的仿真环境,可支持配置为ca或pv。

    • pv:即PVModel,为功能仿真环境(Simulator Function)。
    • ca:即CAModel,为性能仿真环境(Simulator Performance)。

    --ascendc_op_path

    算子实现文件(.cpp文件)路径,可配置为绝对路径或者相对路径

    说明:

    仅支持配置一个需要运行的算子实现文件。

    --block_dim

    算子核函数运行所需核数。

    默认值:“1”。

    --soc_version

    配置昇腾AI处理器的类型,请根据实际版本进行选择。

    说明:

    可从CANN软件安装后文件存储路径的"compiler/data/platform_config"路径下查看支持的昇腾AI处理器的类型,对应“*.ini”文件的名字即为soc_version。

    示例:

    进入op_ut_run工具所在目录,执行如下命令:
    ./op_ut_run --case_files=xx/test_add_custom_impl.py --data_path=./data --simulator_data_path=./model --simulator_lib_path=/usr/local/Ascend/ascend-toolkit/latest/toolkit/tools/simulator --simulator_mode=ca --soc_version=Ascendxxxyy --case_name=add_custom_1 --ascendc_op_path=xx/add_custom.cpp --block_dim=8

  3. 查看生成的dump数据,目录结构如下所示:

    ├──{model}      //默认目录或自定义数据存放目录
    │   └── ca     //simulator_mode配置为ca时生成此目录
    │       └── add_custom     //根据op_type生成     
    │           └── add_custom_pre_static_test_Add_auto_case_name_1     //以{op_type}_pre_static_test_{case_name}命名的目录下存放的dump数据
    │               ├── core0_xx.dump
    │               ├── core0_xx_xx.dump
    │               ├── core1_xx.dump
    │               ├── core1_xx_xx.dump
    │               ├── core10_xx.dump
    │               ├── core10_xx_xx.dump
    │   └── pv      //simulator_mode配置为pv时生成此目录
    │       └── add_custom      ///根据op_type生成 
    │           └──add_custom_pre_static_test_Add_auto_case_name_1     //以{op_type}_pre_static_test_{case_name}命名的目录下存放的dump数据
    │               ├── core0_xx.dump
    │               ├── core0_xx_xx.dump
    │               ├── core1_xx.dump
    │               ├── core1_xx_xx.dump
    │               ├── core10_xx.dump
    │               ├── core10_xx_xx.dump