关于程序员:带你掌握如何使用CANN-算子ST测试工具msopst

5次阅读

共计 1871 个字符,预计需要花费 5 分钟才能阅读完成。

如何获取 msopst 工具
msopst 工具存储在 Ascend-cann-toolkit 装置目录的“toolkit/python/site-packages/bin”门路下。反对对 TBE 算子以及 AI CPU 算子进行 ST 测试。
CANN 软件装置实现并失效环境变量配置脚本后,即可间接应用此工具,您能够在任意门路下执行如下命令查看工具相干参数:

总体应用流程
自定义算子部署到 OPP 算子库后,开发者可应用 msopst 工具验证算子在昇腾 AI 处理器上执行的正确性,总体流程较简略,如下所示:

上面咱们别离介绍以上每一个步骤是干什么的?该如何做?
生成测试用例定义文件
测试用例定义文件,顾名思义,就是用来生成测试用例的,其内容蕴含了测试用例所需的根本信息,例如:测试用例名称,所要测试的算子类型,算子的输入输出形容信息(形态、数据类型、数据排布格局等)、算子属性相干信息(蕴含属性名称、类型、属性值)、数据生成算法等。以 Add 算子为例,通过 msopst 工具生成测试用例定义文件的命令如下:

上述命令执行实现后,会在以后门路的 output 目录下生成 Add 算子的测试用例定义文件:Add_case_{timestamp}.json。
当然,您也能够不应用 msopst create 命令,间接拷贝已有算子的测试用例定义文件进行批改亦可,应用算子信息库生成的劣势是会主动填充测试用例定义文件中的相干字段,例如 case_name,op,input_desc 与 output_desc 中的 name、format、type 等。OpType_case_xxx.json 文件的模板如下:

配置测试用例定义文件
测试用例定义文件的配置为整个 ST 测试流程的外围,间接决定了生成的测试用例个数、数据生成算法、测试覆盖率等,上面形容测试用例定义文件的参数含意及配置办法。
输入输出形容配置
输入输出形容信息蕴含的要害配置如下表所示:

测试用例采纳将以上配置进行正交组合的形式生成,如下图所示,format 取值为[“ND”,“NCHW”,“NHWC”];type 的取值为[“int32”,“float32”];shape 的取值范畴为[32,16];data_distribute 的取值为[“uniform”],value_range 的取值为[0.1, 1.0],则生成的测试用例个数为 3 2 1 1 1 = 6。

算子属性配置
若算子蕴含属性,还须要配置如下表所示参数:

大批量生成测试用例
若开发者须要生成大量测试用例,可利用 fuzz 测试参数生成脚本辅助生成,并在测试用例定义文件(*.json)中配置 fuzz 脚本门路、所需生成的测试用例数目,同时输入输出形容中相干参数的取值配置为“fuzz”。操作步骤示例如下:
1、配置 fuzz 测试参数生成脚本,假如脚本命名“fuzz_shape.py”,实现如下所示:

2、配置测试用例定义文件;
3、在测试用例定义文件(*.json)中配置 fuzz 测试参数生成脚本的门路,所需生成的测试用例个数,并将须要主动生成的字段配置为固定值“fuzz”,如下所示:

定义冀望数据生成函数
若用户须要失去理论输入与冀望输入的比对后果,可应用 Python 语言自定义实现冀望数据生成函数,并在 ST 测试用例定义文件中减少此函数入口。例如,Add 算子的冀望数据生成函数为“/home/test/test_add.py”,实现如下所示:

而后在 ST 测试用例定义文件中减少“calc_expect_func_file”参数,配置为“冀望数据生成函数的文件: 函数名”,如下所示:

生成并执行测试用例
配置完相干环境变量后,您就能够通过如下命令执行 ST 测试用例:

查看执行后果
ST 测试用例执行完后,您能够通过打屏信息查看用例执行后果,若下所示,共运行 9 个用例,9 个用例全副执行胜利。

开发者也能够查看生成的报表“st_report.json”,此报表中记录了测试后果及各阶段的运行状况,ST 测试用例运行异样时,能够基于此信息进行问题定位。

至此,ST 测试工具“msopst”的应用全流程已介绍结束,您是否对此工具有了初步的认知呢?若您须要进行自定义算子的开发,别忘了应用此工具进行算子的 ST 测试噢~ 对于此工具的更多应用样例,可参见昇腾社区中的《TBE 自定义算子开发指南》或《AI CPU 自定义算子开发指南》。
(www.hiascend.com/document?ta…)

昇腾 CANN 文档核心致力于为开发者提供更优质的内容和更便捷的开发体验,助力 CANN 开发者共建 AI 生态。任何意见和倡议都能够在昇腾社区反馈,您的每一份关注都是咱们后退的能源。

正文完
 0