带你掌握如何使用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生态。任何意见和建议都可以在昇腾社区反馈,您的每一份关注都是我们前进的动力。
带你掌握如何使用CANN 算子ST测试工具msopst的更多相关文章
- 如何使用apache自带的ab压力测试工具
ab是apache自带的一个很好用的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab 1 我们可以模拟100个并发用户,对一个页面发送1000个请求 ./ab -n1000 -c1 ...
- (转)MySQL自带的性能压力测试工具mysqlslap详解
mysqlslap 是 Mysql 自带的压力测试工具,可以模拟出大量客户端同时操作数据库的情况,通过结果信息来了解数据库的性能状况 mysqlslap 的一个主要工作场景就是对数据库服务器做基准测试 ...
- 数据库相关文章转载(2) MySQL自带的性能压力测试工具mysqlslap详解
PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一 ...
- (总结)MySQL自带的性能压力测试工具mysqlslap详解
PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一 ...
- CANN算子:利用迭代器高效实现Tensor数据切割分块处理
摘要:本文以Diagonal算子为例,介绍并详细讲解如何利用迭代器对n维Tensor进行基于位置坐标的大批量数据读取工作. 本文分享自华为云社区<CANN算子:利用迭代器高效实现Tensor数据 ...
- 4分钟apache自带ab压力测试工具使用: 2015.10.4
2015.10.44分钟apache自带ab压力测试工具使用:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部 ...
- win8.1上wamp环境中利用apache自带ab压力测试工具使用超简单讲解
2015.10.4apache自带ab压力测试工具使用:本地环境:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一 ...
- vs自带服务测试工具
在vs安装目录有一个vs自带的服务测试工具,地址为: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Wcf ...
- Apache自带压力测试工具ab用法简介
ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...
- apache自带压力测试工具ab的使用及解析
当你搭建了apache服务器并在上面部署了web网站,在网站运行前,为了使apache服务器的性能得到更好的应用,我们可以先对其进行压力测试.进行压力测试其实非常简单,我们也不用再额外下载安装什么测试 ...
随机推荐
- Vue源码学习(十二):列队处理(防抖优化,多次调用,只处理一次)
好家伙, 本篇讲的是数据更新请求列队处理 1.一些性能问题 数据更新的核心方法是watcher.updata方法 实际上也就是vm._updata()方法, vm._updata()方法中的patch ...
- 简单实现.NET Hook与事件模拟
最近玩<星露谷物语>上瘾,本来是看着个休闲游戏,现在玩成修仙游戏了,上百个小时浑身是肝,中午午休习惯都强行给改了. 虽然挺有意思,但是太肝了,入坑前请谨慎.补充一下,这个游戏应该是基于 X ...
- Production Environment Difference Between Development, Stage, And Production
There are three different environments that you'll probably deal with at some point. Each environmen ...
- 树莓派的简单上手-网络配置-ssh-frp
作为一个伪pi粉, 隔三差五的玩一下树莓派,有时总是忘记这些配置方法,这里记录一下. 可以看考如下的文章: https://blog.csdn.net/cupidove/article/details ...
- 生成ios证书最简单的方法
使用了hbuilderx的uniapp来开发app很方便,但是官网的文档,生成ios的私钥证书却需要使用mac电脑来生成,假如没有mac电脑就无法使用教程的方法来生成ios证书. 因为hbuilder ...
- HarmonyOS 高级特性
引言 本章将探讨 HarmonyOS 的高级特性,包括分布式能力.安全机制和性能优化.这些特性可以帮助你构建更强大.更安全.更高效的应用. 目录 HarmonyOS 的分布式能力 HarmonyOS ...
- 从DPlayer说起,有哪些开源的H5播放器
引言 H5指的是HTML5,也就是介绍网页播放器(只是列出而已).首先我不是什么大佬,并没有完全体验过以下我会介绍的全部播放器:其次,因为我水平比较低,主要介绍拥有中文文档的播放器,不了解开发的朋 ...
- 比STL还STL?——更全面的解析!
如何更快的使用高级数据结构 Part 1 :__gnu_pbds 库 __gnu_pbds 自带了封装好了的平衡树.字典树.hash等强有力的数据结构,常数还比自己写的小,效率更高 一.平衡树 #de ...
- 关于Anolis8/Centos8系统重启后ip地址丢失的原因
关于Anolis8/Centos8系统重启后ip地址丢失的原因 #.今天把之前在VMware安装的Anolis8系统重启了,启动之后发现Xshell连接不上.在VMware上登录后执行ip a命令发现 ...
- 根据子节点ID获取结构树中该子节点的所有父节点ID
数据源: let adreeJson = [{ cat_id: 1, cat_name: '大家电', cat_pid: 0, cat_level: 0, cat_deleted: false, ch ...