Ascend Pytorch算子功能验证
Ascend Pytorch算子功能验证
编写测试用例
以add算子为例,测试脚本文件命名为:add_testcase.py。以下示例仅为一个简单的用例实现,具体算子的实现,需要根据算子定义进行完整的覆盖才能保证功能的基本正确。
- 引入依赖库。
- import torch
- import numpy as np
- import sys
- import copy
from util_test import compare_res
说明:
其中,util_test为测试框架提供的文件,详细实现参考 附录->测试代码样例-> util_test.py,使用时应与testcase.py文件放在同一目录。 - 构造输入数据。
- def generate_data(min, max, shape, dtype):
input1 = np.random.uniform(min, max, shape).astype(dtype)
input2 = np.random.uniform(min, max, shape).astype(dtype)
#modify from numpy.ndarray to torch.tensor
npu_input1 = torch.from_numpy(input1)
npu_input2 = torch.from_numpy(input2)
- return npu_input1, npu_input2
- 调用CPU及NPU完成计算,并比较二者的计算结果。
- def test_add_float16():
npu_input1, npu_input2 = generate_data(0, 100, (5,3), np.float16)
cpu_output = cpu_op_exec(npu_input1, npu_input2)
npu_output = npu_op_exec(npu_input1, npu_input2)
compare_res(cpu_output, npu_output, sys._getframe().f_code.co_name)
- 调度测试用例
- def test_add():
# testcase list
test_add_float16()
- if name == ‘main’:
# 当前版本需要调用如下代码
torch.npu.set_device("npu:0") //注意 "npu:x"中的x的填写参见说明
test_add()
说明:
set_device(“npu:0”) 这个接口的作用是指定用例运行的NPU设备ID。
设置运行环境变量
export LD_LIBRARY_PATH=/usr/local/lib/:/usr/lib/:/usr/local/Ascend/fwkacllib/lib64/:/usr/local/Ascend/driver/lib64/common/:/usr/local/Ascend/driver/lib64/driver/:/usr/local/Ascend/add-ons/:/usr/lib/x86_64-linux-gnu:LDLIBRARYPATHexportPATH=LD_LIBRARY_PATH export PATH=LDLIBRARYPATHexportPATH=PATH:/usr/local/Ascend/fwkacllib/ccec_compiler/bin
export ASCEND_OPP_PATH=/usr/local/Ascend/opp
export NEW_GE_FE_ID=1
export GE_AICPU_FLAG=1
export PYTHONPATH=/usr/local/Ascend/atc/python/site-packages/:/usr/local/Ascend/atc/python/site-packages/auto_tune.egg/auto_tune:/usr/local/Ascend/atc/python/site-packages/schedule_search.egg
export CUSTOM_OP_LIB_PATH=/usr/local/Ascend/ops/framework/built-in/tensorflow
export OPTION_EXEC_EXTERN_PLUGIN_PATH=/usr/local/Ascend/fwkacllib/lib64/plugin/opskernel/libfe.so:/usr/local/Ascend/fwkacllib/lib64/plugin/opskernel/libaicpu_plugin.so:/usr/local/Ascend/fwkacllib/lib64/plugin/opskernel/libge_local_engine.so
export PLUGIN_LOAD_PATH=/usr/local/Ascend/fwkacllib/lib64/plugin/opskernel/libfe.so:/usr/local/Ascend/fwkacllib/lib64/plugin/opskernel/libaicpu_plugin.so:/usr/local/Ascend/fwkacllib/lib64/plugin/opskernel/libge_local_engine.so:/usr/local/Ascend/fwkacllib/lib64/plugin/opskernel/librts_engine.so
说明:
上述环境变量实际路径/usr/local/Ascend/需要根据开发套件等的安装路径进行相应的调整。普通用户进行调试时,将“自定义TBE算子”安装至个人工作目录(当前版本要求与Ascend-opp-.run的安装目录一致,如Ascend-opp-.run安装在"/home/username/.local/Ascend"),则需修改上述环境变量中的内容:
export ASCEND_OPP_PATH=~/.local/Ascend/opp
export CUSTOM_OP_LIB_PATH=~/.local/Ascend/opp/framework/custom/tensorflow
执行测试用例脚本
进入add_testcase.py所在的目录,执行:
python3.7.5 add_testcase.py
运行结束,可能会提示一个错误“THPModule_npu_shutdown failed.”,此错误不影响结果,请忽略。
Ascend Pytorch算子功能验证相关推荐
- Ascend Pytorch算子适配层开发
Ascend Pytorch算子适配层开发 适配方法 找到和PyTorch算子功能对应的NPU TBE算子,根据算子功能计算出输出Tensor的size,再根据TBE算子原型构造对应的input/ou ...
- 【2023 · CANN训练营第一季】——Ascend C算子开发入门——第一次课
前言:昇腾AI处理器的算子开发增加了一种新的方式,称之为TIK2,正式名称是Ascend C算子开发.不同于采用Python的DSL和TIK方式,Ascend C使用C/C++作为前端语言的算子开发工 ...
- 18_clickhouse副本同步与高可用功能验证,分布式表与集群配置,数据副本与复制表,ZooKeeper整合,创建复制表,副本同步机制,数据原子写入与去重,负载平衡策略,案例(学习笔记)
24.副本同步与高可用功能验证 24.1.分布式表与集群配置 24.2.数据副本与复制表 24.3.ZooKeeper整合 24.4.创建复制表 24.5.副本同步机制 24.6.数据原子写入与去重 ...
- 基于ARM IP的看门狗设计与功能验证
看门狗是一个定时器, ARM提供了一个32位向下计数的看门狗IP,它会不断地计数.通过软件可以设置计数值,计数到某一设定值重新开始计数,这一过程也被称为喂狗,如果没有正常喂狗,说明出现系统故障,看门狗 ...
- 05 占空比可调的整数奇偶分频器设计与功能验证(附源码)
虚拟机:VMware -14.0.0.24051 环 境:ubuntu 18.04.1 脚 本:makefile(点击直达) 应用工具:vcs 和 verdi 文章目录 一.Demand 二.Time ...
- Openstack-实践4.Manila 部署及功能验证
1.manila 部署 基本环境: kolla-ansible rocky+centos7.4 vim /etc/kolla/globals.yml enable_horizon_manila: & ...
- SystemVerilog与功能验证
目录 一.功能验证流程 二.验证手段.验证技术.验证方法学 三.数据类型与编程结构 四.并发进程与进程同步 五.面向对象编程 六.虚接口 七.随机测试 八.继承与多态 九.功能覆盖率 十.断言 一.功 ...
- Ranger功能验证
Apache Ranger功能验证 1.概况 1.1.Apache Ambari Apache Ambari 是一个基于 Web 的 Apache Hadoop 集群的供应.管理和监控.Ambari ...
- SDN环境搭建和基本功能验证
sdn环境搭建及基本功能验证 1. 控制器和网络仿真器选择- 3 2. 基本硬件要求- 3 3. 环境和软件要求- 3 4. onos安装说明- 3 4.1. 安装步骤如下- 3 4.1.1. 更新源 ...
最新文章
- POJ-2195 Going Home 最小权值匹配
- NHibernate1.02使用MsAccess2000Dialect 提供对 Access 数据库的支持
- Web服务的体系架构
- generating phar.php,Generating
- 华为手机短息没有声音解决方案
- 对失恋男人的10条忠告
- Struts1 页面提交到ActionForm,form为null
- 虚幻4蓝图各颜色代表的含义
- Windows7Windows10兼容红色警戒
- c语言输出七行的菱形,C语言输出一个菱形图案(有程序)
- 大疆网上测评题库_大疆校招笔试题及参考(一个小编程题)
- PHP最好的语言的梗的笑话
- CorelDRAW VBA - 获取页面边框范围内的所有图形
- 模型选择——子集选择法(Subset Selection)
- pytorch BatchNorm参数详解,计算过程
- linux修改文件夹属性,Linux修改文件/文件夹属性
- ASP.NET MVC 音乐商店 - 4. 数据访问
- 软件测试面试题及答案,不给答案的面试题都是耍流氓
- 敷完面膜后要擦水乳吗_敷完面膜还要擦水乳吗
- linux内存管理笔记(八)---内核临时页表的创建