CNN-卷積神經網絡在FPGA上的實現一_第1頁
CNN-卷積神經網絡在FPGA上的實現一_第2頁
CNN-卷積神經網絡在FPGA上的實現一_第3頁
CNN-卷積神經網絡在FPGA上的實現一_第4頁
CNN-卷積神經網絡在FPGA上的實現一_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

CNN-卷積神經網絡在FPGA上的實現(一)卷積神經網絡(CNN)E被證明在復雜的圖像識別問題上非常有效。本文將討論如何使用Nallatech公司基于AlteraOpenCL軟件開發套件編程的FPGA加速產品來加速CNN卷積神經網絡的計算。可以通過調整計算精度來優化圖像分類性能。降低計算精度可使FPGA加速器每秒處理越來越多的圖像。Caffe深度學習框架Caffe是一個深度學習框架,具有表達力強、速度快和模塊化的思想,由伯克利視覺學習中4(BVLC)和社區貢獻者開發。網站/Caffe框架使用XML接口來描述特定CNN卷積神經網絡所需的不同處理層。通過實施層的不同組合,用戶能夠根據其給定的需求快速創建新的網絡拓撲。Caffe框架最常用的處理層主要有:卷積層:卷積層將輸入圖像與一組可學習的濾波器進行卷積,每個濾波器在輸出中產生一個特征圖池化層:池化最大可以將輸入圖像分割成一組非重疊的矩形,并且對于每個這樣的子區域,輸出最大值線性修正(ReLU)層:給定輸入值x,如果x>0,則ReLU層將計算輸出為x,如果x<=0則計算輸出為negative_slope*x。IP/FC層:將圖像視為單個向量,每個點對新輸出向量的每個點有貢獻通過將這4層移植到FPGA,絕大多數正向處理網絡可以使用Caffe框架在FPGA上實現。要訪問加速卡上的FPGA版本的代碼,用戶只需要更改CaffeXML網絡描述文件中的CNN-卷積神經網絡層的描述,這等同于修改FPGA代碼版本。

Nxbinarycla弱IHuUmconvolution?poolI明layersNxbinarycla弱IHuUmconvolution?poolI明layersfullyconnectedla^er-scaiivulutldrli*ngnlineftritymaspooMig圖7:典型的CNN-卷積神經網絡的示例圖ImageNet卷積神經網絡圖2:ImageNetCNN-卷積神經網絡ImageNet是一個備受推薦且使用最為廣泛的CNN卷積神經網絡,具有免費的訓練數據集和基準。本文討論了針對ImageNetCNN-卷積神經網絡的FPGA實現,當然這里使用的方法同樣適用于其他網絡。圖2顯示了ImageNetCNN-卷積神經網絡所需的不同網絡層。有5個卷積和3個FC層。這些層占用該網絡處理時間的99%以上。對于不同的卷積層,有3種不同的濾波器尺寸,分別為11X11,5X5和3X3。因為每個層的計算時間根據所應用的濾波器的數量和輸入圖像的大小而不同,所以為不同的卷積層優化不同的層將效率是比較低的。為了避免這種低效率,使用最小的濾波器(3X3)作為較大卷積塊的基礎。由于它們處理的輸入和輸出特征的數量,3X3卷積層是計算量最大的

較大的濾波器尺寸可以用較小的3X3濾波器的多次表達。這雖然會降低內核處理的效率,但允許不同層之間的邏輯重用。這種方法的成本如表1所示。ConvolutionSizeEfficiency%表7:卷積核效率3X3卷積核也可以被FC層使用。ImageNetLayerMultiplyAdds(M)Convolution(11x11)130Convolu:ion(2)322Convolution(3x3)1149Convolution(3x3)2112Corvoluticr'i(3x3)375Inri^tProduc.t037InnerProduct117InnerProduc.t?4表2:使用3X3濾鏡時的/mageNef層計算要求FPGA邏輯器件FPGA器件具有兩種處理資源類型,即DSP和ALU邏輯。DSP邏輯是針對大型(18X18位)浮點乘法或乘法運算器優化的專用邏輯。這比使用ALU邏輯更有效率,因為這樣的乘法資源消耗很大。鑒于DSP操作中的乘法通用性,FPGA供應商為此提供了專門的邏輯。Altera做的更進一步,允許重新配置DSP邏輯來執行浮點運算。為了提高CNN卷積神經網絡處理的性能有必要增加在FPGA中實現的乘法次數。另一種方法是降低位精度。Bit精度大多數CNN實現使用浮點精度來進行不同的層計算。對于CPU或GPU實現這不是問題,因為浮點IP是芯片架構的固定部分。對于FPGA來說,邏輯元素不是固定的。Altera的Arria10器件嵌入了可以用于固定點乘法的浮動DSP模塊。實際上,每個DSP組件可以用于兩個獨立的18X19位乘法。通過使用18位固定邏輯執行卷積,與單精度浮點相比,可用運算符的數量加倍。18, 44,**2&□.18, 44,**2&□.圖4:Arria10定點DSP配置根據CNN卷積神經網絡的應用性能要求,可以進一步降低位精度。如果乘法的位寬可以減少到10位或更少,則可以僅使用FPGAALU有效地執行乘法。與使用FPGADSP邏輯相比,這樣可以增加可乘數。OpenCL庫函數Altera提供了將用戶定義和優化的IP組件納入其編譯器工具流程的能力。這允許使用標準庫符號創建和包含這樣的優化功能。庫組件允許有經驗的HDL程序員以匯編語言程序員創建的方式創建高效的實現,并且包含x86優化的函數。對于ImageNet使用的CNN-卷積神經網絡層,簡單的定點實現可以采用10位系數來獲得的最小減少量,這相對于單精度浮點運算保持小于1%的誤差。因此創建10位3X3卷積的優化庫,受FPGA資源的限制,這個庫被實現(復制)多次。ResourceGX1150LogicLomcnts(K)1JS0ALM427,200Register二708,800VarabioPrecisionDSPBock151818x19MuMplia3036圖5:Arria10GX1150資源Arria10最大的可用設備是GX1150.該設備具有約512個卷積塊的資源以及應用程序控制邏輯。Nallatech510T硬件平臺卷積內核的并行運算增加的數量加大了對輸入帶寬要求。為了避免全局內存成為瓶頸,一次計算多個圖像時候可以為每個不同的圖像重新使用卷積濾鏡權重。這對于FC層是特別重要的,其中對于每個點對點連接需要新的一組濾波器權重,其中從全局存儲器檢索權重的瓶頸是瓶頸。幸運的是,卷積層重用了特征圖像中每個點的權重數據。最小卷積特征圖像為13X13像素,因此卷積權重僅在最壞情況下每169次迭代更新一次。圖6:Nallatech510T加速器選擇硬件平臺Nallatech510T實現CNN-卷積神經網絡,Nallatech510T是與大多數服務器平臺的GPU相兼容的FPGA加速卡,旨在兼容英特爾至強Phi或GPGPU加速器。Nallatech510T具有兩個AlteraArria10GX1150FPGA,具有60GBytes/sec的外部存儲器帶寬用于加載權重、輸入和輸出數據。510T的典型功耗僅為150W,不到高端GPU功耗的一半。使用10位系數數據進行FPGA實現的另一個好處是可以從全局存儲器讀取的重量數據量與浮點數據的三倍。使用Nallatech510T加速器,可以處理16個并行圖像,每個圖像具有并行處理的64個內核。這是通過并行生成8個輸出特征和8個像素來實現的。總共提供了1024個并行的3X3內核。在我們的實現中,我們為1個圖像創建了一個OpenCL內核系統,并在FPGA資源限制的情況下復制了這個多次。卷積權重對于每個圖像重新使用,因此當縮放到多個并行圖像時,對全局內存要求的增加最小。結果分析

通過應用上述FPGA系統,每個圖像需要9毫秒才能被FPGA分類。使用510T處理的12個并行圖像,平均每個圖像的時間為748微秒。這是每天超過1.15億張圖片。圖7:每秒分類的圖像。Na///afech510T對NvidiaK401功耗分析與Nallatech510T的150W相比,NvidiaK40GPGPU的標稱功耗為235W。這使得FPGA實現與GPU相比具有顯著的性能/功耗優勢。圖8:相對圖像功率Nallatech510T對NvidiaK4011CaffeimplementationofImageNet.結論及應用FPGA架構的獨特靈活性允許將邏輯精度調整到特定網絡設計所需的最小值。通過限制CNN卷積神經網絡計算的比特精度,可以顯著增加每秒可處理的圖像數量,從而提高性能并降低功耗。FPGA實現的非批處理方法允許在9毫秒(單幀周期)中的對象識別,對于低延遲至關重要的情況是理想的,例如障礙物避讓,可以做到大于100Hz的幀速率分類圖像。FPGA實現證明內在的可擴展性可以用來在越來越小的和較低功耗的FPGA上實現復雜的CNN卷積神經網絡,雖然這樣犧牲了一些性能。在極低功耗FPGA器件上實現不太苛刻的應用特別適用于嵌入式解決方案。比如在接近傳感器端計算場景。圖9:用于近距離傳感器處理的微型封裝模塊在G4存儲器和支持電路)把傳感器和FPGA一起做到硬件封裝里,這樣在傳感器端就具備了CNN-卷積神經網絡圖像識別功能,從而確保低延遲以及優化傳感器和主機之間的帶寬。Introduction-CNN-ConvolutionalNeuralNetwork介紹-CNN-卷積神經網絡ConvolutionalNeuralNetwork(CNN)hasbeenshowntobeextremelyeffectiveatcompleximagerecognitionproblems.ThiswhitepaperdiscusseshowCNN-ConvolutionalNeuralNetworkcomputationcanbeacceleratedusingFPGAaccelerationproductsfromNallatech,programmedusingtheAlteraOpenCLSoftwareDevelopmentKit.Imagecategorizationperformancecanbeoptimizedbyadjustingcomputationprecision.ReductionincomputationalprecisionallowstheFPGAacceleratortoprocessincreasinglymoreimagespersecond.卷積神經網絡(cnn)e被證明在復雜的圖像識別問題上非常有效。本白皮書討論如何使用Nallatech公司基于AlteraOpenCL軟件開發套件編程的FPGA加速產品來加速CNN卷積神經網絡的計算。可以通過調整計算精度來優化圖像分類性能。降低計算精度可使FPGA加速器每秒處理越來越多的圖像。CaffeIntegrationCaffeisadeeplearningframeworkmadewithexpression,speed,andmodularityinmind.ItwasdevelopedandismaintainedbytheBerkeleyVisionandLearningCenterandbycommunitycontributors./Caffe是一個深刻的學習框架,以表達,速度和模塊化為前提。它是由伯克利愿景和學習中心以及社區貢獻者開發和維護的。/TheCaffeframeworkusesanXMLinterfacetodescribethedifferentprocessinglayersrequiredforaparticularCNN-ConvolutionalNeuralNetwork.Byimplementingdifferentcombinationsoflayersauserisabletoquicklycreateanewnetworktopologyfortheirgivenrequirements.Caffe框架使用XML接口來描述特定CNN卷積神經網絡所需的不同處理層。通過實施層的不同組合,用戶能夠根據其給定的需求快速創建新的網絡拓撲。Themostcommonlyusedoftheselayersare:Convolution:Theconvolutionlayerconvolvestheinputimagewithasetoflearnablefilters,eachproducingonefeaturemapintheoutputPooling:Max-poolingpartitionstheinputimageintoasetofnon-overlappingrectanglesand,foreachsuchsub-region,outputsthemaximumRectified-Linear(ReLU):Givenaninputvaluex,TheReLUlayercomputestheoutputasxifx>0andnegative_slope*xifx<=0.InnerProduct/FullyConnected:TheimageistreatedassinglevectorwitheachpointcontributingtoeachpointofthenewoutputvectorByportingthese4layerstotheFPGA,thevastmajorityofforwardprocessingnetworkscanbeimplementedontheFPGAusingtheCaffeframework.最常用的處理層主要有:卷積層:卷積層將輸入圖像與一組可學習的濾波器進行卷積,每個濾波器在輸出中產生一個特征圖池化層:池化最大可以將輸入圖像分割成一組非重疊的矩形,并且對于每個這樣的子區域,輸出最大值線性修正(ReLU)層:給定輸入值x,如果x>0,則ReLU層將計算輸出為x,如果x<=0則計算輸出為negative_slope*x。?IP/FC層:將圖像視為單個向量,每個點對新輸出向量的每個點有貢獻通過將這4層移植到FPGA,絕大多數正向處理網絡可以使用Caffe框架在FPGA上實現Figure1:ExampleillustrationofatypicalCNN-ConvolutionalNeuralNetwork圖1:典型的CNN-卷積神經網絡的示例圖ToaccesstheacceleratedFPGAversionofthecodetheuserneedonlychangethedescriptionoftheCNN-ConvolutionalNeuralNetworklayerintheCaffeXMLnetworkdescriptionfiletotargettheFPGAequivalent.要訪問加速的FPGA版本的代碼,用戶只需要更改CaffeXML網絡描述文件中的CNN-卷積神經網絡層的描述,以將FPGA等同于目標。ImageNetd-entcid-ertwd4risc204BFigure2:ImageNetCNN-ConvolutionalNeuralNetworkmMaiMOld-entcid-ertwd4risc204BFigure2:ImageNetCNN-ConvolutionalNeuralNetworkmMaiMOl巾勺ManPEfohng2罌peeling圖2:ImageNetCNN-卷積神經網絡ImageNetisarespectedandwellusedCNN-ConvolutionalNeuralNetwork,withfreelyavailabletraineddatasetsandbenchmarks.ThispaperdiscussesanFPGAimplementationtargetedattheImageNetCNN-ConvolutionalNeuralNetwork,howevertheapproachusedherewouldapplyequallywelltoothernetworks.ImageNet是一個備受推薦且使用最為廣泛的CNN卷積神經網絡,具有免費的訓練數據集和基準。本文討論了針對ImageNetCNN-卷積神經網絡的FPGA實現,然而這里使用的方法同樣適用于其他網絡。Figure2illustratesthedifferentnetworklayersrequiredbytheImageNetCNN-ConvolutionalNeuralNetwork.Thereare5convolutionand3fullyconnectedlayers.Theselayersoccupy>99%oftheprocessingtimeforthisnetwork.Thereare3differentfiltersizesforthedifferentconvolutionlayers,11x11,5x5and3x3.Becausethecomputationaltimeofeachlayerdiffersdependinguponthenumberoffiltersappliedandthesizeoftheinputimages,creatingdifferentlayersoptimizedforthedifferentconvolutionlayerswouldbeinefficient.Toavoidthisinefficiency,thesmallestfilter(3x3)isusedasthebasisforthelargerconvolutionalblocks.The3x3convolutionallayersarethemostcomputationallydemandingduetothenumberofinputandoutputfeaturesprocessedbythem.圖2顯示了ImageNetCNN-卷積神經網絡所需的不同網絡層。有5個卷積和3個FC層。這些層占用該網絡處理時間的99%以上。對于不同的卷積層,有3種不同的濾波器尺寸,分別為11X11,5X5和3X3。因為每個層的計算時間根據所應用的濾波器的數量和輸入圖像的大小而不同,所以為不同的卷積層優化不同的層將效率是比較低的。為了避免這種低效率,使用最小的濾波器(3X3)作為較大卷積塊的基礎。由于它們處理的輸入和輸出特征的數量,3X3卷積層是計算量最大的Thelargerfiltersizescanberepresentedasmultiplepassesofthesmaller3x3filters.Thisaddsinefficiencyintothekernelprocessing,butallowsforlogicreusebetweenthedifferentlayers.ThecostofthisapproachisillustratedinTable1.較大的濾波器尺寸可以用較小的3X3濾波器的多次表達。這雖然會降低內核處理的效率,但允許不同層之間的邏輯重用。這種方法的成本如表1所示。Table1:Convolutionkernelefficiency表1:卷積核效率The3x3convolutionkernelcanalsobeusedbythefullyconnectedlayers.3X3卷積核也可以被FC層使用。ImageNetLayerMultiplyAdds(M)Convolution(11x11)130Convolu:ion(Sxd)322Convolution(3x3)1149CoruHutiun(3x3)2112Corvoluticr'i(3x3)375Produc.t037[nncrProduct117Inri^tProduc.t24Table2:ImageNetlayercomputationrequirementswhenusing3x3filters表2:使用3X3濾鏡時的ImageNet層計算要求FPGAlogicareasFPGAdeviceshavetwoprocessingresourcetypes,DSPandALUlogic.TheDSPlogicisdedicatedlogicoptimizedforlarge(18x18bits)floatingpointmultiplyormultiplyaddoperators.ThisismuchmoreefficientthanusingALUlogicwheresuchmultiplicationsarecostly.GiventhecommonalityofmultiplicationsinDSPoperationsFPGAvendorsprovideddedicatedlogicforthispurpose.AlterahavegoneastepfurtherandallowtheDSPlogictobereconfiguredtoperformfloatingpointoperations.ToincreasetheperformanceforCNN-ConvolutionalNeuralNetworkprocessingitisnecessarytoincreasethenumberofmultiplicationsthatareimplementedintheFPGA.Oneapproachistodecreasethebitaccuracy.FPGA器件具有兩種處理資源類型,即DSP和ALU邏輯。DSP邏輯是針對大型(18X18位)浮點乘法或乘法運算器優化的專用邏輯。這比使用ALU邏輯更有效率,因為這樣的乘法費用很高。鑒于DSP操作中的乘法通用性,FPGA供應商為此提供了專門的邏輯。Altera更進一步,允許重新配置DSP邏輯來執行浮點運算。為了提高CNN卷積神經網絡處理的性能有必要增加在FPGA中實現的乘法次數。一種方法是降低位精度。BitAccuracyMostCNNimplementationsusefloatingpointprecisionforthedifferentlayercalculations.ForaCPUorGPGPUimplementationthisisnotanissueasthefloatingpointIPisafixedpartofthechiparchitecture.ForFPGAsthelogicelementsarenotfixed.TheArria10devicesfromAlterahaveembeddedfloatingDSPblocksthatcanalsobeusedforfixedpointmultiplication.EachDSPcomponentcaninfactbeusedfortwoindependent18x19bitmultiplications.Byperformingconvolutionusing18bitfixedlogicthenumberofavailableoperatorsdoublescomparedtosingleprecisionfloatingpoint.

大多數CNN實現使用浮點精度來進行不同的層計算。對于CPU或GPU實現這不是問題,因為浮點IP大多數CNN實現使用浮點精度來進行不同的層計算。對于CPU或GPU實現這不是問題,因為浮點IP是芯片架構的固定部分。對于FPGA來說,邏輯元素不是固定的。Altera的Arria10器件嵌入了可以用于固定點乘法的浮動DSP模塊。實際上,每個DSP組件可以用于兩個獨立的18X19位乘法。通過使用18位固定邏輯執行卷積,與單精度浮點相比,可用運算符的數量加倍。Figure4:Arria10fixedpointDSPconfiguration怎而曹h.獸工西駐s'工Sy號舊世R穹.等防圖4:Arria10定點DSP配置DependingupontheCNN-ConvolutionalNeuralNetwork’sapplicationsperformancerequirements,thebitprecisioncanbereducedfurtherstill.Ifthebitwidthofthemultiplicationscanbereducedto10bitsorless,(20bitoutput)themultiplicationcanthenbeperformedefficientlyusingjusttheFPGAALU.ThisdoublesthenumberofmultiplicationspossiblecomparedtojustusingtheFPGADSPlogic.根據CNN卷積神經網絡的應用性能要求,可以進一步降低位精度。如果乘法的位寬可以減少到10位或更少,(20位輸出)則可以僅使用FPGAALU有效地執行乘法。與使用FPGADSP邏輯相比,這樣可以增加可乘數OpenCLlibraryfunctionsOpenCL庫函數AlterahasprovidedtheabilitytoincludeuserdefinedandoptimizedIPcomponentsintotheircompilertoolflow.Thisallowssuchoptimizedfunctionstobecreatedandincludedusingstandardlibrarynotation.ThelibrarycomponentsallowanexperiencedHDLprogrammertocreatehighlyefficientimplementationsinthesamewayanassemblylanguageprogrammerwouldcreateandincludeoptimizedfunctionsforx86.Altera提供了將用戶定義和優化的IP組件納入其編譯器工具流程的能力。這允許使用標準庫符號創建和包含這樣的優化功能。庫組件允許有經驗的HDL程序員以匯編語言程序員創建的方式創建高效的實現,并且包含x86優化的函數。FortheCNN-ConvolutionalNeuralNetworklayersusedbyImageNetitwasascertainedthat10bitcoefficientdatawastheminimumreductionthatcouldbeobtainedforasimplefixedpointimplementation,whilstmaintaininglessthan1%errorversusasingleprecisionfloatingpointoperation.Thereforeanoptimizedlibraryfora10bit3x3convolutionwascreated.Thislibrarywasthenimplemented(replicated)asmanytimesaspossible,limitedbyFPGAresourceavailable.對于ImageNet使用的CNN-卷積神經網絡層,簡單的定點實現可以采用10位系數來獲得的最小減少量,這相對于單精度浮點運算保持小于1%的誤差。因此創建10位3X3卷積的優化庫,受FPGA資源的限制,這個庫被實現(復制)多次。ResourceGX1150LogicLomcnts(K)ALM427,200RegisterL708.800VarablePrecisionDSPBock151818x19Multplier3036Figure5:Arria10GX1150resources圖5:Arria10GX1150資源TheArria10’slargestavailabledeviceistheGX1150.Thisdevicehasresourcefor~512convolutionblocks,plustheapplicationcontrollogic.Arria10最大的可用設備是GX1150.該設備具有約512個卷積塊的資源以及應用程序控制邏輯。Implementation實現Increasingthenumberofparallelconvolutionkernelsincreasestheinputbandwidthrequirements.Toavoidglobalmemorybecomingabottleneck,multipleimagesarecalculatedatonceallowingtheconvolutionfilterweightstobereusedforeachdifferentimage.Thisisparticularlyimportantforthefullyconnectedlayerswhereanewsetoffilterweightsisrequired

foreachpointtopointconnection,withthespeedatwhichweightsareretrievedfromglobalmemorythebottleneck.Fortunatelytheconvolutionlayersreusetheweightdataforeachpointinafeatureimage.Thesmallestconvolutionfeatureimageis13x13pixels,thereforetheconvolutionweightsneedonlybeupdatedevery169iterationsintheworstcase.卷積內核的并行運算增加的數量加大了對輸入帶寬要求。為了避免全局內存成為瓶頸,一次計算多個圖像時候可以為每個不同的圖像重新使用卷積濾鏡權重。這對于FC層是特別重要的,其中對于每個點對點連接需要新的一組濾波器權重,其中從全局存儲器檢索權重的瓶頸是瓶頸。幸運的是,卷積層重用了特征圖像中每個點的權重數據。最小卷積特征圖像為13X13像素,因此卷積權重僅在最壞情況下每169次迭代更新一次。圖6:Nallatech510T加速器ThehardwareselectedforthisCNN-ConvolutionalNeuralNetworkimplementationwastheNallatech510T-aGPU-sizedFPGAacceleratorcardcompatiblewithmostserverplatformsdesignedtosupportIntelXeonPhiorGPGPUaccelerators.TheNallatech510TfeaturestwoAlteraArria10GX1150FPGAswith~60GBytes/secexternalmemorybandwidthforloadingweights,inputandoutputdata.Typicalpowerconsumptionofthe510Tisonly150W-lessthanhalfthepowerconsumptionofahigh-endGPGPU.Anaddedbonusofusing10bitcoefficientdatafortheFPGAimplementationisthetriplingintheamountofweightdatathatcanbereadfromglobalmemoryversusfloatingpointdata.選擇硬件平臺Nallatech510T實現CNN-卷積神經網絡,Nallatech510T是與大多數服務器平臺的GPU相兼容的的FPGA加速卡,旨在支持英特爾至強Phi或GPGPU加速器。Nallatech510T具有兩個AlteraArria10GX1150FPGA,具有60GBytes/sec的外部存儲器帶寬用于加載權重、輸入和輸出數據。510T的典型功耗僅為150W,不到高端GPGPU功耗的一半。使用10位系數數據進行FPGA實現的另一個好處是可以從全局存儲器讀取的重量數據量與浮點數據的三倍。UsingtheNallatech510Taccelerator,16parallelimagescanbeprocessedwitheachimagehaving64kernelsprocessedinparallel.Thiswasachievedbygenerating8outputfeaturesand8pixelsperfeatureinparallel.Thisgivesatotalof1024parallel3x3kernels.使用Nallatech510T加速器,可以處理16個并行圖像,每個圖像具有并行處理的64個內核。這是通過并行生成8個輸出特征和8個像素來實現的。總共提供了1024個并行的3X3內核。InourimplementationwecreatedanOpenCLkernelsystemfor1imageandreplicatedthisasmanytimesaspossiblegiventheFPGAresourceconstraints.Theconvolutionweightsarereusedforeachimagesothereisminimalincreasetoglobalmemoryrequirementswhenscalingtomultipleparallelimages.在我們的實現中,我們為1個圖像創建了一個OpenCL內核系統,并在FPGA資源限制的情況下復制了這個多次。卷積權重對于每個圖像重新使用,因此當縮放到多個并行圖像時,對全局內存要求的增加最小。Results結果分析ByapplyingtheaboveFPGAsystem,eachimagetakes9millisecstobecategorizedbytheFPGA.With12parallelimageshandledby510Tthisgivesanaveragetimeof748usecsperimage.Thisisover115millionimagesperday.通過應用上述FPGA系統,每個圖像需要9毫秒才能被FPGA分類。使用510T處理的12個并行圖像,平均每個圖像的時間為748微秒。這是每天超過1.15億張圖片。Figure7:Imagescategorizedpersecond.Nalllatech510TversusNvidiaK401圖7:每秒分類的圖像。Nalllatech510T對NvidiaK401Power功耗分析TheNvidiaK40GPGPUhasnominalpowerconsumptionof235Wattscomparedtothe150WoftheNallatech510T.ThisgivestheFPGAimplementationasignificantperformance/poweradvantagesversustheGPGPU.與Nallatech510T的150W相比,NvidiaK40GPGPU的標稱功耗為235W。這使得FPGA實現與GPGPU相比具有顯著的性能/功耗優勢。圖8:相對圖像功率Nallatech510T對NvidiaK4011Caf

溫馨提示

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

評論

0/150

提交評論