日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Ascend Pytorch算子功能验证

發(fā)布時(shí)間:2023/11/28 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ascend Pytorch算子功能验证 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Ascend Pytorch算子功能驗(yàn)證
編寫測試用例
以add算子為例,測試腳本文件命名為:add_testcase.py。以下示例僅為一個簡單的用例實(shí)現(xiàn),具體算子的實(shí)現(xiàn),需要根據(jù)算子定義進(jìn)行完整的覆蓋才能保證功能的基本正確。

  1. 引入依賴庫。
  2. import torch
  3. import numpy as np
  4. import sys
  5. import copy
    from util_test import compare_res
    說明:
    其中,util_test為測試框架提供的文件,詳細(xì)實(shí)現(xiàn)參考 附錄->測試代碼樣例-> util_test.py,使用時(shí)應(yīng)與testcase.py文件放在同一目錄。
  6. 構(gòu)造輸入數(shù)據(jù)。
  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. 調(diào)用CPU及NPU完成計(jì)算,并比較二者的計(jì)算結(jié)果。
  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. 調(diào)度測試用例
  20. def test_add():
  21. # testcase list
    
  22. test_add_float16() 
    
  23. if name == ‘main’:
  24. # 當(dāng)前版本需要調(diào)用如下代碼
    
  25. torch.npu.set_device("npu:0")      //注意 "npu:x"中的x的填寫參見說明
    
    test_add()
    說明:
    set_device(“npu:0”) 這個接口的作用是指定用例運(yùn)行的NPU設(shè)備ID。
    設(shè)置運(yùn)行環(huán)境變量
    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
說明:
上述環(huán)境變量實(shí)際路徑/usr/local/Ascend/需要根據(jù)開發(fā)套件等的安裝路徑進(jìn)行相應(yīng)的調(diào)整。普通用戶進(jìn)行調(diào)試時(shí),將“自定義TBE算子”安裝至個人工作目錄(當(dāng)前版本要求與Ascend-opp-.run的安裝目錄一致,如Ascend-opp-.run安裝在"/home/username/.local/Ascend"),則需修改上述環(huán)境變量中的內(nèi)容:
export ASCEND_OPP_PATH=~/.local/Ascend/opp
export CUSTOM_OP_LIB_PATH=~/.local/Ascend/opp/framework/custom/tensorflow
執(zhí)行測試用例腳本
進(jìn)入add_testcase.py所在的目錄,執(zhí)行:
python3.7.5 add_testcase.py
運(yùn)行結(jié)束,可能會提示一個錯誤“THPModule_npu_shutdown failed.”,此錯誤不影響結(jié)果,請忽略。

總結(jié)

以上是生活随笔為你收集整理的Ascend Pytorch算子功能验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。