Ascend Pytorch算子功能验证
编写测试用例
以add算子为例,测试脚本文件命名为:add_testcase.py。以下示例仅为一个简单的用例实现,具体算子的实现,需要根据算子定义进行完整的覆盖才能保证功能的基本正确。

  1. 引入依赖库。
  2. import torch
  3. import numpy as np
  4. import sys
  5. import copy
    from util_test import compare_res
    说明:
    其中,util_test为测试框架提供的文件,详细实现参考 附录->测试代码样例-> util_test.py,使用时应与testcase.py文件放在同一目录。
  6. 构造输入数据。
  7. def generate_data(min, max, shape, dtype):
  8.  input1 = np.random.uniform(min, max, shape).astype(dtype)
    
  9.  input2 = np.random.uniform(min, max, shape).astype(dtype)
    
  10. #modify from numpy.ndarray to torch.tensor
    
  11. npu_input1 = torch.from_numpy(input1)
    
  12. npu_input2 = torch.from_numpy(input2)
    
  13. return npu_input1, npu_input2
  14. 调用CPU及NPU完成计算,并比较二者的计算结果。
  15. def test_add_float16():
  16. npu_input1, npu_input2 = generate_data(0, 100, (5,3), np.float16)
    
  17. cpu_output = cpu_op_exec(npu_input1, npu_input2)
    
  18. npu_output = npu_op_exec(npu_input1, npu_input2)
    

    compare_res(cpu_output, npu_output, sys._getframe().f_code.co_name)

  19. 调度测试用例
  20. def test_add():
  21. # testcase list
    
  22. test_add_float16()
    
  23. if name == ‘main’:
  24. # 当前版本需要调用如下代码
    
  25. 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=LDL​IBRARYP​ATHexportPATH=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算子功能验证相关推荐

  1. Ascend Pytorch算子适配层开发

    Ascend Pytorch算子适配层开发 适配方法 找到和PyTorch算子功能对应的NPU TBE算子,根据算子功能计算出输出Tensor的size,再根据TBE算子原型构造对应的input/ou ...

  2. 【2023 · CANN训练营第一季】——Ascend C算子开发入门——第一次课

    前言:昇腾AI处理器的算子开发增加了一种新的方式,称之为TIK2,正式名称是Ascend C算子开发.不同于采用Python的DSL和TIK方式,Ascend C使用C/C++作为前端语言的算子开发工 ...

  3. 18_clickhouse副本同步与高可用功能验证,分布式表与集群配置,数据副本与复制表,ZooKeeper整合,创建复制表,副本同步机制,数据原子写入与去重,负载平衡策略,案例(学习笔记)

    24.副本同步与高可用功能验证 24.1.分布式表与集群配置 24.2.数据副本与复制表 24.3.ZooKeeper整合 24.4.创建复制表 24.5.副本同步机制 24.6.数据原子写入与去重 ...

  4. 基于ARM IP的看门狗设计与功能验证

    看门狗是一个定时器, ARM提供了一个32位向下计数的看门狗IP,它会不断地计数.通过软件可以设置计数值,计数到某一设定值重新开始计数,这一过程也被称为喂狗,如果没有正常喂狗,说明出现系统故障,看门狗 ...

  5. 05 占空比可调的整数奇偶分频器设计与功能验证(附源码)

    虚拟机:VMware -14.0.0.24051 环 境:ubuntu 18.04.1 脚 本:makefile(点击直达) 应用工具:vcs 和 verdi 文章目录 一.Demand 二.Time ...

  6. Openstack-实践4.Manila 部署及功能验证

    1.manila 部署 基本环境: kolla-ansible  rocky+centos7.4 vim /etc/kolla/globals.yml enable_horizon_manila: & ...

  7. SystemVerilog与功能验证

    目录 一.功能验证流程 二.验证手段.验证技术.验证方法学 三.数据类型与编程结构 四.并发进程与进程同步 五.面向对象编程 六.虚接口 七.随机测试 八.继承与多态 九.功能覆盖率 十.断言 一.功 ...

  8. Ranger功能验证

    Apache Ranger功能验证 1.概况 1.1.Apache Ambari Apache Ambari 是一个基于 Web 的 Apache Hadoop 集群的供应.管理和监控.Ambari ...

  9. SDN环境搭建和基本功能验证

    sdn环境搭建及基本功能验证 1. 控制器和网络仿真器选择- 3 2. 基本硬件要求- 3 3. 环境和软件要求- 3 4. onos安装说明- 3 4.1. 安装步骤如下- 3 4.1.1. 更新源 ...

最新文章

  1. POJ-2195 Going Home 最小权值匹配
  2. NHibernate1.02使用MsAccess2000Dialect 提供对 Access 数据库的支持
  3. Web服务的体系架构
  4. generating phar.php,Generating
  5. 华为手机短息没有声音解决方案
  6. 对失恋男人的10条忠告
  7. Struts1 页面提交到ActionForm,form为null
  8. 虚幻4蓝图各颜色代表的含义
  9. Windows7Windows10兼容红色警戒
  10. c语言输出七行的菱形,C语言输出一个菱形图案(有程序)
  11. 大疆网上测评题库_大疆校招笔试题及参考(一个小编程题)
  12. PHP最好的语言的梗的笑话
  13. CorelDRAW VBA - 获取页面边框范围内的所有图形
  14. 模型选择——子集选择法(Subset Selection)
  15. pytorch BatchNorm参数详解,计算过程
  16. linux修改文件夹属性,Linux修改文件/文件夹属性
  17. ASP.NET MVC 音乐商店 - 4. 数据访问
  18. 软件测试面试题及答案,不给答案的面试题都是耍流氓
  19. 敷完面膜后要擦水乳吗_敷完面膜还要擦水乳吗
  20. linux内存管理笔记(八)---内核临时页表的创建

热门文章

  1. 2022-2028年中国输送胶管行业市场全景调查及投资前景趋势报告
  2. 2022-2028年中国BOPET薄膜行业市场全景调查及投资前景预测报告
  3. python实现二叉树的重建2 之由中序遍历和后序遍历重建
  4. 英特尔 i5-9400F,或将成为本年最高性价比的游戏处理器
  5. MEMS传感器作为变革的驱动力
  6. 半导体群聚、虚拟垂直、整合
  7. CVPR2020行人重识别算法论文解读
  8. 2021年大数据Hadoop(四):Hadoop发行版公司
  9. Python爬虫实战糗事百科实例
  10. Django 缓存6.2