FPGA“漫步雲上” 構建深度神經網絡
發布時間:2015-10-07 責任編輯:echolady
【導讀】FPGA憑借其出色的性能、低功耗指標,已經成為構建卷積神經網絡不可或缺的部分。再加上新的軟件就更加如虎添翼。本文就由專家為我們講解一下 賽靈思FPGA是如何構建卷積神經網絡的。
人工智能正在經曆一場變革,這要得益於機器學習的快速進步。在機器學習領域,人們正對一類名為“深度學習”算suan法fa產chan生sheng濃nong厚hou的de興xing趣qu,因yin為wei這zhe類lei算suan法fa具ju有you出chu色se的de大da數shu據ju集ji性xing能neng。在zai深shen度du學xue習xi中zhong,機ji器qi可ke以yi在zai監jian督du或huo不bu受shou監jian督du的de方fang式shi下xia從cong大da量liang數shu據ju中zhong學xue習xi一yi項xiang任ren務wu。大da規gui模mo監jian督du式shi學xue習xi已yi經jing在zai圖tu像xiang識shi別bie和he語yu音yin識shi別bie等deng任ren務wu中zhong取qu得de巨ju大da成cheng功gong。
shenduxuexijishushiyongdaliangyizhishujuzhaodaoyizuquanzhonghepianchazhi,yipipeiyuqijieguo。zhegeguochengbeichengweixunlian,binghuichanshengdaxingmoshi。zhejiligongchengshiqingxiangyuliyongzhuanyongyingjian(例如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可編程電源,賦能高端裝備製造
技術文章更多>>
- 三星上演罕見對峙:工會集會討薪,股東隔街抗議
- 摩爾線程實現DeepSeek-V4“Day-0”支持,國產GPU適配再提速
- 築牢安全防線:智能駕駛邁向規模化應用的關鍵挑戰與破局之道
- GPT-Image 2:99%文字準確率,AI生圖告別“鬼畫符”
- 機器人馬拉鬆的勝負手:藏在主板角落裏的“時鍾戰爭”
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
鑒頻器
江蘇商絡
交流電機
腳踏開關
接觸器接線
接近開關
接口IC
介質電容
介質諧振器
金屬膜電阻
晶體濾波器
晶體諧振器
晶體振蕩器
晶閘管
精密電阻
精密工具
景佑能源
聚合物電容
君耀電子
開發工具
開關
開關電源
開關電源電路
開關二極管
開關三極管
科通
可變電容
可調電感
可控矽
空心線圈

