FPGA“漫步雲上” 構建深度神經網絡
發布時間:2015-10-07 責任編輯:echolady
【導讀】FPGA憑借其出色的性能、低功耗指標,已經成為構建卷積神經網絡不可或缺的部分。再加上新的軟件就更加如虎添翼。本文就由專家為我們講解一下 賽靈思FPGA是如何構建卷積神經網絡的。
人工智能正在經曆一場變革,這要得益於機器學習的快速進步。在機器學習領域,人們正對一類名為“深度學習”suanfachanshengnonghoudexingqu,yinweizheleisuanfajuyouchusededashujujixingneng。zaishenduxuexizhong,jiqikeyizaijianduhuobushoujiandudefangshixiacongdaliangshujuzhongxuexiyixiangrenwu。daguimojiandushixuexiyijingzaituxiangshibieheyuyinshibiedengrenwuzhongqudejudachenggong。
深shen度du學xue習xi技ji術shu使shi用yong大da量liang已yi知zhi數shu據ju找zhao到dao一yi組zu權quan重zhong和he偏pian差cha值zhi,以yi匹pi配pei預yu期qi結jie果guo。這zhe個ge過guo程cheng被bei稱cheng為wei訓xun練lian,並bing會hui產chan生sheng大da型xing模mo式shi。這zhe激ji勵li工gong程cheng師shi傾qing向xiang於yu利li用yong專zhuan用yong硬ying件jian(例如GPU)進行訓練和分類。
隨著數據量的進一步增加,機器學習將轉移到雲。大型機器學習模式實現在雲端的CPU上。盡管GPU對(dui)深(shen)度(du)學(xue)習(xi)算(suan)法(fa)而(er)言(yan)在(zai)性(xing)能(neng)方(fang)麵(mian)是(shi)一(yi)種(zhong)更(geng)好(hao)的(de)選(xuan)擇(ze),但(dan)功(gong)耗(hao)要(yao)求(qiu)之(zhi)高(gao)使(shi)其(qi)隻(zhi)能(neng)用(yong)於(yu)高(gao)性(xing)能(neng)計(ji)算(suan)集(ji)群(qun)。因(yin)此(ci),亟(ji)需(xu)一(yi)種(zhong)能(neng)夠(gou)加(jia)速(su)算(suan)法(fa)又(you)不(bu)會(hui)顯(xian)著(zhu)增(zeng)加(jia)功(gong)耗(hao)的(de)處(chu)理(li)平(ping)台(tai)。在(zai)這(zhe)樣(yang)的(de)背(bei)景(jing)下(xia),FPGA 似乎是一種理想的選擇,其固有特性有助於在低功耗條件下輕鬆啟動眾多並行過程。
讓我們來詳細了解一下如何在賽靈思FPGA上實現卷積神經網絡(CNN)。CNN是一類深度神經網絡,在處理大規模圖像識別任務以及與機器學習類似的其他問題方麵已大獲成功。在當前案例中,針對在FPGA上實現CNN做一個可行性研究,看一下FPGA是否適用於解決大規模機器學習問題。
卷積神經網絡是一種深度神經網絡(DNN),工程師最近開始將該技術用於各種識別任務。圖像識別、語音識別和自然語言處理是CNN比較常見的幾大應用。
什麼是卷積神經網絡?
卷積神經網絡是一種深度神經網絡 (DNN),工程師最近開始將該技術用於各種識別任務。圖像識別、語音識別和自然語言處理是 CNN 比較常見的幾大應用。
2012年,Alex Krishevsky與來自多倫多大學(University of Toronto)的其他研究人員 [1] 提出了一種基於CNN的深度架構,贏得了當年的“Imagenet 大規模視覺識別挑戰”獎。他們的模型與競爭對手以及之前幾年的模型相比在識別性能方麵取得了實質性的提升。自此,AlexNet成為了所有圖像識別任務中的對比基準。
AlexNet有五個卷積層和三個致密層(圖1)。每個卷積層將一組輸入特征圖與一組權值濾波器進行卷積,得到一組輸出特征圖。致密層是完全相連的一層,其中的每個輸出均為所有輸入的函數。
卷積層
AlexNet中的卷積層負責三大任務,如圖2所示:3D卷積;使用校正線性單元(ReLu)實現激活函數;子采樣(最大池化)。3D卷積可用以下公式表示:

所用的激活函數是一個校正線性單元,可執行函數Max(x,0)。激活函數會在網絡的傳遞函數中引入非線性。最大池化是 AlexNet 中使用的子采樣技術。使用該技術,隻需選擇像素局部鄰域最大值傳播到下一層。
定義致密層
AlexNet中的致密層相當於完全連接的層,其中每個輸入節點與每個輸出節點相連。AlexNet中的第一個致密層有9,216個輸入節點。將這個向量乘以權值矩陣,以在4,096個輸出節點中產生輸出。在下一個致密層中,將這個 4,096 節點向量與另一個權值矩陣相乘得到4,096個輸出。最後,使用4,096個輸出通過softmax regression為1,000個類創建概率。
在FPGA上實現CNN
隨著新型高級設計環境的推出,軟件開發人員可以更方便地將其設計移植到賽靈思FPGA中。軟件開發人員可通過從C/C++代碼調用函數來充分利用 FPGA與生俱來的架構優勢。Auviz Systems的庫(例如AuvizDNN)可為用戶提供最佳函數,以便其針對各種應用創建定製CNN。可在賽靈思SD-Accel這樣的設計環境中調用這些函數,以在FPGA上啟動內核。
最簡單的方法是以順序方式實現卷積和向量矩陣運算。考慮到所涉及計算量,因此順序計算會產生較大時延。
順序實現產生很大時遲的主要原因在於CNN所涉及的計算的絕對數量。圖3顯示了AlexNet中每層的計算量和數據傳輸情況,以說明其複雜性。
因此,很有必要采用並行計算。有很多方法可將實現過程並行化。圖6給出了其中一種。在這裏,將11x11的權值矩陣與一個11x11的輸入特征圖並行求卷積,以產生一個輸出值。這個過程涉及121個並行的乘法-累加運算。根據FPGA的可用資源,我們可以並行對512抑或768個值求卷積。
weilejinyibutishengtuntuliang,womenkeyijiangshixianguochengjinxingliushuixianhua。liushuixiannengweixuyaoyigezhouqiyishangcainengwanchengdeyunsuanshixiangenggaodetuntuliang,lirufudianshuchengfahejiafa。tongguoliushuixianchuli,diyigeshuchudeshiyanlveyouzengjia,danmeigezhouqiwomendoukehuodeyigeshuchu。
使用AuvizDNN在FPGA上實現的完整CNN就像從C/C++程序中調用一連串函數。在建立對象和數據容器後,首先通過函數調用來創建每個卷積層,然後創建致密層,最後是創建softmax層,如圖 4 所示。
AuvizDNN是Auviz Systems公司提供的一種函數庫,用於在FPGA上實現CNN。該函數庫提供輕鬆實現CNN所需的所有對象、類和函數。用戶隻需要提供所需的參數來創建不同的層。例如,圖5中的代碼片段顯示了如何創建AlexNet中的第一層。
AuvizDNN提供配置函數,用以創建CNN的任何類型和配置參數。AlexNet僅用於演示說明。CNN 實現內容作為完整比特流載入FPGA並從C/C++程序中調用,這使開發人員無需運行實現軟件即可使用AuvizDNN。
FPGA具有大量的查找表(LUT)、DSP模塊和片上存儲器,因此是實現深度CNN的最佳選擇。在數據中心,單位功耗性能比原始性能更為重要。數據中心需要高性能,但功耗要在數據中心服務器要求限值之內。
像賽靈思Kintex UltraScale 這樣的FPGA器件可提供高於14張圖像/秒/瓦特的性能,使其成為數據中心應用的理想選擇。圖6介紹了使用不同類型的FPGA所能實現的性能。
[page]
一切始於C/C++
卷積神經網絡備受青睞,並大規模部署用於處理圖像識別、自然語言處理等眾多任務。隨著CNN從高性能計算應用(HPC)向數據中心遷移,需要采用高效方法來實現它們。
FPGA可高效實現CNN。FPGA的具有出色的單位功耗性能,因此非常適用於數據中心。
AuvizDNN函數庫可用來在FPGA上實現CNN。AuvizDNN能降低FPGA的使用複雜性,並提供用戶可從其C/C++程序中調用的簡單函數,用以在FPGA上實現加速。使用AuvizDNN時,可在AuvizDNN 庫中調用函數,因此實現FPGA加速與編寫C/C++程序沒有太大區別。

圖 1 – AlexNet是一種圖像識別基準,包含五個卷積層(藍框)和三個致密層(黃)。

圖 2 – AlexNet中的卷積層執行3D卷積、激活和子采樣。

圖 3 – 圖表展示了AlexNet中涉及的計算複雜性和數據傳輸數量。

圖 4 - 實現CNN時的函數調用順序。

圖 5 – 使用AuvizDNN創建AlexNet的L1的代碼片段。

圖 6 – AlexNets的性能因FPGA類型不同而不同。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 從技術研發到規模量產:恩智浦第三代成像雷達平台,賦能下一代自動駕駛!
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




