指导用户根据算子测试用例定义文件生成ST测试数据及测试用例执行代码,在硬件环境上执行算子测试用例。
export DDK_PATH=${INSTALL_DIR} export NPU_HOST_LIB=${INSTALL_DIR}/{arch-os}/devlib
./msopst run -i {**.json} -soc {Soc Version} -out {output path} -c {case name} -d {device id} -conf {msopst.ini path} -err_thr "[threshold1,threshold2]"
参数名称 |
参数描述 |
是否必选 |
---|---|---|
run |
用于执行算子的ST测试用例。 |
是 |
-i,--input |
算子测试用例定义文件(*.json)的路径,可配置为绝对路径或者相对路径。 此处的json文件为执行msopst create命令后的输出,算子测试用例定义文件的详细说明请参见表2。 |
是 |
-soc, --soc_version |
配置为昇腾AI处理器的类型。 说明:
如果无法确定具体的<soc_version>,则在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,在查询到的“Name”前增加Ascend信息,例如“Name”对应取值为xxxyy,实际配置的<soc_version>值为Ascendxxxyy。 |
是 |
-out,--output |
生成文件所在路径,可配置为绝对路径或者相对路径,并且工具执行用户具有可读写权限。若不配置该参数,则默认生成在执行命令的当前路径。 |
否 |
-c,--case_name |
|
否 |
-d,--device_id |
NPU设备ID,设置运行ST测试用例的昇腾AI处理器的ID。 若未设置此参数,默认为:0。 |
否 |
-err_thr,--error_threshold |
配置自定义精度标准,取值为含两个元素的列表:"[threshold1,threshold2]"
默认值为:"[0.01,0.05]"。 取值范围为:"[0.0,1.0]"。 说明:
|
否 |
-conf,--config_file |
ST测试高级功能配置文件(msopst.ini)存储路径,可配置为绝对路径或者相对路径。 msopst.ini配置文件的详细说明请参见表2。 用户可通过修改msopst.ini配置文件,实现如下高级功能:
|
否 |
-err_report,--error_report |
针对比对失败的用例,获取算子期望数据与实际用例执行结果不一致的数据。若未设置此参数,默认为:“false”。
|
否 |
${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。
参数 |
值 |
说明 |
---|---|---|
only_gen_without_run |
|
msopst工具运行模式。 详情请参见表3。 |
only_run_without_gen |
|
|
performance_mode |
|
获取算子性能模式。若设置为True,运行成功后在run/out/prof/JOBxxx/summary目录下生成一系列性能结果文件,用户只需查看op_summary_0_1.csv即可。
该功能需要配置CANN包安装环境变量,请根据实际安装路径修改。
export install_path=/home/HwHiAiUser/Ascend/ascend-toolkit/latest
|
ASCEND_GLOBAL_LOG_LEVEL |
|
设置host日志级别环境变量。 |
ASCEND_SLOG_PRINT_TO_STDOUT |
|
日志屏幕打印控制。 |
atc_singleop_advance_option |
--log参数取值:
--precision_mode参数取值:
示例: atc_singleop_advance_option = "--log=error --precision_mode=force_fp16" |
设置单算子模型转换高级选项。 |
HOST_ARCH |
示例: HOST_ARCH="aarch64" |
执行机器的架构。 一般在分设场景下配置该参数。 |
TOOL_CHAIN |
g++ path:g++工具链路径 示例: TOOL_CHAIN="/usr/bin/g++" |
c++编译器路径,配置时以g++结尾。 一般在分设场景下配置该参数。 |
./msopst run -i xx/Add_case_timestamp.json -soc {Soc Version} -out ./output
vim ${INSTALL_DIR}/python/site-packages/bin/msopst.ini
${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。
将msopst运行模式修改为模式2,按照表3修改“only_gen_without_run”和“only_run_without_gen” 参数的取值。只生成ST测试代码,不运行ST测试代码。
./msopst run -i xx/Add_case_timestamp.json -soc {Soc Version} -out ./output -conf xx/msopst.ini
-conf参数请修改为msopst.ini配置文件的实际路径。
ST测试用例生成后,用户可根据需要自行修改ST测试用例代码。
vim ${INSTALL_DIR}/python/site-packages/bin/msopst.ini
将msopst运行模式修改为模式3,按照表3修改“only_gen_without_run”和“only_run_without_gen” 参数的取值。不生成ST测试代码,只运行ST测试代码。
./msopst run -i xx/Add_case_timestamp.json -soc {Soc Version} -out ./output -conf xx/msopst.ini
若执行失败。
请参见《应用软件开发指南(C&C++)》手册中“AscendCL API参考 > 数据类型及其操作接口”查看aclError的含义。
请参见《ATC工具使用指南》“错误码参考”中的内容。
请参见《日志参考》查看日志进行分析。
{time_stamp} │ ├── OpType │ │ ├── CMakeLists.txt // 编译规则文件 │ │ ├── inc // 测试用例代码所用头文件 │ │ │ └── common.h │ │ │ └── op_execute.h │ │ │ └── op_runner.h │ │ │ └── op_test_desc.h │ │ │ └── op_test.h │ │ ├── run // 测试用例执行相关文件存储目录 │ │ │ └── out │ │ │ └── test_data │ │ │ └── config │ │ │ └── acl.json //用于进行acl初始化,请勿修改此文件 │ │ │ └── acl_op.json // 用于构造单算子模型文件的算子描述文件 │ │ │ └── data │ │ │ └── expect │ │ │ └── Test_xxx.bin │ │ ├── src │ │ │ └── CMakeLists.txt // 编译规则文件 │ │ │ └── common.cpp // 公共函数,读取二进制文件函数的实现文件 │ │ │ └── main.cpp // 初始化算子测试用例并执行用例 │ │ │ └── op_execute.cpp //针对单算子调用的AscendCL接口进行了封装 │ │ │ └── op_runner.cpp //加载单算子模型文件进行执行的接口进行了封装 │ │ │ └── op_test.cpp //定义了算子的测试类 │ │ │ └── op_test_desc.cpp //对算子测试用例信息的加载和读入 │ │ │ └── testcase.cpp //测试用例的定义文件
{time_stamp} │ ├── OpType │ │ ├── build │ │ │ └── intermediates //编译产生中间文件 │ │ │ └── xxx │ │ ├── CMakeLists.txt // 编译规则文件 │ │ ├── inc │ │ │ ├── common.h │ │ │ ├── op_execute.h │ │ │ ├── op_runner.h │ │ │ ├── op_test_desc.h │ │ │ └── op_test.h │ │ ├── run // 测试用例执行相关文件存储目录 │ │ │ └── out │ │ │ ├── fusion_result.json │ │ │ ├── main // 算子测试用例执行的可执行文件 │ │ │ ├── op_models // 单算子的离线模型文件 │ │ │ ├── xx.om │ │ │ ├── result_files │ │ │ ├── result.txt │ │ │ ├── Test_xxx_output_x.bin // 运行测试用例生成的结果数据的二进制文件 │ │ │ └── test_data //测试数据相关文件存储目录 │ │ │ ├── config │ │ │ ├── acl_op.json // 用于构造单算子模型文件的算子描述文件 │ │ │ ├── acl.json //用于进行acl初始化,请勿修改此文件 │ │ │ ├── data //构造的测试数据 │ │ │ ├──expect │ │ │ ├──Test_xxxx.bin //期望的输出结果的二进制文件 │ │ │ ├──st_error_reports │ │ │ ├──Test_xxxx.csv //用于保存比对结果不一致的数据 │ │ │ ├──Test_xxxx.bin //测试数据的二进制文件 │ │ └── src │ │ ├── CMakeLists.txt // 编译规则文件 │ │ ├── common.cpp // 公共函数,读取二进制文件函数的实现文件 │ │ ├── main.cpp // 初始化算子测试用例并执行用例 │ │ ├── op_execute.cpp //针对单算子调用的AscendCL接口进行了封装 │ │ ├── op_runner.cpp //加载单算子模型文件进行执行的接口进行了封装 │ │ ├── op_test.cpp //定义了算子的测试类 │ │ ├── op_test_desc.cpp //对算子测试用例信息的加载和读入 │ │ └── testcase.cpp //测试用例的定义文件 │ └── st_report.json //运行报表
命令运行成功后会生成报表st_report.json,如图1保存在“The st_report saved in”路径下,记录了测试的信息以及各阶段运行情况。
字段 |
说明 |
||
---|---|---|---|
run_cmd |
- |
- |
命令行命令。 |
report_list |
- |
- |
报告列表,该列表中可包含多个测试用例的报告。 |
trace_detail |
- |
运行细节。 |
|
st_case_info |
测试信息,包含如下内容。
|
||
stage_result |
运行各阶段结果信息,包含如下内容。
|
||
case_name |
- |
测试名称。 |
|
status |
- |
测试结果状态,表示运行成功或者失败。 |
|
expect |
- |
期望的测试结果状态,表示期望运行成功或者失败。 |
|
summary |
- |
- |
统计测试用例的结果状态与期望结果状态对比的结果。 |
test case count |
- |
测试用例的个数。 |
|
success count |
- |
测试用例的结果状态与期望结果状态一致的个数。 |
|
failed count |
- |
测试用例的结果状态与期望结果状态不一致的个数。 |
export DDK_PATH=${INSTALL_DIR} export NPU_HOST_LIB=${INSTALL_DIR}/{arch-os}/devlib
export DDK_PATH=${INSTALL_DIR}/{arch-os} export NPU_HOST_LIB=${INSTALL_DIR}/{arch-os}/devlib
vim ${INSTALL_DIR}/python/site-packages/bin/msopst.ini
${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。
./msopst run -i {**.json} -soc {Soc Version} -out {output path} -conf xx/msopst.ini
-conf参数请修改为msopst.ini配置文件的实际路径。ST测试用例生成后,用户可根据需要自行修改ST测试用例代码。
执行完成后,屏显信息显示此次用例运行的情况,如图2所示。