带你掌握如何使用CANN 算子ST测试工具msopst
摘要:本期带您了解如何使用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生态。任何意见和建议都可以在昇腾社区反馈,您的每一份关注都是我们前进的动力。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微服务低代码Serverless平台(星链)的应用实践
导读 星链是京东科技消金基础研发部研发的一款研发效能提升的工具平台,面向后端服务研发需求,尤其是集成性、场景化、定制化等难度不太高、但比较繁琐的需求,如服务前端的后端(BFF)、服务流程编排、异步消息处理、定时任务、运营后台、工作流程自动化、临时性需求等,以低代码方式开发微服务,以声明式进行Serverless部署,使研发人员聚焦业务逻辑而非各类细节,大幅提升研发效能、降本增效。 1 星链是什么 星链是京东科技消金基础研发部研发的一款研发效能提升的工具平台,面向后端服务研发需求,尤其是集成性、场景化、定制化等难度不太高、但比较繁琐的需求,如服务前端的后端(BFF)、服务流程编排、异步消息处理、定时任务、运营后台、工作流程自动化、临时性需求等,以低代码方式开发微服务,以声明式进行Serverless部署,使研发人员聚焦业务逻辑而非各类细节,大幅提升研发效能、降本增效。 星链提供了一个统一的Web界面,用户通过它可以完成微服务的开发、调试、构建、测试、部署完整流程。在开发方面,除了支持可视化配置、组件化流程编排,同时支持Java/JavaScript/Groovy等语言,支持引入第三方包,...
- 下一篇
为什么Kubernetes和容器与机器学习密不可分?
原文出自infosecurity 作者:Rebecca James 京东云开发者社区编译 当前,数字化转型的热潮在IT领域发展的如火如荼,越来越多的企业投身其中,机器学习和人工智能等现代技术的融合在公司组织内部也逐渐流行起来。 随着那些构成企业复杂IT基础架构的技术日益成熟,部署云原生环境以及在该环境中使用容器早已成为企业技术轨道中的“家常便饭”。 幸运的是,对于企业所有者而言,Kubernetes和容器部署技术不仅可以与机器学习技术并驾齐驱,而且可以引入到云原生模型中,从而为企业提供良多裨益,包括实施有效的业务策略以及安全性的培养。 当我们谈到机器学习时,你会想到什么?机器的应用场景是多种多样的 -- 从简单的欺诈/网络犯罪侦查,到量身定制的客户体验,再到像供应链优化这样复杂的操作,一切都证明了机器学习能够为企业所带来的丰厚利润。 此外,Gartner的预测进一步证明了机器学习所提供的众多优势,该预测指出,到2021年,70%的企业都将依赖于某种形式的人工智能。 人工智能在业务中的应用 企业若想充分利用人工智能和机器学习,并将其应用于DevOps和DevSecOps等新业务组中,他们...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合Thymeleaf,官方推荐html解决方案