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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于FPGA的CNN算法移植(一)概述

發(fā)布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于FPGA的CNN算法移植(一)概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

更多精彩內(nèi)容,請微信搜索“FPGAer俱樂部”關(guān)注我們

做了半年的CNN算法移植,有時候需要回避一些東西,所以寫的東西不能太多。簡單提一下自己的總結(jié),既是筆記,又是與網(wǎng)友們交流討論。

? ? ? ? CNN興起,深圳這個躁動的城市很多人就想趁著這個機會撈一筆風(fēng)投。于是各種基于CNN的在GPU上的demo出現(xiàn)后立馬就成立公司,招FPGA工程師或者ARM 等嵌入式工程師,希望通過他們進(jìn)行產(chǎn)品落地。畢竟GPU功耗高,散熱不好,價格不便宜。于是有些公司招聘FPGA工程師,就問:你會做算法優(yōu)化嗎?

? ? ? ? ?基于FPGA的CNN算法移植誤區(qū)一:FPGA工程師做算法優(yōu)化。

? ? ? ? 嗯,已經(jīng)很不錯了,知道將CNN移植到嵌入式平臺需要做優(yōu)化。可是百度一下CNN優(yōu)化策略,那些基于tensorflow,caffe的東西是FPGA干的活兒嗎(為啥不是算法工程師要懂FPGA呢,為難一下算法工程師)? ?當(dāng)然有人說作為FPGA工程師對算法一無所知沒有核心競爭力,我想說CNN的算法壓縮是在它原有的開發(fā)平臺上進(jìn)行的,不是在FPGA上進(jìn)行的,愿意學(xué)CNN的算法開發(fā)平臺的同學(xué)當(dāng)然好,只是難度很大。還有一點,作為FPGA工程師目前形勢很嚴(yán)峻,我們自身有太多東西要學(xué),因為現(xiàn)在FPGA都往SOC發(fā)展了,xilinx推出的一大堆工具等待著我們?nèi)ナ煜ぁ_€有一種思維那就是覺得xilinx很可能也走不遠(yuǎn),所以趁早轉(zhuǎn)行了的。

? ? ? ??基于FPGA的CNN算法移植誤區(qū)二:FPGA工程師先做demo再慢慢優(yōu)化。

? ? ? ? 有些公司稍微好點,最后明白了算法優(yōu)化是算法工程師干的事情。后面要求FPGA工程師按照目前這個樣子做一款Demo出來,性能不好沒關(guān)系,后面再慢慢優(yōu)化。姑且不論HLS ,SDsoc的實現(xiàn)方法對于不同的算法差異有多大,因為這兩個工具我才剛玩,可是基于HDL設(shè)計的硬件架構(gòu),算法改動一點點可能導(dǎo)致整個FPGA項目推倒重來。所以對于FPGA的工程,要不就是目前這個樣子出結(jié)果。要不就是推倒重來。—— 或許HLS,SDsoc不是,你可以不斷的選擇優(yōu)化策略。

? ? ? ???基于FPGA的CNN算法移植誤區(qū)三:性能不好怪FPGA工程師硬件架構(gòu)不好?

? ? ? ? 這個我只能說或許,可是一般的FPGA工程師能去定制架構(gòu)水平也不會太差,不至于胡拼亂湊一個工程出來,特別對于龐大的CNN想胡拼亂湊都難。你必須思路清晰,結(jié)構(gòu)清晰。還有一個主要的,對于CNN算法移植FPGA硬件上真的開不出花兒,這個觀點知乎上也有大牛提到了。所以深鑒公開DPU 架構(gòu),google公開TPU 架構(gòu),為何?因為硬件就是這么玩的,沒啥新意。

? ? ? ? ?

? ? ? ? ?這個是深鑒科技的 笛卡爾架構(gòu)。對于FPGA工程師是不是很熟悉,就是典型的zynq架構(gòu),誰都會這么去設(shè)計。深鑒還有一款 亞里士多德 架構(gòu),把AXI4換成更高速的,外面再加一個處理器,和英偉達(dá)的GPU 架構(gòu)類似。總結(jié)起來就是input buffer,處理,outputbuffer。只是inputbuffer和outputbuffer的數(shù)據(jù)怎么來怎么去,處理的時候有多少資源可以充分利用。例如google推出TPU的“脈動”結(jié)構(gòu),FPGA工程師一板子甩他臉上:你脈動個XX,不就是我們經(jīng)常掛嘴邊的流水線處理嘛。

? ? ? ??基于FPGA的CNN算法移植誤區(qū)四:算法實現(xiàn)了,剩下FPGA去實現(xiàn)就行

? ? ? ? 唉,真的好傷心,為啥這個鍋要FPGA工程師背。前面說了,做算法移植是要優(yōu)化后才能移植,不能直接移植,除非很小的算法(CNN 有小的嗎?)可是算法工程師不懂硬件啊(是啊,為何要求我們硬件工程師懂算法呢),他優(yōu)化的方法不一定正確,還有就是這里優(yōu)化了,那里問題又出來了。所以算法demo出來后要不斷的溝通如何去優(yōu)化,FPGA工程師不斷的去評估性能得出移植瓶頸反饋給算法工程師。如此反反復(fù)復(fù)。 ? ? ? ?

?

? ? ? ? 誤會解除了,與算法工程師溝通好了那么就要做FPGA架構(gòu)了(我這個是純HDL的方式)。查主芯片有多少資源可以用,可以并行加速多少路,如何實現(xiàn)數(shù)據(jù)交互。這些定制下來了你就可以列一個表格,去算你的項目latency了,這就是你的性能。性能達(dá)不到就去看看DSP 是不是充分利用了,盡量不要閑置。性能還達(dá)不到,就要反饋給算法算法移植瓶頸了,對于CNN通常是中間結(jié)果太大,就是緩存太大。FPGA工程師可以并行N路進(jìn)行加速,可是DDR送數(shù)速率只夠N/3路并行計算 —— 對,這就是典型的CNN算法移植瓶頸。

? ? ? ? 補充一點:做FPGA架構(gòu)當(dāng)然要去看軟件的架構(gòu)了。很多純算法工程師不懂硬件,看下表。他們由下表就認(rèn)為選擇SqueezeNet網(wǎng)絡(luò)作為項目算法網(wǎng)絡(luò)結(jié)構(gòu),因為運算量MACC最小,參數(shù)也小,精度過的去。可是這個SqueezeNet目前沒有找到一個效果不錯的項目。這個表格是一個碩士他在做分類網(wǎng)絡(luò)的時候給出的,他不懂FPGA,最后他選擇了SqueezeNet,并且把MACC從8.6億次優(yōu)化到了5.3億次。可是最終他的項目性能是 0.51幀(best)的速度

? ? ? ?

? ? ? ? ?這里給大家看兩個案例,看MACC ,案例2的MACC巨大,可是在7045上卻可以實現(xiàn)17.53幀。因為SqueezeNet和YOLO網(wǎng)絡(luò)的相差太大了,稱之為 ?架構(gòu)的魅力 (記住我說的是軟件)

? ? ? ? 圖1 是YOLO的軟件算法架構(gòu),很簡潔。HLS 也喜歡

? ? ? ?圖 2 是SqueezeNet 結(jié)構(gòu)

? ? ? ??? ? ? ? ? ?

?? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖 1 ??

?

?

? ?

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 2?

?

?

??????? 個人水平有限,以上言論拋磚引玉,有什么總結(jié)不當(dāng)?shù)牡胤綒g迎及時指出來一起討論。


本文轉(zhuǎn)載自http://www.cnblogs.com/sepeng/p/8572121.html,如涉及侵權(quán),請私信小編刪除。

============華 麗 的 分 割 線============


想加入我們FPGA學(xué)習(xí)交流群嗎?可以長按或掃描以下二維碼,審核通過后我們邀請您加入

這些微信群旨在打造一個提供給FPGA工程開發(fā)人員及興趣愛好者(統(tǒng)稱“FPGAer”)進(jìn)行技術(shù)交流、答疑解惑和學(xué)習(xí)的平臺。而且我們也將會通過網(wǎng)絡(luò)舉辦FPGA技術(shù)講座,分享相關(guān)研究文獻(xiàn)?



了解更多FPGA知識可以長按或掃描以下二維碼關(guān)注FPGAer俱樂部




總結(jié)

以上是生活随笔為你收集整理的基于FPGA的CNN算法移植(一)概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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