摘要:本期带您了解如何使用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的更多相关文章

  1. 如何使用apache自带的ab压力测试工具

    ab是apache自带的一个很好用的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab 1 我们可以模拟100个并发用户,对一个页面发送1000个请求 ./ab -n1000 -c1 ...

  2. (转)MySQL自带的性能压力测试工具mysqlslap详解

    mysqlslap 是 Mysql 自带的压力测试工具,可以模拟出大量客户端同时操作数据库的情况,通过结果信息来了解数据库的性能状况 mysqlslap 的一个主要工作场景就是对数据库服务器做基准测试 ...

  3. 数据库相关文章转载(2) MySQL自带的性能压力测试工具mysqlslap详解

    PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一 ...

  4. (总结)MySQL自带的性能压力测试工具mysqlslap详解

    PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一 ...

  5. CANN算子:利用迭代器高效实现Tensor数据切割分块处理

    摘要:本文以Diagonal算子为例,介绍并详细讲解如何利用迭代器对n维Tensor进行基于位置坐标的大批量数据读取工作. 本文分享自华为云社区<CANN算子:利用迭代器高效实现Tensor数据 ...

  6. 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 可以参考一下部 ...

  7. 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 可以参考一 ...

  8. vs自带服务测试工具

    在vs安装目录有一个vs自带的服务测试工具,地址为: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Wcf ...

  9. Apache自带压力测试工具ab用法简介

    ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...

  10. apache自带压力测试工具ab的使用及解析

    当你搭建了apache服务器并在上面部署了web网站,在网站运行前,为了使apache服务器的性能得到更好的应用,我们可以先对其进行压力测试.进行压力测试其实非常简单,我们也不用再额外下载安装什么测试 ...

随机推荐

  1. sql优化的方法总结

    1.对查询进行优化,应该尽量避免全表扫描,首先应考虑在where和order by涉及的列上建立索引 2.应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表 ...

  2. 关于CAS等原子操作,说点别人没说的

    Java中提供了原子操作,可以简单看一下AtomicInteger类中的一个典型的原子操作incrementAndGet(),表示对原子整数变量进行加操作,并返回新的值.实现如下: public cl ...

  3. CF1854E Games Bundles 题解

    乱搞题 设个 \(dp[i]\) 表示和为 \(i\) 的子序列个数,那么转移是容易的, \(dp[j]+=dp[j-i]\) ,然后就判下 \(dp[60]+dp[60-i]\) 是否大于 \(m\ ...

  4. 火山引擎 ByteHouse:只需 2 个方法,增强 ClickHouse 数据导入能力

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 作为企业数字化建设的必备要素,易用的数据引擎能帮助企业提升数据使用效率,更好提升数据应用价值,夯实数字化建设基础. ...

  5. JavaScript:判断数据类型的四种方法

    JavaScript目前有两种数据类型:基本数据类型和引用数据类型. 基本数据类型:Undefined.Null.Boolean.String.Number.Symbol(ES6) 引用数据类型:Ob ...

  6. Go语言基准测试(benchmark)三部曲之二:内存篇

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<Go语言基准测试(benchm ...

  7. 28. 干货系列从零用Rust编写正反向代理,项目日志的源码实现

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现 ...

  8. swiper轮播图出现疯狂抖动(小程序)

    swiper轮播图息屏一段时间或快速滑动切换时出现疯狂抖动 以前做小程序项目的时候,没专门测试人员,都是开发者自测,可能我的手机性能比较不错(哈哈)或时机不对,总之没发掘到这个bug:近期做项目,测试 ...

  9. VLOOKUP函数10种经典用法

    VLOOKUP函数是Excel中非常常用的函数之一,可以用于在一个区域或表格中查找某个值,并返回该值所在行的另一个指定列中的数值.以下是VLOOKUP函数的10种经典用法: 基本的VLOOKUP用法: ...

  10. .NET8极致性能优化AOT

    前言 .NET8对于性能的优化是方方面面的,所以AOT预编译机器码也是不例外的.本篇来看下对于AOT的优化.原文:.NET8极致性能优化AOT 详述 首先明确一个概念,.NET里面的AOT它是原生的. ...