昇騰Mindstudio官方樣例源碼解讀分享---Resnet50推理

      網友投稿 1058 2022-05-30

      作為初學者,最近剛接觸Ascend200DK,按照官方的指導一步步搭建起了開發+運行環境,指導可以參考下面這個鏈接https://gitee.com/lovingascend/quick_start/blob/master/Atlas200DK_separate_MD/environment.md

      運行的第一個樣例就是Mindstudio自帶的Resnet50網絡,對昇騰AI處理器的強大性能尤為印象深刻。個人習慣會去研究一下源碼,這里分享下心得體會,能力有限,水平一般,如果哪里寫的不對的,還請指正。

      對于Mindstudio開發套件,個人理解作用是提供一個簡單方便的界面,讓代碼開發和調試更加順暢,

      Mindstudio安裝在開發環境Ubuntu18.04系統,而我們最終編譯出來的二進制文件要跑在運行環境的CentOS上面,如果沒有Mindstudio的話,我們要不就是直接在運行環境上編譯,要不就得在開發環境上搭建交叉編譯環境,而使用Mindstudio在編譯的時候,直接就可以選定目標版本和ARM or X86架構,節省了不少時間。然后推理的依賴文件、輸出結果,Mindstudio工具可以進行方便的內部傳輸,不用手工再用scp或者sftp之類的操作互傳。另外還有profiling工具進行性能調優等功能強大的組件,暫時沒用到,后面再深入體會。

      Resnet50樣例代碼的結構如下:

      1、預處理

      script/transferPic.py 這里是圖像的預處理,將jpg圖片轉成bin

      om模型在推理時,需要輸入的是二進制的bin文件,所以這里要提前進行轉換,查看這個python的源碼:

      這里使用了Pillow庫將圖片resize之后,圖像排列由rgb轉為bgr,然后減均值,最后保存成bin文件。

      2、src/main.cpp

      主函數,程序入口:

      實例化類SampleProcess,這個類里面實現了acl的初始化和模型的推理,還有后處理即羅列top1~top5類別的置信度。

      3、src/sampleprocess.cpp

      Result SampleProcess::InitResource()

      此處代碼實現acl的初始化、setDevice、創建Context和stream、設置runMode。

      關于runMode,可以理解為我們最終的二進制文件需要在運行環境上執行時,是直接在Device側運行,還是在Host側運行,相應的一些acl接口應該存在差異,所以這里要區分一下。

      Result SampleProcess::Process()

      這里就是加載om模型和傳入輸入圖片bin文件,然后進行推理,后處理得到top1~top5分類置信度。

      processModel.Execute(),這里就是模型執行推理的地方,如果想知道單純的芯片推理性能,可以在這個語句前后打點,然后計算耗時是多少ms得到。

      4、src/model_process.cpp

      這個cpp里面包含的都是模型的加載、卸載、輸入和輸出的初始化操作,包括內存分配與釋放。

      這里通過aclrtMalloc接口申請內存的時候,注意紅框的地方,都是大頁內存優先,應該是性能更優。

      昇騰Mindstudio官方樣例源碼解讀分享---Resnet50推理

      5、src/utils.cpp

      這個cpp里面放的是讀取bin文件的函數和獲取device側buffer,感覺好像沒用到,不太清楚干啥用的。

      6、結語

      acl接口的文檔可以參考下面這個鏈接:

      https://support.huaweicloud.com/adevg-A200dk_3000/atlasdevelpment_01_0014.html

      個人感覺ACL這一套接口很強大,可以很方便的調用硬件底層能力,這個文檔里面還有很多應用開發樣例可以參考,非常nice。

      更多使用昇騰AI芯片推理&訓練案例

      Ascend官方Modelzoo:

      https://gitee.com/ascend/modelzoo

      昇騰

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:通過 Windows 10 設備連接網絡攝像頭
      下一篇:AutoUpgrade升級至19C non-cdb
      相關文章
      亚洲色中文字幕无码AV| 日韩色视频一区二区三区亚洲| 国产亚洲精品2021自在线| 亚洲精品无码专区在线播放| 久久亚洲精品国产精品婷婷 | 亚洲第一成年人网站| 久久精品国产亚洲av麻豆小说 | 国产成人人综合亚洲欧美丁香花| 亚洲日韩精品无码专区加勒比| 久久亚洲最大成人网4438| 亚洲an日韩专区在线| 国产精品高清视亚洲精品| 国产精品亚洲片夜色在线| 亚洲午夜无码久久久久软件| 亚洲欧洲免费无码| 亚洲成AV人片高潮喷水| 老司机亚洲精品影院在线观看 | 国产亚洲福利精品一区二区| 亚洲国产精品13p| 国产精品亚洲高清一区二区| 亚洲中文字幕久久精品无码喷水| 亚洲中文字幕久久精品无码喷水| 日本亚洲成高清一区二区三区| 国精无码欧精品亚洲一区| 久久噜噜噜久久亚洲va久| 久久久久亚洲AV成人片| 亚洲成人高清在线观看| 亚洲综合一区国产精品| 亚洲av无码一区二区三区人妖| 国产亚洲精品国产福利在线观看| 成人亚洲综合天堂| 亚洲人成人网站在线观看| 日本亚洲成高清一区二区三区 | 久久青青草原亚洲AV无码麻豆| 97se亚洲综合在线| 亚洲jjzzjjzz在线观看| 亚洲人AV在线无码影院观看| 在线精品自拍亚洲第一区| 久久久久亚洲精品天堂久久久久久 | 国产91在线|亚洲| 国产精品亚洲综合|