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

提交评论