写点什么

带你掌握如何使用 CANN 算子 ST 测试工具 msopst

  • 2022 年 9 月 19 日
    中国香港
  • 本文字数:1710 字

    阅读完需:约 6 分钟

带你掌握如何使用CANN 算子ST测试工具msopst

本文分享自华为云社区《【CANN文档速递13期】算子ST测试工具【msopst】》,作者: 昇腾 CANN 。

如何获取 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 自定义算子开发指南》。

( https://www.hiascend.com/document?tag=community-developer )



昇腾 CANN 文档中心致力于为开发者提供更优质的内容和更便捷的开发体验,助力 CANN 开发者共建 AI 生态。任何意见和建议都可以在昇腾社区反馈,您的每一份关注都是我们前进的动力。 


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
带你掌握如何使用CANN 算子ST测试工具msopst_人工智能_华为云开发者联盟_InfoQ写作社区