当前位置: 首页 > 专利查询>清华大学专利>正文

用于位宽分区的神经网络加速器及其实现方法技术

技术编号:16756627 阅读:168 留言:0更新日期:2017-12-09 02:39
本发明专利技术提供了一种用于位宽分区的神经网络加速器及其实现方法,该神经网络加速器包括:多个位宽不同的计算处理单元,输入缓存器,权重缓存器,输出缓存器,数据位移器及外部存储器;各个所述计算处理单元从对应的输入缓存区及权重缓存器获取数据,并对与其位宽一致的神经网络层的数据进行并行处理;所述数据位移器用于将当前计算处理单元输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致;外部存储器,用于存储计算处理单元处理前及处理后的数据。利用本发明专利技术,可以对多个短位宽数据进行乘累加操作,增加了DSP利用率;采用不同位宽的CP并行计算神经网络的每层,提高了加速器的计算吞吐量。

For the neural network interface and realization method of partition accelerator

The present invention provides a method for neural network accelerator and its realization of the neural network interface partition, the accelerator includes calculating processing unit, a plurality of bit different weights of input buffer, buffer, output buffer, data shifter and external memory; each of the calculation processing unit acquires data from the input buffer and buffer weight the parallel processing of neural network layer and its width is consistent with the data; the data for the current displacement calculation processing unit output data conversion processing units corresponding to a calculation processing unit should be consistent with the calculated width; the external memory, for storing the calculation processing unit before processing and after processing the data. The invention of multiple short bit data for Mac operations, increase the rate of utilization of DSP; using different bit parallel computing of the CP neural network improves the throughput of each layer, the accelerator.

【技术实现步骤摘要】
用于位宽分区的神经网络加速器及其实现方法
本专利技术是关于计算机视觉技术,特别是关于一种用于位宽分区的神经网络加速器及其实现方法。
技术介绍
近些年来,卷积神经网络在许多计算机视觉应用中取得了巨大的进展,比如图像识别、视频分类、手势识别等。最近,随着越来越多的基于卷积神经网络(CNN)算法的提出,CNN的识别精度被极大地提升,在2015年的ILSVRC会议上识别精度达到了96.4%。但是CNN为了达到如此高的识别精度,在CNN中需要引入非常复杂的算法,这些算法会增加硬件计算资源的开销,而且极大地限制了CNN在硬件层面的性能提升。因此,现在有许多的针对CNN的加速方法被提出以增加CNN的计算性能,比如设计CNN专用芯片、利用FPGA计算加速等方法。在这些方法中,基于FPGA的CNN加速器设计方法被广泛的采用,因为FPGA具有高性能、设计灵活、快速运算时效等特点。典型的CNN由多个层组成,包括卷积层和全连接层。对于图像识别应用,图像在通过卷积和全连接层之后变成高级特征图像。最后,分类器读取这些提取的特征并输出图像可能属于的每个类别的概率。卷积是CNN中最关键的操作,并且占据了90%以上的算法操作量。因此提升卷积层的性能是提升CNN计算性能的核心,通常大部分的硬件加速器设计是围绕卷积层来做的。现在主流的基于FPGA的加速器设计方法包括C.Zhang等人在“Optimizingfpga-basedacceleratordesignfordeepconvolutionalneuralnetworks”(FPGA,2015)中提出的方法,通过设计一个单一位宽的计算处理单元(computationalprocessor—CP),来迭代地计算CNN的每一层。但是,S.Anwar等人在“Fixedpointoptimizationofdeepconvolutionalneuralnetworksforobjectrecognition”(ICASSP,2015)中已经证明卷积神经网络的每一层具有不同的位宽需求。因此如果用单一选择的位宽对所有层来计算,会导致CNN的所有层选择最大位宽需求的层的位宽,而具有短位宽需求的层不得不和长位宽需求的层的位宽保持一致,这样导致了FPGA的资源利用率很低,也阻碍了加速器性能的进一步提升。YongmingShen等人在“Overcomingresourceunderutilizationinspatialcnnaccelerators”(FPL,2016)中提出使用多个CP来并行的计算CNN的每一层,这样虽然提升了计算的吞吐量,但是却依然忽略了卷积神经网络每层位宽需求不同的这一特性,每个CP都使用相同的位宽进行设计,这样也造成了DSP计算资源的浪费,想要进一步提升加速器的性能变得非常困难。为了利用CNN每一层具有不同位宽需求的这一特点,PatrickJudd等人在“Stripes:Bit-SerialDeepNeuralNetworkComputing”(MICRO,2016)中设计了一种每层的运算时间和每层位宽需求成比例的设计方法,这样就很大程度的提升了资源利用效率,进一步提升了CNN加速器的性能。但是这种设计方法把卷积神经网络中的乘累加操作转换为了与或逻辑运算,这样虽然提升了加速器的运算性能,但使得硬件面积增加了35%,但是很大程度上牺牲了CNN的硬件面积指标。
技术实现思路
本专利技术实施例提供了一种用于位宽分区的神经网络加速器及其实现方法,以对多个短位宽数据进行乘累加操作,增加DSP利用率,提高加速器的计算吞吐量。为了实现上述目的,本专利技术实施例提供了一种用于位宽分区的神经网络加速器,该神经网络加速器包括:多个位宽不同的计算处理单元,输入缓存器,权重缓存器,输出缓存器,数据位移器及外部存储器;所述输入缓存器,权重缓存器,输出缓存器及数据位移器连接至所述外部存储器;所述的计算处理单元分别与对应的输入缓存器,权重缓存器及输出缓存器连接;所述数据位移器连接至对应的输出缓存器;各个计算处理单元从对应的输入缓存区及权重缓存器获取与其位宽一致的神经网络层的数据,并对获取的数据进行并行处理;所述数据位移器用于将当前计算处理单元输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致;外部存储器,用于存储计算处理单元处理前及处理后的数据。一实施例中,所述数据位移器具体用于对数据进行截位或者补0的方式进行位宽转换。一实施例中,所述外部存储器根据位宽被划分为不同的部分,每个部分分别存储对应位宽的数据。一实施例中,所述输入缓存器及权重缓存器的位宽与对应的计算处理单元位宽一致。一实施例中,所述输出缓存器的位宽与对应的计算出来单元的位宽一致。一实施例中,所述神经网络为卷积神经网络。为了实现上述目的,本专利技术实施例还提供了一种用于位宽分区的神经网络加速器的实现方法,包括:获取神经网络中各层数据的位宽信息;基于所述位宽信息对DSP进行位宽分区处理,一个分区对应一个计算处理单元;利用各所述计算处理单元对与其位宽一致的神经网络层的数据进行并行处理;将当前计算处理单元并行处理后输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致。一实施例中,该神经网络加速器的实现方法还包括:进行网络位宽优化,计算得到神经网络各层的网络位宽。一实施例中,进行网络位宽优化,计算得到神经网络各层的网络位宽,包括:利用空间搜索方法量化神经网络中的每层的最佳位宽长度,得到量化模型;对所述量化模型进行训练。一实施例中,利用空间搜索方法量化神经网络中的每层的最佳位宽长度,得到量化模型,包括:对每层的数据范围进行数值范围分析,根据该数值范围,迭代地在整个神经网络空间中为每个卷积层找到最佳位宽长度。利用本专利技术,可以对多个短位宽数据进行乘累加操作,增加了DSP利用率;采用不同位宽的CP并行计算神经网络的每层,提高了加速器的计算吞吐量;将DSP分为几个不同位宽的部分,各个不同位宽的部分分别计算对应位宽的CNN的每一层,增大了DSP的资源使用效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例的用于位宽分区的神经网络加速器的结构示意图;图2为本专利技术实施例的神经网络加速器的实现方法流程图;图3为本专利技术实施例的DSP优化详细解释示意图;图4A及图4B为本专利技术实施例的DSP优化位宽推广示意图;图5为本专利技术实施例的多CP系统流水线示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。现有技术中,主流的CNN加速器采用一个单一位宽的计算处理单元(CP)来迭代地计算CNN的每一层,但由于CNN每一层的数据位宽需求不同,这样的设计会导致很大的资源浪费。基于此,本专利技术实施例提供了本文档来自技高网
...
用于位宽分区的神经网络加速器及其实现方法

【技术保护点】
一种用于位宽分区的神经网络加速器,其特征在于,包括:多个位宽不同的计算处理单元,输入缓存器,权重缓存器,输出缓存器,数据位移器及外部存储器;所述输入缓存器,权重缓存器,输出缓存器及数据位移器连接至所述外部存储器;所述的计算处理单元分别与对应的输入缓存器,权重缓存器及输出缓存器连接;所述数据位移器连接至对应的输出缓存器;各个所述计算处理单元从对应的输入缓存区及权重缓存器获取与其位宽一致的神经网络层的数据,并对获取的数据进行并行处理;所述数据位移器用于将当前计算处理单元输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致;外部存储器,用于存储计算处理单元处理前及处理后的数据。

【技术特征摘要】
1.一种用于位宽分区的神经网络加速器,其特征在于,包括:多个位宽不同的计算处理单元,输入缓存器,权重缓存器,输出缓存器,数据位移器及外部存储器;所述输入缓存器,权重缓存器,输出缓存器及数据位移器连接至所述外部存储器;所述的计算处理单元分别与对应的输入缓存器,权重缓存器及输出缓存器连接;所述数据位移器连接至对应的输出缓存器;各个所述计算处理单元从对应的输入缓存区及权重缓存器获取与其位宽一致的神经网络层的数据,并对获取的数据进行并行处理;所述数据位移器用于将当前计算处理单元输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致;外部存储器,用于存储计算处理单元处理前及处理后的数据。2.根据权利要求1所述的神经网络加速器,其特征在于,所述数据位移器具体用于对数据进行截位或者补0的方式进行位宽转换。3.根据权利要求1所述的神经网络加速器,其特征在于,所述外部存储器根据位宽被划分为不同的部分,每个部分分别存储对应位宽的数据。4.根据权利要求1所述的神经网络加速器,其特征在于,所述输入缓存器及权重缓存器的位宽与对应的计算处理单元位宽一致。5.根据权利要求1所述的神经网络加速器,其特征在于,所述输出缓存器的...

【专利技术属性】
技术研发人员:尹首一郭建辛欧阳鹏唐士斌涂锋斌刘雷波魏少军
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1