基於GPU推理的神經網路推理框架

2021-10-05 01:55:59 字數 1528 閱讀 5858

一、簡介

二、什麼是推理框架

通常神經網路演算法從研發到應用有兩大環節,第一環節是設計並訓練模型;第二環節是把模型部署到產品上。推理通常認為是部署到產品後框架所需要實現的運算。乙個模型輸入乙個給定的資料得出乙個資料,類似於推理得到了乙個結果。不過上述說道的第一環節,其實也涉及到推理,只不過訓練的時候推理只是其中的一小部分而已。一般訓練包括推理+資料集+損失函式。能夠執行這個推理過程的軟體封裝可以認為是乙個推理框架。

三、開源的移動端推理框架

四、實現了gpu推理功能的移動端推理框架

上述幾個主流的推理框架除了caffe2移動端推理框架暫時還沒看到實現gpu推理外,其餘框架均已支援gpu前向推理。不過需要說明的是tengine的規劃是使用arm的computelibrary裡面的gpu推理實現,所以略有重疊。

五、各個移動端推理框架gpu程式設計實現方法

六、為什麼gpu能做神經網路加速

一方面是gpu對通用計算支援力度越來越大;另一方面是現階段的模型主要以cnn為主,cnn最終就是卷積運算,而cnn的運算恰好是支援平行計算的演算法,當然還有很多層也是支援並行運算的;此外,gpu可以分擔cpu的負載。

不過,個人覺得有點小遺憾,現階段在gpu端的推理主要以浮點推理為主,cpu的推理則是以定點推理為主。希望能盡快看到gpu用定點推理的框架。

七、gpu推理框架是否有可能被npu替代

個人認為最終是要被替代的,理由有:乙個是gpu主要以浮點運算,功耗極高,有相關資料顯示,浮點單元使用的電晶體數量是定點單元使用的電晶體的6倍之多;另乙個是ai演算法這麼火,早晚是要有專用的asic專用模組的。再來看看soc晶元廠商的做法:

1、英偉達的gpu在桌面端稱霸ai,但是內建的tensor core效能是gpu的好幾倍;

2、高通則是選擇了dsp進行擴充套件,增加一些ai效能,例如hta單元;

3、arm開始發力npu,雖然有點遲,但是依然在2023年年底亮相;

4、華為海思麒麟晶元據說最先使用寒武紀npu核,後來自研了達文西系列的npu;

5、聯發科也自研了apu系列ai加速模組;

6、英特爾更是收購了兩家做ai加速模組的公司;

7、amd現在階段在開發miopen做生態,npu到沒看到太大進展。

八、現階段gpu推理框架還是要繼續研發

現階段,雖然android-nn持續發展,但是個人認為android-nn對模型的保護力度太小,估計很多公司寧願選擇自研或者使用第三框架進行二次開發也不會輕易使用android-nn框架。隨著半導體公司在移動端終端方案引入ai加速模組(npu/apu/hta),各個晶元廠商也提供了一套推理框架,可以說現在的移動端推理框架實在是太多了。如何選用,各種各樣的推理框架,光是評估都得花較多時間。不過話說回來,框架多了,投入的人才也就多了,反而能促進各個框架的進一步優化。至少得保證軟體的相容性直到npu替代gpu與及舊款的缺乏npu的手機機型全部退役。

嵌入式裝置上卷積神經網路推理時memory的優化

以前的神經網路幾乎都是部署在雲端 伺服器上 裝置端採集到資料通過網路傳送給伺服器做inference 推理 結果再通過網路返回給裝置端。如今越來越多的神經網路部署在嵌入式裝置端上,即inference在裝置端上做。嵌入式裝置的特點是算力不強 memory小。可以通過對神經網路做量化來降load和省m...

利用GPU和Caffe訓練神經網路

摘要 本文為利用gpu和caffe訓練神經網路的實戰教程,介紹了根據kaggle的 奧托集團產品分類挑戰賽 的資料進行訓練一種多層前饋網路模型的方法,如何將模型應用於新資料,以及如何將網路圖和訓練權值視覺化。編者按 本文為利用gpu和caffe訓練神經網路的實戰教程,介紹了根據kaggle的 奧托集...

免費使用谷歌GPU訓練神經網路

完全雲端執行 免費使用谷歌gpu訓練神經網路 背景對,你沒有聽錯,高大上的 現在不花錢也能用上了。這是google的一項免費雲端機器學習服務,全名colaboratory。colaboratory 是乙個 google 研究專案,旨在幫助傳播機器學習培訓和研究成果。它是乙個 jupyter 筆記本環...