基于FPGA的CNN加速項目案例解析_第1頁
基于FPGA的CNN加速項目案例解析_第2頁
基于FPGA的CNN加速項目案例解析_第3頁
基于FPGA的CNN加速項目案例解析_第4頁
基于FPGA的CNN加速項目案例解析_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于FPGA的CNN加速項目案例解析人工智能(AI)長期以來一直是科幻作家和學者的主題。將人腦的復雜性復制到計算機中的挑戰(zhàn)催生了新一代的科學家、數學家和計算機算法開發(fā)人員。持續(xù)的研究現在已經讓位于人工智能的使用,通常被稱為深度學習或機器學習,這些應用正越來越成為我們世界的一部分。雖然基本概念已經存在很長時間,但商業(yè)現實從未完全實現。近年來,數據的生成速度飛速發(fā)展,開發(fā)人員不得不長時間思考如何編寫算法來從中提取有價值的數據和統(tǒng)計數據。還,另一個關鍵因素是高度可擴展級別的計算資源的可用性,這是云自愿提供的。例如,您口袋里的智能手機可能會使用Google的Now(“OKGoogle”)或Apple的Siri語音命令應用程序,這些應用程序使用深度學習算法(稱為(人工)神經網絡)的強大功能來實現語音識別和學習能力。然而,除了與手機通話的樂趣和便利之外,還有大量工業(yè)、汽車和商業(yè)應用程序現在受益于深度學習神經網絡的強大功能。稱為(人工)神經網絡,以實現語音識別和學習能力。然而,除了與手機通話的樂趣和便利之外,還有大量工業(yè)、汽車和商業(yè)應用程序現在受益于深度學習神經網絡的強大功能。稱為(人工)神經網絡,以實現語音識別和學習能力。然而,除了與手機通話的樂趣和便利之外,還有大量工業(yè)、汽車和商業(yè)應用程序現在受益于深度學習神經網絡的強大功能。卷積神經網絡在查看其中一些應用程序之前,讓我們先研究一下神經網絡的工作原理以及它需要哪些資源。當我們一般談論神經網絡時,我們應該更準確地將它們描述為人工神經網絡。作為軟件算法實現,它們基于人類和動物的生物神經網絡——中樞神經系統(tǒng)。多年來,人們構想了幾種不同類型的神經網絡架構,其中卷積神經網絡(CNN)得到了最廣泛的采用。造成這種情況的主要原因之一是他們的架構方法使它們非常適合使用基于GPU和FPGA設備的硬件加速器提供的并行化技術。CNN受歡迎的另一個原因是它們適合處理具有大量空間連續(xù)性的數據,其中圖像處理應用程序非常適合。空間連續(xù)性是指特定位置附近的像素共享相似的強度和顏色屬性。CNN由不同的層構成,每個層都有特定的目的,并且在它們的操作中使用了兩個不同的階段。第一部分是指令或訓練階段,它允許處理算法了解它擁有哪些數據以及每條數據之間的關系或上下文。CNN是作為結構化和非結構化數據的學習框架創(chuàng)建的,計算機創(chuàng)建的神經元形成連接和中斷網絡。模式匹配是CNN背后的一個關鍵概念,

圖1:CNN的層方法(來源:Wikipedia–creditAphex341)。更多關于CNN工作原理的信息可以在Cadence1a的一篇論文中找到,以及一個有用的視頻1b,該視頻錄制在最近的IEEE協(xié)會關于計算新前沿的會議上。當Microsoft研究團隊1c贏得ImageNet計算機視覺挑戰(zhàn)時,CNN對圖像處理應用程序的有用性的證據獲得了進一步的尊重。CNN的第二階段是執(zhí)行階段。由不同的層節(jié)點組成,關于什么可能的圖像可能變得越來越抽象的命題。卷積層從圖像源中提取低級特征,以檢測圖像中的線條或邊緣等特征。其他層,稱為池化層,用于通過平均或“池化”圖像特定區(qū)域的共同特征來減少變化。然后可以將其傳遞給進一步的卷積和池化層。CNN層的數量與圖像識別的準確性相關,盡管這增加了系統(tǒng)性能需求。如果內存帶寬可用,這些層可以以并行方式運行,CNN中計算最密集的部分是卷積層。開發(fā)人員面臨的挑戰(zhàn)是他們如何提供足夠高的計算資源來運行CNN,以確定在應用程序的時間限制內所需的不同圖像分類的數量。例如,工業(yè)自動化應用程序可能會使用計算機視覺來識別需要將零件傳送到傳送帶上的下一個階段。在神經網絡識別出零件之前暫停該過程會破壞流程并減慢生產速度。實現CNN加速部分CNN正在進行的“強化”學習和執(zhí)行階段將顯著加速這項主要是數學任務。憑借其高內存帶寬和計算能力,GPU和FPGA是這項工作的潛在候選者。具有任何馮諾依曼架構所表現出的緩存瓶頸的傳統(tǒng)微處理器可以運行算法,但將層抽象任務移交給硬件加速器。雖然GPU和FPGA都提供了顯著的并行處理能力,但GPU固定架構的性質意味著FPGA具有靈活且可動態(tài)重新配置的架構更適合CNN加速任務。使用非常精細的方法,本質上是在硬件中實現CNN算法,與GPU的軟件衍生算法方法相比,FPGA架構有助于將延遲保持在絕對最小值,并且更具確定性。FPGA的另一個優(yōu)點是能夠在設備結構中“硬化”功能塊,例如DSP。這種方法進一步加強了網絡的確定性。就資源使用而言,FPGA非常高效,因此每個CNN層都可以在FPGA結構內構建,并且它自己的內存靠近它。

圖2:圖像處理CNN概述(來源:Cadence2)。圖2突出顯示了為工業(yè)圖像處理應用程序設計的CNN的關鍵組件塊,中間的兩個塊代表CNN的核心。使用C語言的OpenCL2a并行編程擴展來補充基于FPGA的CNN加速應用程序的開發(fā)。適用于卷積神經網絡的FPGA器件的一個示例是英特爾可編程解決方案集團(PSG)的Arria10系列器件,其正式名稱為Altera。為了幫助開發(fā)人員開展基于FPGA的CNN加速項目,英特爾PSG提供了CNN參考設計。這使用OpenCL內核來實現每個CNN層。數據使用通道和管道從一層傳遞到下一層,該功能允許數據在OpenCL內核之間傳遞,而無需消耗外部內存帶寬。卷積層是使用FPGA中的DSP模塊和邏輯實現的。硬化塊包括浮點功能,可進一步提高設備吞吐量,而不必影響可用內存帶寬。圖3所示的框圖突出顯示了可以使用FPGA作為加速處理單元的示例圖像處理和分類系統(tǒng)。

圖3:使用FPGA進行加速的圖像分類系統(tǒng)框圖(來源:FPGA上的深度學習,過去、現在和未來3)。英特爾PSG還在其網站4上提供了許多有關將FPGA卷積神經網絡用于工業(yè)、醫(yī)療和汽車應用的主題的有用文檔和視頻。為深度學習應用程序選擇框架是關鍵的第一步。為了幫助開發(fā)人員,有越來越多的工具,例如OpenANN(openann.github.io),這是一個用于人工神經網絡的開源庫,以及諸如和E等信息豐富的社區(qū)站點。包括對使用OpenCL的支持的流行深度學習設計框架包括Caffe(caffe.berkeleyvision.org),基于C++和基于Lua的Torch。DeepCL是另一個完全支持OpenCL的框架,盡管它尚未獲得前兩者的用戶群。結論工業(yè)市場熱衷于利用深度學習神經網絡可以為許多制造和自動化控制應用帶來的特性。由于德國的工業(yè)4.0等舉措以及更廣泛的工業(yè)物聯(lián)網概念,這一重點得到了進一步的推動。與高質量的視覺相機、CPU和FPGA解決方案以及相關控制相結合,卷積神經網絡可用于自動執(zhí)行大量制造過程檢查,從而提高產品質量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論