zoukankan      html  css  js  c++  java
  • Ascend Pytorch算子功能验证

    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文件放在同一目录。

    1. 构造输入数据。
    2. 调用CPU及NPU完成计算,并比较二者的计算结果。
    3. 调度测试用例
    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.     
    11.     #modify from numpy.ndarray to torch.tensor
    12.     npu_input1 = torch.from_numpy(input1)
    13.     npu_input2 = torch.from_numpy(input2)
    14.  
        return npu_input1, npu_input2
    16. def test_add_float16():
    17.     npu_input1, npu_input2 = generate_data(0, 100, (5,3), np.float16)
    18.     cpu_output = cpu_op_exec(npu_input1, npu_input2)
    19.     npu_output = npu_op_exec(npu_input1, npu_input2)
        compare_res(cpu_output, npu_output, sys._getframe().f_code.co_name)
    21. def test_add():
    22.     # testcase list
    23.     test_add_float16() 
    24.  
    25. if __name__ == '__main__':
    26.     # 当前版本需要调用如下代码
    27.     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:$LD_LIBRARY_PATH
    export PATH=$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.”,此错误不影响结果,请忽略。

    人工智能芯片与自动驾驶
  • 相关阅读:
    Extjs4单选按钮
    下拉框comboxBox本地数据源示例
    处理您的请求时发生异常。此外,对第一个异常执行自定义错误页时发生另一异常。已终止请
    hoj1568
    hoj3434
    poj2924
    poj2909
    hoj3433
    理解Python闭包,这应该是最好的例子
    Spring 学习笔记
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14323379.html
Copyright © 2011-2022 走看看