CN107451659B - 用于位宽分区的神经网络加速器及其实现方法 - Google Patents
用于位宽分区的神经网络加速器及其实现方法 Download PDFInfo
- Publication number
- CN107451659B CN107451659B CN201710621935.5A CN201710621935A CN107451659B CN 107451659 B CN107451659 B CN 107451659B CN 201710621935 A CN201710621935 A CN 201710621935A CN 107451659 B CN107451659 B CN 107451659B
- Authority
- CN
- China
- Prior art keywords
- bit width
- neural network
- data
- processing unit
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000005192 partition Methods 0.000 title claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims abstract description 62
- 238000013527 convolutional neural network Methods 0.000 claims description 41
- 238000013139 quantization Methods 0.000 claims description 11
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 239000013256 coordination polymer Substances 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 13
- 238000005457 optimization Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种用于位宽分区的神经网络加速器及其实现方法,该神经网络加速器包括:多个位宽不同的计算处理单元,输入缓存器,权重缓存器,输出缓存器,数据位移器及外部存储器;各个所述计算处理单元从对应的输入缓存区及权重缓存器获取数据,并对与其位宽一致的神经网络层的数据进行并行处理;所述数据位移器用于将当前计算处理单元输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致;外部存储器,用于存储计算处理单元处理前及处理后的数据。利用本发明,可以对多个短位宽数据进行乘累加操作,增加了DSP利用率;采用不同位宽的CP并行计算神经网络的每层,提高了加速器的计算吞吐量。
Description
技术领域
本发明是关于计算机视觉技术,特别是关于一种用于位宽分区的神经网络加速器及其实现方法。
背景技术
近些年来,卷积神经网络在许多计算机视觉应用中取得了巨大的进展,比如图像识别、视频分类、手势识别等。最近,随着越来越多的基于卷积神经网络(CNN)算法的提出,CNN的识别精度被极大地提升,在2015年的ILSVRC会议上识别精度达到了96.4%。但是CNN为了达到如此高的识别精度,在CNN中需要引入非常复杂的算法,这些算法会增加硬件计算资源的开销,而且极大地限制了CNN在硬件层面的性能提升。因此,现在有许多的针对CNN的加速方法被提出以增加CNN的计算性能,比如设计CNN专用芯片、利用FPGA计算加速等方法。在这些方法中,基于FPGA的CNN加速器设计方法被广泛的采用,因为FPGA具有高性能、设计灵活、快速运算时效等特点。
典型的CNN由多个层组成,包括卷积层和全连接层。对于图像识别应用,图像在通过卷积和全连接层之后变成高级特征图像。最后,分类器读取这些提取的特征并输出图像可能属于的每个类别的概率。卷积是CNN中最关键的操作,并且占据了90%以上的算法操作量。因此提升卷积层的性能是提升CNN计算性能的核心,通常大部分的硬件加速器设计是围绕卷积层来做的。
现在主流的基于FPGA的加速器设计方法包括C.Zhang等人在“Optimizing fpga-based acceleratordesign for deep convolutional neural networks”(FPGA,2015)中提出的方法,通过设计一个单一位宽的计算处理单元(computationalprocessor—CP),来迭代地计算CNN的每一层。但是,S.Anwar等人在“Fixed point optimization ofdeepconvolutional neural networks for object recognition”(ICASSP,2015)中已经证明卷积神经网络的每一层具有不同的位宽需求。因此如果用单一选择的位宽对所有层来计算,会导致CNN的所有层选择最大位宽需求的层的位宽,而具有短位宽需求的层不得不和长位宽需求的层的位宽保持一致,这样导致了FPGA的资源利用率很低,也阻碍了加速器性能的进一步提升。YongmingShen等人在“Overcoming resource underutilizationinspatial cnn accelerators”(FPL,2016)中提出使用多个CP来并行的计算CNN的每一层,这样虽然提升了计算的吞吐量,但是却依然忽略了卷积神经网络每层位宽需求不同的这一特性,每个CP都使用相同的位宽进行设计,这样也造成了DSP计算资源的浪费,想要进一步提升加速器的性能变得非常困难。
为了利用CNN每一层具有不同位宽需求的这一特点,Patrick Judd等人在“Stripes:Bit-Serial Deep Neural Network Computing”(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每一层的数据位宽需求不同,这样的设计会导致很大的资源浪费。基于此,本发明实施例提供了一种用于位宽分区的神经网络加速器及其实现方法,根据CNN每一层的位宽需求不同,设计了一个能适应于每层不同位宽的加速器架构,大大提升了FPGA的资源利用率。在赛灵思(Xilinx)的Virtex-7FPGA板上对当前流行的AlexNet和VGG网络进行测试,说明本发明能够比主流的基于FPGA的CNN加速器设计提高6.2倍的性能。
图1为本发明实施例的用于位宽分区的神经网络加速器的结构示意图,该神经网络加速器是基于FPGA实现的。如图1所示,该神经网络加速器包括:多个位宽不同的计算处理单元(computational processor,简称CP),输入缓存器(Input Buffer),权重缓存器(Weight Buffer),输出缓存器(Output Buffer),数据位移器(Data Shifter)及外部存储器(Off-chip Memory)。图1所述的每个CP中的矩形框代表一个可重构计算单元(Processing Element,简称PE)。
其中,输入缓存器,权重缓存器,输出缓存器及数据位移器连接至外部存储器。CP(CP1a-bit…CPn n-bit)分别与对应的输入缓存器,权重缓存器及输出缓存器连接。
输入缓存器及权重缓存器分别从外部存储器读取数据,该数据可以包括神经网络的参数以及中间计算数据。由于FPGA上DSP资源的限制,数据送到CP上进行计算之前,一般缓存在FPGA的外部存储器上。
一实施例中,输入缓存器的位宽及权重缓存器的位宽分别与对应的(即连接的)计算处理单元的位宽保持一致(相同)。
各个计算处理单元从对应的输入缓存区及权重缓存器分别获取与其位宽一致的神经网络层的数据,并对获取的数据进行并行处理。本发明的神经网络加速器设计有多个不同位宽的CP,对神经网络的每一层进行并行计算,提高了计算的吞吐量。
各个计算处理单元在完成对应数据的处理之后,将处理后的数据发送给与其连接的输出缓存器。为了节约FPGA上的资源,输出缓存器的位宽保持与其对应CP的位宽一致。这样,利用低位宽的特性,将会有更多的空间在FPGA上来设计出更多的BRAM。
数据位移器连接至对应的输出缓存器,从输出缓冲器获取对应的CP的处理数据。数据位移器用于将其对应的当前计算处理单元输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致,以支持数据在多个不同的位宽的CP中进行传输。
一实施例中,数据位移可以通过对低位数据截位或者对高位数据补0的方式进行位宽转换。例如,当CPi完成神经网络一层的计算后,利用对应的数据移位器去转换CPi的输出的数据位宽和CPi+1的数据位宽一致。这样,可以保证数据能正常地在多个不同位宽的CP中进行传输。
外部存储器,用于存储计算处理单元处理前及处理后的数据,输入缓存器及权重缓存器可以从外部存储器获取数据,数据位移器位宽转换后的数据也可以存在在外部存储器中。外部存储器根据位宽被划分为不同的部分,每个部分分别存储对应位宽的数据。
本发明神经网络可以为任意一种神经网络,例如卷积神经网络(CNN),本发明实施例中仅以卷积神经网络进行说明,并非用于限定。
利用本发明的神经网络加速器,可以对多个短位宽数据进行乘累加操作,增加了DSP利用率;采用不同位宽的CP并行计算神经网络的每层,提高了加速器的计算吞吐量;将DSP分为几个不同位宽的部分,各个不同位宽的部分分别计算对应位宽的CNN的每一层,增大了DSP的资源使用效率。
本发明实施例提供了一种用于位宽分区的神经网络加速器的实现方法,该实现方法可以应用于图1所示的神经网络加速器。图2为本发明实施例的神经网络加速器的实现方法流程图,如图2所示,该实现方法包括:
S201:获取神经网络中各层数据的位宽信息;
S202:基于所述位宽信息对DSP进行位宽分区处理,一个分区对应一个计算处理单元;
S203:利用各所述计算处理单元对与其位宽一致的神经网络层的数据进行并行处理;
S204:将当前计算处理单元并行处理后输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致。
图2所示的方法的执行主体可以为FPGA,由图2所示的流程可知,本申请首先获取神经网络中各层数据的位宽信息,于所述位宽信息对DSP进行位宽分区处理,一个分区对应一个计算处理单元各个不同位宽的部分分别计算对应位宽的CNN的每一层,增大了DSP的资源使用效率;本申请还利用各所述计算处理单元对与其位宽一致的神经网络层的数据进行并行处理,提高了吞吐量;本申请还将当前计算处理单元并行处理后输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致,可以支持数据在多个不同的位宽的CP中进行传输。
在对神经网络的各层的数据进行处理之前,本发明实施例还需要进行网络位宽优化,计算得到神经网络各层的网络位宽。一实施例中,进行网络位宽优化,计算得到神经网络各层的网络位宽,可以首先利用空间搜索方法量化神经网络中的每层的最佳位宽长度,得到量化模型;然后对所述量化模型进行训练,得到神经网络中各层数据的位宽信息。
利用搜索方法量化神经网络中的每层的最佳位宽长度,具体实施时,可以通过对每层的数据范围进行数值范围分析,根据该数值范围,迭代地在整个神经网络空间中为每个卷积层找到最佳位宽长度,得到量化模型。
进行网络位宽优化时,具体地,由于神经网络每一层的具有不同的位宽需求,并且位宽需求通常低于32-bit。本发明利用量化和重训练的方式得到每层最佳的网络位宽。考虑到每个数据有fl位宽的小数位,首先可以利用空间搜索的方法在整个神经网络中为每一层找到最佳的fl长度可调节。具体实施时,需要对数据范围进行数值范围分析,然后根据数据的范围,迭代地在整个网络空间中为每个卷积层找到最佳的fl值确定位宽。当对每层数据量化完成之后,将得到的模型进行重新训练,以适应量化后的定点模型并且恢复一定的识别精度。
基于神经网络各层的位宽信息可以对DSP(Digital Singnal Processor数字信号处理器)进行优化,即对DSP进行位宽分区处理,一个分区对应一个CP,不同的CP对神经网络的每一层进行并行计算,提高计算的吞吐量,并且提高了CNN加速器的利用率。
利用本发明实施例的神经网络加速器的实现方法,可以对多个短位宽数据进行乘累加操作,增加了DSP利用率;采用不同位宽的CP并行计算神经网络的每层,提高了加速器的计算吞吐量;将DSP分为几个不同位宽的部分,各个不同位宽的部分分别计算对应位宽的CNN的每一层,增大了DSP的资源使用效率。
下面结合几个具体的实施例,详细说明本发明。
首先结合具体的例子说明DSP计算优化:
当得到低位宽的网络层后,为了能利用这些低位宽数据,需要进行必要的DSP优化对低位宽数据下的DSP操作进行优化。图3和图4A及图4B说明了针对低位宽数据进行DSP操作优化的三个例子。每个DSP被简化成了一个乘法器和一个累加器。
如图3所示,乘法器由27-bit的端口P和18-bit的端口C组成,累加器R为48-bit。赛灵思了针对INT-8(所有数据位宽为8-bit)数据的DSP优化,该优化能极大地提高8-bit数据位宽的DSP计算量。根据这个思路,本发明进一步设计了针对更多位宽范围的DSP计算优化。如图3,假设神经网络的层中a和b都是6-bit的数据,c是8-bit位宽的数据,由于a和b位宽很短,可以同时放进乘法器的一个端口中。a和b应该尽可能的分开,并且a和b之间的间隔至少应该保证是数据c的位宽长度,以保障乘积a×c不会影响到乘积b×c。图3中,27x18的乘法器被用来计算端口P和端口C中的数据的乘积。最后产生的乘积结果ac和bc被放到寄存器R中,DSP中的后加法器被用来计算产生的ac和bc,通过各自的数据流分开累加的方式。最后,一个DSP完成了两个乘累加运算,相比16-bit计算达到了两倍的计算量,极大提升了DSP的利用率。
如图4A所示,继续减小a和b的位宽到4-bit,c保持8-bit,通过乘法器相乘后,可以看到,两个乘积的间隔位宽变为了10-bit,最后的DSP也可以达到两倍的计算量。如图4B所示,当进一步减小c的位宽到6-bit,保持a和b的位宽为4-bit,便可以额外放置一个4-bit的数据d到乘法器的端口中,这样便可以实现3倍的计算量。可以看出,不同的位宽数据,通过这种优化方式,能达到不同的DSP计算量性能的提高,实现了使短位宽数据达到更高的DSP计算量的效果。
并行CP计算系统:
由于CNN每一层的位宽需求不同,使用一个单一位宽的CP对网络的所有层进行处理会导致很低的DSP利用效率。因此,本发明采用多个不同位宽的CP对CNN的每一层进行并行处理,提高DSP的利用效率,同时通过并行计算的方式提高运算的吞吐量。图5展示了一个并行计算的例子。对于一个5层的卷积网络,CP0处理第一层,第二层和第五层具有相同的位宽,被放到CP1进行计算,第三层和第四层具有相同的位宽,被放到CP2进行计算。
这三个不同位宽的CP通过并行处理的方式处理数据。CP系统的计算流水线分为多个segment(时间段),在每个segment期间,每个CP独立地处理各自的卷积层。为了防止在每个segment中出现数据冲突,每个CP仅仅处理来自上一个segment的数据。比如,L1在segment i期间产生的输出,只有在segment i+1期间才被L2作为输入。那就是说,对于一个五层的卷积网络,处理一张图片,需要经过4个segment的时间。但是,在4个segment时间段内,能同时处理4张图片,相当于一段segment就能处理一张图片,这对于CNN加速器来说是相当高效的。
DSP分区设计:针对多个CP系统,每个CP具有不同的位宽。对应到FPGA具体设计上,需要将FPGA上的DSP(进行基于位宽的分区处理,将DSP分为几个不同位宽的部分,每个部分对应不同位宽的CP,如此便能实现高性能的加速器计算。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种用于位宽分区的神经网络加速器,其特征在于,包括:多个位宽不同的计算处理单元,输入缓存器,权重缓存器,输出缓存器,数据位移器及外部存储器;
所述输入缓存器,权重缓存器,输出缓存器及数据位移器连接至所述外部存储器;所述的计算处理单元分别与对应的输入缓存器,权重缓存器及输出缓存器连接;所述数据位移器连接至对应的输出缓存器;
各个所述计算处理单元从对应的输入缓存区及权重缓存器获取与其位宽一致的神经网络层的数据,并对获取的数据进行并行处理;
所述计算处理单元还用于进行网络位宽优化,计算得到神经网络各层的网络位宽;所述计算处理单元具体用于利用空间搜索方法量化神经网络中的每层的最佳位宽长度,得到量化模型,并对所述量化模型进行训练;
所述数据位移器用于将当前计算处理单元输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致;
外部存储器,用于存储计算处理单元处理前及处理后的数据。
2.根据权利要求1所述的神经网络加速器,其特征在于,所述数据位移器具体用于对数据进行截位或者补0的方式进行位宽转换。
3.根据权利要求1所述的神经网络加速器,其特征在于,所述外部存储器根据位宽被划分为不同的部分,每个部分分别存储对应位宽的数据。
4.根据权利要求1所述的神经网络加速器,其特征在于,所述输入缓存器及权重缓存器的位宽与对应的计算处理单元位宽一致。
5.根据权利要求1所述的神经网络加速器,其特征在于,所述输出缓存器的位宽与对应的计算出来单元的位宽一致。
6.根据权利要求1所述的神经网络加速器,其特征在于,所述神经网络为卷积神经网络。
7.一种用于位宽分区的神经网络加速器的实现方法,其特征在于,包括:
获取神经网络中各层数据的位宽信息;
进行网络位宽优化,计算得到神经网络各层的网络位宽,包括:利用空间搜索方法量化神经网络中的每层的最佳位宽长度,得到量化模型;对所述量化模型进行训练;
基于所述位宽信息对DSP进行位宽分区处理,一个分区对应一个计算处理单元;
利用各所述计算处理单元对与其位宽一致的神经网络层的数据进行并行处理;
将当前计算处理单元并行处理后输出的数据的位宽转换为与该当前计算处理单元对应的下一计算处理单元的位宽一致。
8.根据权利要求7所述的神经网络加速器的实现方法,其特征在于,利用空间搜索方法量化神经网络中的每层的最佳位宽长度,得到量化模型,包括:
对每层的数据范围进行数值范围分析,根据该数值范围,迭代地在整个神经网络空间中为每个卷积层找到最佳位宽长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710621935.5A CN107451659B (zh) | 2017-07-27 | 2017-07-27 | 用于位宽分区的神经网络加速器及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710621935.5A CN107451659B (zh) | 2017-07-27 | 2017-07-27 | 用于位宽分区的神经网络加速器及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451659A CN107451659A (zh) | 2017-12-08 |
CN107451659B true CN107451659B (zh) | 2020-04-10 |
Family
ID=60489798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710621935.5A Active CN107451659B (zh) | 2017-07-27 | 2017-07-27 | 用于位宽分区的神经网络加速器及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451659B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11790664B2 (en) | 2019-02-19 | 2023-10-17 | Tesla, Inc. | Estimating object properties using visual image data |
US11797304B2 (en) | 2018-02-01 | 2023-10-24 | Tesla, Inc. | Instruction set architecture for a vector computational unit |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11841434B2 (en) | 2018-07-20 | 2023-12-12 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11893774B2 (en) | 2018-10-11 | 2024-02-06 | Tesla, Inc. | Systems and methods for training machine models with augmented data |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018176000A1 (en) | 2017-03-23 | 2018-09-27 | DeepScale, Inc. | Data synthesis for autonomous control systems |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
CN108256638B (zh) * | 2018-01-05 | 2021-06-22 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
CN108256628B (zh) * | 2018-01-15 | 2020-05-22 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
CN108256645B (zh) * | 2018-01-19 | 2021-02-26 | 上海兆芯集成电路有限公司 | 数据位宽可调适的处理器 |
CN108345940B (zh) * | 2018-02-05 | 2021-09-24 | 深圳市易成自动驾驶技术有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN108334946B (zh) * | 2018-02-13 | 2022-03-29 | 北京旷视科技有限公司 | 深度神经网络模型的处理方法、装置和设备 |
CN108229672B (zh) * | 2018-02-13 | 2022-03-29 | 北京旷视科技有限公司 | 一种深度神经网络模型的处理方法、装置和设备 |
DE102018203709A1 (de) * | 2018-03-12 | 2019-09-12 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes |
CN110321997B (zh) * | 2018-03-31 | 2021-10-19 | 赛灵思公司 | 高并行度计算平台、系统及计算实现方法 |
CN108537331A (zh) * | 2018-04-04 | 2018-09-14 | 清华大学 | 一种基于异步逻辑的可重构卷积神经网络加速电路 |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
CN110088777B (zh) * | 2018-07-18 | 2023-05-05 | 深圳鲲云信息科技有限公司 | 反卷积实现方法及相关产品 |
WO2020019174A1 (zh) * | 2018-07-24 | 2020-01-30 | 深圳市大疆创新科技有限公司 | 数据存取的方法、处理器、计算机系统和可移动设备 |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
CN109214504B (zh) * | 2018-08-24 | 2020-09-04 | 北京邮电大学深圳研究院 | 一种基于fpga的yolo网络前向推理加速器设计方法 |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
CN109359731B (zh) * | 2018-09-27 | 2022-01-28 | 中科物栖(北京)科技有限责任公司 | 一种基于芯片设计缺陷的神经网络处理方法及装置 |
CN112805727A (zh) * | 2018-10-08 | 2021-05-14 | 深爱智能科技有限公司 | 分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法 |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
KR20200076461A (ko) * | 2018-12-19 | 2020-06-29 | 삼성전자주식회사 | 중첩된 비트 표현 기반의 뉴럴 네트워크 처리 방법 및 장치 |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
TWI722491B (zh) | 2019-07-16 | 2021-03-21 | 國立陽明交通大學 | 應用於神經網絡之四位元與八位元組合之分離式量化方法 |
CN116167422A (zh) * | 2019-07-31 | 2023-05-26 | 华为技术有限公司 | 一种集成芯片以及处理传感器数据的方法 |
WO2021036908A1 (zh) * | 2019-08-23 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
JP7146954B2 (ja) * | 2019-08-23 | 2022-10-04 | 安徽寒武紀信息科技有限公司 | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 |
CN110766155A (zh) * | 2019-09-27 | 2020-02-07 | 东南大学 | 一种基于混合精度存储的深度神经网络加速器 |
CN111563589B (zh) * | 2020-04-14 | 2024-01-16 | 中科物栖(南京)科技有限公司 | 一种神经网络模型的量化方法及装置 |
CN111985634B (zh) * | 2020-08-21 | 2024-06-14 | 北京灵汐科技有限公司 | 神经网络的运算方法、装置、计算机设备及存储介质 |
CN112214198A (zh) * | 2020-10-22 | 2021-01-12 | 南京博芯电子技术有限公司 | 一种针对位宽递增加法树的精度动态自适应累加模块 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203621B (zh) * | 2016-07-11 | 2019-04-30 | 北京深鉴智能科技有限公司 | 用于卷积神经网络计算的处理器 |
CN106228240B (zh) * | 2016-07-30 | 2020-09-01 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
-
2017
- 2017-07-27 CN CN201710621935.5A patent/CN107451659B/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11797304B2 (en) | 2018-02-01 | 2023-10-24 | Tesla, Inc. | Instruction set architecture for a vector computational unit |
US11841434B2 (en) | 2018-07-20 | 2023-12-12 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11893774B2 (en) | 2018-10-11 | 2024-02-06 | Tesla, Inc. | Systems and methods for training machine models with augmented data |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11790664B2 (en) | 2019-02-19 | 2023-10-17 | Tesla, Inc. | Estimating object properties using visual image data |
Also Published As
Publication number | Publication date |
---|---|
CN107451659A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451659B (zh) | 用于位宽分区的神经网络加速器及其实现方法 | |
JP6857286B2 (ja) | ニューラルネットワークアレイの性能の改善 | |
CN111062472B (zh) | 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法 | |
US20220012593A1 (en) | Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization | |
CN107862374B (zh) | 基于流水线的神经网络处理系统和处理方法 | |
Fan et al. | A real-time object detection accelerator with compressed SSDLite on FPGA | |
CN108805267B (zh) | 用于卷积神经网络硬件加速的数据处理方法 | |
CN107239829B (zh) | 一种优化人工神经网络的方法 | |
US20190087713A1 (en) | Compression of sparse deep convolutional network weights | |
Su et al. | Redundancy-reduced mobilenet acceleration on reconfigurable logic for imagenet classification | |
US10656962B2 (en) | Accelerate deep neural network in an FPGA | |
CN110163355B (zh) | 一种计算装置及方法 | |
CN115039067A (zh) | 包括具有高效预规格化和扩展动态范围的熔合乘法累加的脉动阵列 | |
CN106855952B (zh) | 基于神经网络的计算方法及装置 | |
CN110163350B (zh) | 一种计算装置及方法 | |
TWI738048B (zh) | 算數框架系統及操作浮點至定點算數框架的方法 | |
CN110555516A (zh) | 基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法 | |
CN111626413A (zh) | 一种计算装置及方法 | |
KR20190098671A (ko) | 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치 | |
CN113469350A (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
KR20190140841A (ko) | 확률 적응적 자원 할당을 통한 신경망 하드웨어 가속 | |
CN112734020B (zh) | 卷积神经网络的卷积乘累加硬件加速装置、系统以及方法 | |
Struharik et al. | Conna–compressed cnn hardware accelerator | |
CN111240746A (zh) | 一种浮点数据反量化及量化的方法和设备 | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231117 Address after: Room 201, 1st and 2nd floors, Building 3, No. 16 Yongchang Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing, 100176 Patentee after: Beijing Xinli Technology Innovation Center Co.,Ltd. Address before: 100084 Tsinghua Yuan, Beijing, Haidian District Patentee before: TSINGHUA University |