色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何基于OrangePi?AIpro開發AI推理應用

香橙派 ? 2024-06-04 14:23 ? 次閱讀

香橙派AIpro開發板采用昇騰AI技術路線,接口豐富且具有強大的可擴展性,提供8/20TOPS澎湃算力,可廣泛使用于AI邊緣計算、深度視覺學習及視頻流AI分析、視頻圖像分析、自然語言處理等AI領域。通過昇騰CANN軟件棧的AI編程接口,可滿足大多數AI算法原型驗證、推理應用開發的需求。

AscendCL(Ascend Computing Language,昇騰計算語言)是昇騰計算開放編程框架,是對底層昇騰計算服務接口的封裝,提供Device管理、Context管理、Stream管理、內存管理、模型加載與執行、算子加載與執行、媒體數據處理等API,支持C&C++Python編程語言,能夠實現深度學習推理計算、圖形圖像預處理、單算子加速計算等能力。

掌握了AscendCL的編程方法,就意味著可以在香橙派AIpro開發板上充分利用昇騰的算力資源,能夠基于深度學習算法開發圖片分類、目標檢測等一系列深度學習推理計算程序。

01總體流程

使用AscendCL開發推理應用時,開發流程大致分為以下幾步:

1.AscendCL初始化:初始化AscendCL內部資源,為程序運行做準備

2.運行管理資源申請:申請運行時相關資源,例如計算設備

3.媒體數據處理:可實現摳圖、縮放、視頻或圖片的編解碼等

4.模型推理:包括模型加載、執行、卸載

5.運行管理資源釋放:資源使用后及時釋放

6.AscendCL去初始化:與初始化配對使用

在開始之前,我們得先了解下,使用AscendCL時經常會提到的“數據類型的操作接口” ,它是什么?為什么會存在?

在C/C++中,對用戶開放的數據類型通常以Struct結構體方式定義、以聲明變量的方式使用,但這種方式一旦結構體要增加成員參數,用戶的代碼就涉及兼容性問題,不便于維護,因此AscendCL對用戶開放的數據類型,均以接口的方式操作該數據類型,例如,調用某個數據類型的Create接口創建該數據類型、調用Get接口獲取數據類型內參數值、調用Set接口設置數據類型內的參數值、調用Destroy接口銷毀該數據類型,用戶無需關注定義數據類型的結構體長什么樣,這樣即使后續數據類型需擴展,只需增加該數據類型的操作接口即可,也不會引起兼容性問題。

所以,總結下,“數據類型的操作接口”就是創建數據類型、Get/Set數據類型中的參數值、銷毀數據類型的一系列接口,存在的最大好處就是減少兼容性問題。

接下來,進入我們今天的主題,怎么用AscendCL的接口開發網絡模型推理場景下的應用。

02AscendCL初始化與去初始化

使用AscendCL接口開發應用時,必須先初始化AscendCL ,否則可能會導致后續系統內部資源初始化出錯,進而導致其它業務異常。在初始化時,還支持以下跟推理相關的配置項(例如,性能相關的采集信息配置),以json格式的配置文件傳入AscendCL初始化接口。如果當前的默認配置已滿足需求(例如,默認不開啟性能相關的采集信息配置),無需修改,可向AscendCL初始化接口中傳入NULL,或者可將配置文件配置為空json串(即配置文件中只有{})。

有初始化就有去初始化,在確定完成了AscendCL的所有調用之后,或者進程退出之前,需調用AscendCL接口實現AscendCL去初始化。

wKgaomZesqmAaSdZAAECGYU3NU4358.png

03運行管理資源申請與釋放

運行管理資源包括Device、Context、Stream、Event等,此處重點介紹Device、Context、Stream,其基本概念如下圖所示 。

wKgZomZesqqANGIBAAGLHAzjlYs952.png

您需要按順序依次申請如下運行管理資源:Device、Context、Stream,確保可以使用這些資源執行運算、管理任務。所有數據處理都結束后,需要按順序依次釋放運行管理資源:Stream、Context、Device。

在申請運行管理資源時,Context、Stream支持隱式創建和顯式創建兩種申請方式:

wKgaomZesqqAKannAALE-6cX-sE521.pngwKgZomZesquAUwvkAAI_pL5x7f0437.png

04媒體數據處理

如果模型對輸入圖片的寬高要求與用戶提供的源圖不一致,AscendCL提供了媒體數據處理的接口,可實現摳圖、縮放、格式轉換、視頻或圖片的編解碼等,將源圖裁剪成符合模型的要求。后續會展開說明這個功能,本期著重介紹模型推理的部分,以輸入圖片滿足模型的要求為例。

05模型加載

模型推理場景下,必須要有適配昇騰AI處理器的離線模型(*.om文件),我們可以使用ATC(Ascend Tensor Compiler)來構建模型。如果模型推理涉及動態Batch、動態分辨率等特性,需在構建模型增加相關配置。關于如何使用ATC來構建模型,請移步文末“昇騰社區文檔中心”。

有了模型,就可以開始加載了,當前AscendCL支持以下幾種方式加載模型:

·從*.om文件中加載模型數據,由AscendCL管理內存

·從*.om文件中加載模型數據,由用戶自行管理內存

·從內存中加載模型數據,由AscendCL管理內存

·從內存中加載模型數據,由用戶自行管理內存

由用戶自行管理內存時,需關注工作內存、權值內存。工作內存用于存放模型執行過程中的臨時數據,權值內存用于存放權值數據。這個時候,是不是有疑問了,我怎么知道工作內存、權值內存需要多大?不用擔心,AscendCL不僅提供了加載模型的接口,同時也提供了“根據模型文件獲取模型執行時所需的工作內存和權值內存大小”的接口,方便用戶使用 。

wKgZomZesqmATZRXAADtuvQ_SvA095.pngwKgZomZesquAVpbEAAJ3FPB9cbw879.png

06模型執行

在調用AscendCL接口進行模型推理時,模型推理有輸入、輸出數據,輸入、輸出數據需要按照AscendCL規定的數據類型存放。相關數據類型如下:

·使用aclmdlDesc類型的數據描述模型基本信息(例如輸入/輸出的個數、名稱、數據類型、Format、維度信息等)。模型加載成功后,用戶可根據模型的ID,調用該數據類型下的操作接口獲取該模型的描述信息,進而從模型的描述信息中獲取模型輸入/輸出的個數、內存大小、維度信息、Format、數據類型等信息。

·使用aclDataBuffer類型的數據來描述每個輸入/輸出的內存地址、內存大小。調用aclDataBuffer類型下的操作接口獲取內存地址、內存大小等,便于向內存中存放輸入數據、獲取輸出數據。

·使用aclmdlDataset類型的數據描述模型的輸入/輸出數據。模型可能存在多個輸入、多個輸出,調用aclmdlDataset類型的操作接口添加多個aclDataBuffer類型的數據。

wKgaomZesqmAM1dKAAEzPqOnuH0752.pngwKgZomZesquAdZuNAASqLOL-kPE916.png

準備好模型執行所需的輸入和輸出數據類型、且存放好模型執行的輸入數據后,可以執行模型推理了,如果模型的輸入涉及動態Batch、動態分辨率等特性,則在模型執行前,還需要調用AscendCL接口告訴模型本次執行時需要用的Batch數、分辨率等。

當前AscendCL支持同步模型執行、異步模型執行兩種方式,這里說的同步、異步是站在調用者和執行者的角度。

·若調用模型執行的接口后需等待推理完成再返回,則表示模型執行是同步的。當用戶調用同步模型執行接口后,可直接從該接口的輸出參數中獲取模型執行的結果數據,如果需要推理的輸入數據量很大,同步模型執行時,需要等所有數據都處理完成后,才能獲取推理的結果數據。

·若調用模型執行的接口后不等待推理完成完成再返回,則表示模型執行是異步的。當用戶調用異步模型執行接口時,需指定Stream( Stream用于維護一些異步操作的執行順序,確保按照應用程序中的代碼調用順序在Device上執行),另外,還需調用aclrtSynchronizeStream接口阻塞程序運行,直到指定Stream中的所有任務都完成,才可以獲取推理的結果數據。如果需要推理的輸入數據量很大,異步模型執行時,AscendCL提供了Callback機制,觸發回調函數,在指定時間內一旦有推理的結果數據,就獲取出來,達到分批獲取推理結果數據的目的,提高效率。

wKgaomZesquATZUdAANe0C3Dk3M041.png

推理結束后,如果需要獲取并進一步處理推理結果數據,則由用戶自行編碼實現。最后,別忘了,我們還要銷毀aclmdlDataset、aclDataBuffer等數據類型,釋放相關內存,防止內存泄露。

07模型卸載

在模型推理結束后,還需要通過aclmdlUnload接口卸載模型,并銷毀aclmdlDesc類型的模型描述信息、釋放模型運行的工作內存和權值內存。

wKgZomZesqmAZwpZAADuklBa2MU474.png

(以上內容來源于昇騰CANN公眾號)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Orange
    +關注

    關注

    0

    文章

    82

    瀏覽量

    19665
  • AI
    AI
    +關注

    關注

    87

    文章

    30728

    瀏覽量

    268886
  • 開發板
    +關注

    關注

    25

    文章

    5032

    瀏覽量

    97371
  • 邊緣計算
    +關注

    關注

    22

    文章

    3084

    瀏覽量

    48891
收藏 人收藏

    評論

    相關推薦

    AI算法在RZ/V芯片中的移植推理流程

    之前文章已介紹了一些AI算法Demo的應用 ,我們提供從模型訓練到RZ/V系列嵌入式端推理應用的完整流程。整體流程如下圖所示。
    的頭像 發表于 12-20 12:21 ?1058次閱讀
    <b class='flag-5'>AI</b>算法在RZ/V芯片中的移植<b class='flag-5'>推理</b>流程

    基于OrangePi AIpro開發一個電子紙屏時鐘

    OrangePiAIpro是香橙派聯合華為精心打造的一款高算力人工智能開發板。作為業界首款基于昇騰深度研發的AI開發板,它先后榮獲2023昇騰APN最佳產品獎以及PoweredbyAscend甑選
    的頭像 發表于 06-25 17:00 ?1123次閱讀
    基于<b class='flag-5'>OrangePi</b> <b class='flag-5'>AIpro</b><b class='flag-5'>開發</b>一個電子紙屏時鐘

    開發者手機 AI - 目標識別 demo

    功能簡介 該應用是在Openharmony 4.0系統上開發的一個目標識別的AI應用,旨在從上到下打通Openharmony AI子系統,展示Openharmony系統的AI能力,并為
    發表于 04-11 16:14

    【HarmonyOS HiSpark AI Camera】AI圖像開發

    項目名稱:AI圖像開發試用計劃:申請理由本人在AI圖像識別中已有一年的開發經驗,目前正采用瑞芯微的rk1808芯片進行模型的落地部署,但是該芯片沒有任何的攝像頭方案,需要自己選取。目前
    發表于 09-25 10:11

    基于SRAM的方法可以加速AI推理

    基于SRAM的方法可加速AI推理
    發表于 12-30 07:28

    Dllite_micro (輕量級的 AI 推理框架)

    DLLite-Micro 是一個輕量級的 AI 推理框架,可以為 OpenHarmony OS 的輕量設備和小型設備提供深度模型的推理能力DLLite-Micro 向開發者提供清晰、易
    發表于 08-05 11:40

    深度剖析OpenHarmony AI調度管理與推理接口

    1 簡介AI任務管理與統一的推理能力提供了接口的統一標準系統上CPU提供了AI任務調度管理的能力,對AI的能力進行了開放的推理
    發表于 03-25 11:15

    嘉楠勘智K510開發板簡介——高精度AI邊緣推理芯片及應用

    。K510是嘉楠公司推出的第二代AI加速芯片,它采用雙核RISC-V CPU@800Mhz,內置DSP協處理器和強大的AI運算單元KPU,支持 BF16浮點數據格式,可在邊緣端進行高精度推理,是國內少有
    發表于 11-22 15:52

    HarmonyOS:使用MindSpore Lite引擎進行模型推理

    () % divisor) / divisor;// 0--0.9f } } return OH_AI_STATUS_SUCCESS; } 然后進入主要的開發步驟,具括包括模型的準備、讀取、編譯、推理和釋放,具體
    發表于 12-14 11:41

    安晟培半導體通過AI推理應用程序進一步增強 Ampere Altra 的性能

    中國,北京(2021 年 8 月 5 日)——安晟培半導體科技有限公司(Ampere Computing)日前宣布收購AI技術初創公司 OnSpecta,該收購將助力 Ampere 通過 AI 推理應用程序進一步增強 Amper
    的頭像 發表于 08-18 11:38 ?3587次閱讀

    OrangePi_plus2應用開發文檔

    香橙派開發必看!OrangePi_plus2應用開發文檔免費下載。
    發表于 05-11 14:15 ?3次下載

    邊緣AI推理應用設計的發展

      邊緣人工智能市場正在迅速增長,芯片供應商也在這個市場上爭奪一席之地。事實上,到 2020 年代中期,人工智能銷售額迅速增長至數百億美元,其中大部分增長來自邊緣人工智能推理
    的頭像 發表于 07-10 10:03 ?926次閱讀

    香橙派聯合華為發布基于昇騰的Orange Pi AIpro開發板 業界首款基于昇騰AI開發

    香橙派聯合華為發布基于昇騰的Orange Pi AIpro 開發板 業界首款基于昇騰AI開發板 日前香橙派聯合華為發布了基于昇騰的Orange Pi
    的頭像 發表于 12-04 19:04 ?1502次閱讀
    香橙派聯合華為發布基于昇騰的Orange Pi <b class='flag-5'>AIpro</b><b class='flag-5'>開發</b>板 業界首款基于昇騰<b class='flag-5'>AI</b><b class='flag-5'>開發</b>板

    ONNX Runtime支持龍架構,AI推理生態再添新翼

    近日,備受矚目的AI推理框架開源社區ONNX Runtime宣布推出支持龍架構的新版本1.17.0,這一里程碑式的更新意味著龍芯平臺上的AI推理應
    的頭像 發表于 03-27 10:58 ?708次閱讀

    OrangePi AIpro應用:機械臂應用開發指南

    2024世界人工智能大會上,香橙派攜OrangePiAIpro20T在世博展覽館H1-A301展區亮相,給大家帶來AI+互動的沉浸式體驗。其中,搭載OrangePiAIpro開發板的智能機械臂吸引了
    的頭像 發表于 08-19 16:42 ?580次閱讀
    <b class='flag-5'>OrangePi</b> <b class='flag-5'>AIpro</b>應用:機械臂應用<b class='flag-5'>開發</b>指南
    主站蜘蛛池模板: 国产亚洲日韩欧美视频| 在教室伦流澡到高潮HNP视频 | 97免费观看视频| 亚洲最大在线视频| 亚洲免费精品视频| 亚洲精品午夜VA久久成人| 性生大片免费看| 亚洲国产中文在线视频| 亚州天堂在线视频av| 视频区 国产 欧美 日韩| 三叶草未满十八岁| 色欲午夜无码久久久久久| 日本一本2017国产| 日本精品无码久久久久APP| 人妖和美女玩| 射90黑b丝女| 香艳69xxxxx有声小说| 胸大的姑娘中文字幕视频| 亚洲VA天堂VA欧美VA在线| 亚洲欧美中文日韩v在线| 亚洲欧美日韩另类精品一区二区三区 | 99er久久国产精品在线| 99国产视频| 憋尿调教绝望之岛| 国产成人亚洲综合无| 国产日韩欧美综合久久| 国产在线观看免费观看| 九九九精品国产在线| 老男人粗大猛| 欧美在线看费视频在线| 色欲人妻AAAAAAA无码| 小柔的性放荡羞辱日记| 一个人免费观看在线视频播放| 伊人久综合| a免费在线观看视频| 国产A级毛片久久久久久久| 国产色婷亚洲99精品AV在线| 久久成人亚洲| 欧美日韩一区在线观看| 四虎永久免费网址| 伊人国产在线播放|