CN110852434A - 基于低精度浮点数的cnn量化方法、前向计算方法及装置 - Google Patents

基于低精度浮点数的cnn量化方法、前向计算方法及装置 Download PDF

Info

Publication number
CN110852434A
CN110852434A CN201910940682.7A CN201910940682A CN110852434A CN 110852434 A CN110852434 A CN 110852434A CN 201910940682 A CN201910940682 A CN 201910940682A CN 110852434 A CN110852434 A CN 110852434A
Authority
CN
China
Prior art keywords
point number
floating point
low
precision floating
quantization
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.)
Granted
Application number
CN201910940682.7A
Other languages
English (en)
Other versions
CN110852434B (zh
Inventor
吴晨
王铭宇
徐世平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Biong Core Technology Co ltd
Original Assignee
Chengdu Star Innovation Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Star Innovation Technology Co ltd filed Critical Chengdu Star Innovation Technology Co ltd
Priority to CN201910940682.7A priority Critical patent/CN110852434B/zh
Publication of CN110852434A publication Critical patent/CN110852434A/zh
Application granted granted Critical
Publication of CN110852434B publication Critical patent/CN110852434B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了基于低精度浮点数的CNN量化方法、前向计算方法及装置,涉及深度卷积神经网络量化领域;其量化方法包括步骤:定义网络的低精度浮点数表现形式MaEb;在优化低精度浮点数表示形式过程中,通过更改比例因子、更改a和b的组合和计算量化前后的权重和激活值均方差,获取所述均方差最小值对应的最优低精度浮点数表示形式和最优比例因子;基于上述低精度浮点数表示形式和最优比例因子,完成单精度浮点数量化为低精度浮点数;本发明通过计算和使用低精度浮点数表现形式MaEb,实现在不需要重新训练的情况下,保证网络量化的准确率;实现在保证准确率的情况下,大大提升定制电路或非定制电路上加速的性能,定制电路为ASIC或者SOC,非定制电路包括FPGA。

Description

基于低精度浮点数的CNN量化方法、前向计算方法及装置
技术领域
本发明涉及深度卷积神经网络量化领域,尤其是基于低精度浮点数的CNN量化方法、前向计算方法及装置。
背景技术
近年来,AI(Artificial Intelligence,人工智能)的应用已经渗透到很多方面,如人脸识别、游戏对战、图像处理、仿真模拟等等,虽然提高了处理准确性,但由于神经网络包含很多层和大量参数,需要非常大的计算代价和存储空间。对此,技术人员提出了神经网络压缩处理方案,即通过改变网络结构或利用量化、近似的方法来减少网络的参数或存储空间,在不大影响神经网络性能的情况下,降低网络代价和存储空间。
现有技术中的专利号:CN109740737A、专利名称:卷积神经网络量化处理方法、装置及计算机设备,方法包括步骤:获取卷积神经网络中各卷积层的最大权值及最大偏差量;计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值,所述第一动态比特位精度值与所述第二动态比特位精度值不同;利用各卷积层对应的所述第一动态比特位精度值和所述第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化;基于各卷积层中量化后的权值及量化后的偏差量,得到所述卷积神经网络的卷积结果。上述方案采用双精度量化处理方法提高量化后的准确率,具体的,获取卷积神经网络中卷积层的最大权值及最大偏差量,分别计算最大权值的动态比特位精度值及最大偏差量的动态比特位精度值,之后,利用这两个动态比特位精度值实现卷积计算,由于本申请从卷积层的权值和偏差值两方面进行量化,避免了单精度量化,容易导致权值或偏差值精度损失,影响量化准确性的情况发生。
虽然目前技术对量化进行改进,提高量化准确性,但仍然存在几个方面的限制:1)对于量化深度卷积神经网络(卷积层/全连接层的数量超过100层),需要重新训练来保证准确率;2)量化需要使用16比特浮点数或者8比特定点数来保证准确率;3)在不使用重新训练和保证准确率的前提下,目前技术在一个DSP中,最多只能实现两个乘法运算,从而导致FPGA上加速性能较低。
因此,需要一种基于低精度浮点数的CNN量化方法、前向计算方法及装置,克服以上问题,实现在不需要重新训练的情况下,找到最优的数据表示形式,保证量化后卷积神经网络的准确率和提升定制电路或者非定制电路的加速性能。
发明内容
本发明的目的在于:本发明提供了一种基于低精度浮点数的CNN量化方法、前向计算方法及装置,使用低精度浮点数的表示形式,在不需要重新训练的情况下,保证量化后卷积神经网络的准确率和提升定制电路或者非定制电路的加速性能。
本发明采用的技术方案如下:
基于低精度浮点数的CNN量化方法,包括在卷积神经网络进行的如下步骤:
步骤1:定义所述网络的低精度浮点数表现形式MaEb,所述低精度浮点数表现形式包括符号位、尾数和指数,其中,a、b均为正整数;
步骤2:在优化低精度浮点数表示形式过程中,同时更改比例因子、更改a和b的组合和计算所述网络每一层量化前后的权重和激活值均方差,根据量化前后的权重和激活值均方差最小值获取最优的低精度浮点数表示形式和所述表示形式下的最优比例因子;
步骤3:基于上述低精度浮点数表示形式和最优比例因子,完成单精度浮点数量化为低精度浮点数。
优选地,所述a、b满足0<a+b≤31,当a=4或者5时,用此低精度浮点数表示形式量化的网络即为最优结果。
优选地,所述步骤1中低精度浮点数表现形式的十进制值计算如下:
Figure BDA0002222808360000024
其中,Vdec表示低精度浮点数表现形式的十进制值,S,M和E分别表示符号位,尾数和指数,均为无符号的值,Eb表示指数的偏置,用于为指数引入正数和负数,表示为:
Figure BDA0002222808360000021
其中,DWE表示指数的位宽,尾数和指数的位宽均为非固定的。
优选地,所述步骤2包括如下步骤:
步骤2.1:将单精度浮点数乘以比例因子映射至低精度浮点数能够表示的动态范围内,将映射后的数四舍五入成最接近的低精度浮点数,并将超过动态范围的数据保留成最大值或者最小值,计算公式如下:
Figure BDA0002222808360000022
Figure BDA0002222808360000023
其中,Vlfp和Vfp32表示由低精度浮点数和单精度浮点数形式表示的十进制的值,MINlfp和MAXlfp表示低精度浮点数能够表示的最小值和最大值,sf表示比例因子,quan(x,MIN,MAX)表示对任意浮点数x在范围MIN到MAX之间进行量化,round(x)表示表示对任意浮点数x进行四舍五入;
步骤2.2:计算量化前后权重和激活值均方差MSE,所述量化前后的权重和激活值均方差表示量化误差,计算如下:
Figure BDA0002222808360000031
其中,N表示权重和激活值的数量;
步骤2.3:更改比例因子,重复步骤2.1和2.2;
步骤2.4:更改低精度浮点数表示形式即MaEb中a和b的组合,重复步骤2.1、2.2和2.3;
步骤2.5:将权重和激活值均方差最小值对应的低精度表示形式和比例因子作为最优的结果。
优选地,所述低精度浮点数表现形式的十进制值在当E=0时的非规约数时,其计算为:
一种卷积层前向计算方法,包括在卷积神经网络中进行如下步骤:
步骤a:将单精度浮点数的输入数据量化为低精度浮点数表现形式的MaEb的浮点数,所述输入数据包括输入激活值、权重和偏置,其中,a、b均为正整数;
步骤b:将MaEb的浮点数分发至浮点数功能模块中并行的Nm个低精度浮点数乘法器进行前向计算得到全精度浮点数乘积,其中,Nm表示浮点数功能模块中一个处理单元PE低精度浮点数乘法器的数量;
步骤c:将所述全精度浮点数乘积传输至数据转换模块获取无精度损失的定点数结果;
步骤d:将所述定点数结果分配至并行的4T个定点数加法树后,将定点数加法树结果和输入数据中的偏置经过后处理单元依次进行累加、池化和激活完成卷积层计算,其中,T为正整数。
优选地,所述步骤a、b、c包括如下步骤:
原始图片、权重通过低精度浮点数表现形式量化为MaEb的浮点数,偏置量化为16比特的定点数,将上述量化后的原始图片、权重和偏置输入所述网络并存储至外部存储器,其中,0<a+b≤31;
将量化后的图片和权重进行低精度浮点数乘法运算得到(2a+b+4)比特浮点数后,将上述(2a+b+4)比特浮点数转换为(2a+2(b+1)-1)比特定点数后进行累加计算,将上述累加计算结果与所述偏置量化的16比特的定点数相加得到32比特定点数;
将上述32比特定点数转换为MaEb的浮点数作为所述网络下一层的输入,并保存至外部存储器。
优选地,所述原始图片、权重量化为MaEb的浮点数如下包括步骤:
定义所述网络的低精度浮点数表现形式MaEb,所述低精度浮点数表现形式包括符号位、尾数和指数;
在优化低精度浮点数表示形式过程中,同时更改比例因子、更改a和b的组合和计算所述网络每一层量化前后的权重和激活值均方差,根据量化前后的权重和激活值均方差最小值获取最优的低精度浮点数表示形式和所述表示形式下的最优比例因子;
基于上述低精度浮点数表示形式和最优比例因子,完成将原始图片、权重的单精度浮点数量化为以低精度浮点数表现形式MaEb表示的浮点数。
优选地,当a=4或者5时,用此低精度浮点数表示形式量化的网络即为最优结果。
优选地,所述MaEb的浮点数进行低精度浮点数乘法运算包括如下步骤:
将MaEb的浮点数拆分为一个a比特的乘加器和一个b比特的加法器,计算公式如下:
其中,Mx,My,Ex,Ey分别表示X和Y的尾数与指数,式子0.Mx×0.My+(1.Mx+0.My)由一个a比特的无符号定点数乘加器实现,式子Ex+Ey可以由一个b比特的无符号定点数加法器实现;
基于DSP实现的乘加器P=A×B+C,在输入端口添加的空白比特实现若干个a比特的乘加器,其中,A、B、C表示DSP的三个输入端,所述A、B、C比特位宽最大取值分别为25、18、48。
一种装置,包括定制电路的浮点数功能模块或者非定制电路的浮点数功能模块;所述浮点数功能模块,用于将输入数据分发至不同的处理单元PE并行计算通过低精度浮点数表现形式量化为MaEb浮点数的点积,完成卷积层的前向计算;
所述浮点数功能模块包括n个并行处理单元PE,所述处理单元PE通过DSP实现Nm个MaEb浮点数乘法器,其中,n为正整数,a、b均为正整数,Nm表示一个处理单元PE低精度浮点数乘法器的数量。
优选地,所述每个处理单元PE包括4T个并行支路,所述每个并行支路包含Nm/(4T)个乘法器、Nm/(4T)个数据转换模块、1个定点数加法树和1个后处理单元PPM,所述乘法器、数据转换模块、定点数加法树、后处理单元依次连接,其中,T为正整数。
优选地,所述a、b满足0<a+b≤31,当a=4或者5时,用此低精度浮点数表示形式量化的网络即为最优结果。
优选地,所述定制电路包括ASIC或者SOC,所述非定制电路包括FPGA。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明使用低精度浮点数表现形式MaEb,在不需要重新训练的情况下,可以找到最优的数据表示形式,只需要4比特或者5比特的尾数,保证top-1/top-5的准确率丢失可以忽略不计,top-1/top-5准确率的丢失量分别在0.5%/0.3%以内;
2.本发明在使用一个4比特的乘加器和一个3比特的加法器的方式实现一个8比特的低精度浮点数的乘法运算,并且在一个DSP内实现4个这种方式的低精度浮点数乘法运算,相当于在一个DSP内部实现四个卷积运算中的乘法运算,比起现有最多只能用一个DSP实现两个乘法运算,实现在保证准确率的情况下,大大提升定制电路(如ASIC或者SOC)或者非定制电路(如FPGA)上加速的性能;
3.本发明的吞吐量相比于Intel i9 CPU提升了64.5倍,相比于现有的FPGA加速器提升了1.5倍;针对VGG16和YOLO卷积神经网络而言,本申请与现有的六个FPGA加速器相比,在吞吐量方面,分别提升了3.5倍和27.5倍,在单个DSP吞吐量方面,分别提升了4.1倍和5倍;
4.本发明的数据表示形式也可以运用在ASIC方面,在ASIC设计中,实现低精度浮点数乘法器比8比特定点数乘法器,需要的标准单元数量更少;
5.本发明基于量化方法进行卷积层的前向计算时,将累加结果定点数转换为浮点数,利于节省存储资源;将浮点数累加转换为定点数累加,可以节省大量定制电路或者非定制电路资源,从而提升定制电路或者非定制电路实现的吞吐量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明的量化方法流程图;
图2为本发明的量化后卷积神经网络的前向计算数据流示意图;
图3为本发明的浮点数功能模块的全流水结构示意图;
图4为本发明的卷积计算示意图;
图5为本发明的DSP端口的输入形式示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以下结合实施例对本发明的特征和性能作进一步的详细描述。
实施例1
针对现有技术中需要重新训练来保证准确率,量化需要使用16比特浮点数或者8比特定点数来保证准确率,本申请的量化方法实现使用低精度浮点数表现形式MaEb,在不需要重新训练的情况下,可以找到最优的数据表示形式,只需要4比特或者5比特的尾数,保证top-1/top-5的准确率丢失可以忽略不计,top-1/top-5准确率的丢失量分别在0.5%/0.3%以内,具体如下:
基于低精度浮点数的CNN量化方法,包括在每一个卷积神经网络的每一层进行的如下步骤:
步骤1:定义所述网络的低精度浮点数表现形式MaEb,所述低精度浮点数表现形式包括符号位、尾数和指数,其中,a、b均为正整数;
步骤2:在优化低精度浮点数表示形式过程中,同时更改比例因子、更改a和b的组合和计算所述网络每一层量化前后的权重和激活值均方差,根据量化前后的权重和激活值均方差最小值获取最优的低精度浮点数表示形式和所述表示形式下的最优比例因子;
步骤3:基于上述低精度浮点数表示形式和最优比例因子,完成单精度浮点数量化为低精度浮点数。
优选地,所述a、b满足0<a+b≤31,当a=4或者5时,用此低精度浮点数表示形式量化的网络即为最优结果。
步骤1中低精度浮点数表现形式的十进制值计算如下:
Figure BDA0002222808360000071
其中,Vdec表示低精度浮点数表现形式的十进制值,S,M和E分别表示符号位,尾数和指数,均为无符号的值,Eb表示指数的偏置,用于为指数引入正数和负数,表示为:
其中,DWE表示指数的位宽,尾数和指数的位宽均为非固定的。
步骤2包括如下步骤:
步骤2.1:将单精度浮点数乘以比例因子映射至低精度浮点数能够表示的动态范围内,将映射后的数四舍五入成最接近的低精度浮点数,并将超过动态范围的数据保留成最大值或者最小值,计算公式如下:
Figure BDA0002222808360000073
Figure BDA0002222808360000074
其中,Vlfp和Vfp32表示由低精度浮点数和单精度浮点数形式表示的十进制的值,MINlfp和MAXlfp表示低精度浮点数能够表示的最小值和最大值,sf表示比例因子,quan(x,MIN,MAX)表示对任意浮点数x在范围MIN到MAX之间进行量化,round(x)表示表示对任意浮点数x进行四舍五入;
步骤2.2:计算量化前后权重和激活值均方差MSE,所述量化前后的权重和激活值均方差表示量化误差,计算如下:
Figure BDA0002222808360000075
其中,N表示权重和激活值的数量;
步骤2.3:更改比例因子,重复步骤2.1和2.2;
步骤2.4:更改低精度浮点数表示形式即MaEb中a和b的组合,重复步骤2.1、2.2和2.3;
步骤2.5:将权重和激活值均方差最小值对应的低精度表示形式和比例因子作为最优的结果。
优选地,所述低精度浮点数表现形式的十进制值在当E=0时的非规约数时,其计算为:
Figure BDA0002222808360000081
如图1所示,针对每个卷积神经网络,为其寻找最优的低精度浮点数数据表示形式(不同的尾数和指数的位宽组合),从而保证量化误差最小;CNN的量化过程中,针对每一层可以选择量化或者不量化,同时在量化时,每一层的低精度浮点数表示形式可以不同,即a和b只需满足0<a+b<=31即可。具体来说,针对每一个需要量化的卷积神经网络,优化低精度浮点数表示形式的过程中(优化可采用遍历或者其他搜索方式),为卷积神经网络每一层的权重和激活值,寻找该低精度浮点数表示形式下的最优的比例因子,保证量化前后权重和激活值的均方差最小;通过本申请的量化方法实现不需要重新训练的情况下保证准确率的原因在于:对于量化前的卷积神经网络,它本身有一个准确率的结果,通常把这个结果定义为标准值。本申请目的是在保证这个标准的准确率的前提下,量化卷积神经网络;量化前网络的权重和激活值,这些数据更接近于一个高斯分布,伽马分布等非均匀分布,即这些值集中出现在某一个范围内,而在这个范围外出现的概率较小;量化权重和激活值,就是用更低精度的数去近似表示原来的数据,本申请提出的用低精度浮点数去做量化,低精度浮点数的特点是在零附近能够表示的数更多,而往两边则能够表示的数更少即低精度浮点数的特点更接近于量化前权重和激活值的分布。将量化前后的数据进行对比,当量化后的数据越接近于量化前的数据,则该量化后的网络会带来的准确率的丢失会更小。而均方差就能够表示量化后的数据与量化前的数据之间的差别,均方差越小,代表量化后的数据更接近于量化前的数据。所以能够说明,均方差最小的情况,能够保证准确率丢失最小从而实现在不需要重新训练的情况下。通过本申请的量化方法可以找到最优的数据表示形式,只需要4比特或者5比特的尾数,保证top-1/top-5的准确率丢失可以忽略不计,top-1/top-5准确率的丢失量分别在0.5%/0.3%以内。
实施例2
基于实施例1,本实施例提供一种卷积层前向计算方法,包括在卷积神经网络中进行如下步骤:
步骤a:将单精度浮点数的输入数据量化为低精度浮点数表现形式的MaEb的浮点数,所述输入数据包括输入激活值、权重和偏置,a、b均为正整数;
步骤b:将MaEb的浮点数分发至浮点数功能模块中并行的Nm个低精度浮点数乘法器进行前向计算得到全精度浮点数乘积,其中,Nm表示浮点数功能模块中一个处理单元PE低精度浮点数乘法器的数量;
步骤c:将所述全精度浮点数乘积传输至数据转换模块获取无精度损失的定点数结果;
步骤b:将所述定点数结果分配至并行的4T个定点数加法树后,将定点数加法树结果和输入数据中的偏置经过后处理单元依次进行累加、池化和激活完成卷积层计算,T为正整数。
如图2所示,所述步骤a、b、c包括如下步骤:
原始图片、权重通过低精度浮点数表现形式量化为MaEb的浮点数,偏置量化为16比特的定点数,将上述量化后的原始图片、权重和偏置输入所述网络并存储至外部存储器,其中,0<a+b≤31,a、b均为正整数;
将量化后的图片和权重进行低精度浮点数乘法运算得到(2a+b+4)比特浮点数后,将上述(2a+b+4)比特浮点数转换为(2a+2(b+1)-1)比特定点数后进行累加计算,将上述累加计算结果与所述偏置量化的16比特的定点数相加得到32比特定点数;
将上述32比特定点数转换为MaEb的浮点数作为所述网络下一层的输入,并保存至外部存储器。
如图1所示,所述原始图片、权重量化为MaEb的浮点数如下包括步骤:
定义所述网络的低精度浮点数表现形式MaEb,所述低精度浮点数表现形式包括符号位、尾数和指数,其中,0<a+b≤31,a、b均为正整数;
优化低精度浮点数表示形式过程中,同时更改比例因子、更改a和b的组合和计算所述网络每一层量化前后的权重和激活值均方差,根据量化前后的权重和激活值均方差最小值获取最优的低精度浮点数表示形式和所述表示形式下的最优比例因子;
基于上述低精度浮点数表示形式和最优比例因子,完成将原始图片、权重的单精度浮点数量化为以低精度浮点数表现形式MaEb表示的浮点数。
如图3、4、5所示,所述MaEb的浮点数进行低精度浮点数乘法运算包括如下步骤:
将MaEb的浮点数拆分为一个a比特的乘加器和一个b比特的加法器,计算公式如下:
Figure BDA0002222808360000091
其中,Mx,My,Ex,Ey分别表示X和Y的尾数与指数,式子0.Mx×0.My+(1.Mx+0.My)由一个a比特的无符号定点数乘加器实现,式子Ex+Ey可以由一个b比特的无符号定点数加法器实现;
基于DSP实现的乘加器P=A×B+C,在输入端口添加的空白比特实现多个a比特的乘加器,其中,A、B、C表示DSP的三个输入端,所述A、B、C比特位宽最大取值分别为25、18、48。
量化后神经网络的前向计算数据流如图1所示。为清晰的解释该数据流,在图1中使用M4E3的低精度浮点数表示形式作为例子即a为4,b为3,列出数据流中每一个步骤的数据位宽;所有的输入图片,权重以及偏置都是用单精度浮点数表示的。首先,原始图片和权重都用M4E3的数据表示形式进行量化,而偏置则是量化成16比特定点数,为了减小量化误差,将量化后的输入图片,权重以及偏置存储在外部存储器中。其次,针对量化后的图片和权重,进行低精度浮点数乘法运算,其乘积保存为15比特的浮点数M10E4。随后,15比特浮点数乘积被转化为23比特的定点数,结合偏置量化的16比特定点数进行累加计算,累加的最后结果保存为32比特定点数。上述操作有两个优点:1、在整个过程中不会有任何精度损失,从而保证最后推理结果的准确率;2、将浮点数累加转化为定点数累加,可以节省大量定制电路或者非定制电路资源,从而提升定制电路或者非定制电路实现的吞吐量。最后,在被另一个CNN层使用前,最终的输出结果会被重新转化为M4E3的浮点数,并且保存到外部存储器,节约存储空间。在整个数据流中,只有最后的数据转化步骤会带来比特位宽的减少和精度损失。而这部分的精度损失并不会给最后的精度带来影响,根据实验可验证。
每个PE中的乘法器,都是针对低精度浮点数设计的。根据低精度浮点数的表示形式,两个低精度浮点数的乘法可以分成三个部分:1)符号位异或;2)尾数相乘;3)指数相加。以MaEb的形式为例。我们需要一个a比特的无符号数乘加器和一个b比特的无符号数加法器来实现这两个数的乘法。尽管在考虑到第一个隐藏比特后(规约数是1,非规约数是0),尾数的相乘应该使用(a+1)比特的乘法器,本申请将其设计为a比特的乘加器,这是为了提升DSP的使用效率。与此同时,指数偏置并没有包含在加法中,这是因为本申请的实施例中所有数据的表示形式都是一样的,那么指数偏置也是一样的,这样可以在最后一步处理,从而简化加法器的设计。
如图4所示,在卷积计算过程中,输出通道每一个像素点由下式计算得到:
Figure BDA0002222808360000101
其中,IC表示输入通道的数量,KW和KH表示卷积核的宽和高,x,y,w和b分别表示输入激活值,输出激活值,权重和偏置。由于用一个DSP实现4个低精度浮点数乘法,并按以下方式计算:(a+b)×(c+d)=ac+bc+ad+bd,因此,每个PE都是设计成可以同时计算两个输出通道,并且在每个输出通道上,可以同时计算两个卷积结果,如图4所示。具体来说,在第一个周期,在IC个输入通道上的第一个像素点和对应的第一个卷积核的值被送入PE进行计算,在图4中分别标记为a和c。为了遵从四个乘法器中的并行计算模式,在IC个输入通道上的第二个像素点(图4中标记为b)和用于计算另一个输出通道的对应的卷积核的值(图4中标记为d)同样被送入到PE中进行计算。这样,a和b是重复使用的,可以计算出相同输出通道上不同位置的值,而c和d是共用的,可以计算出不同输出通道上的值。在第二个周期,按照同样的方式,输入第二个位置的数据。这样,在KW×KH个周期后,一个PE就可以计算出四个卷积结果。
在本申请中,每个PE中使用Nm个乘法器,所以IC的值设计为Nm/4,因此,在每个PE内并行计算Nm/4个输入通道。在使用对应的权重和偏置过后,并行计算两个输出通道,每个输出通道上的两个像素点。当输入通道的数量大于Nm/4时,或者每个输出通道上的数量大于2时或者输出通道的数量大于2时,需要多轮计算来完成一次卷积运算。由于PE和CNN卷积层的规模,很多时候CNN卷积层并不能在PE上通过一次计算得到最后结果,计算会将卷积层分成多个部分,先将其中一部分放在PE上计算,这个计算结果就是中间结果。这个中间结果就会存储在OFMB中,等到计算下一个部分的时候,从OFMB中取出中间结果进行计算。为了能够提升并行度,本设计中使用Np个PE在不同的PE之间,可以送入不同输入特征图上面的像素点和不同的权重来进行不同维度的并行计算。举例来说,所有的PE可以共享相同的输入特征图和使用不同的权重,从而并行计算不同的输出通道。或者所有的PE共享相同的参数和使用不同的输入特征图来并行计算输入通道。参数Nm和Np是考虑CNN网络结构,吞吐量,带宽需求来决定。
根据PE中的计算模式,IFMB和WB都设置为每个周期分别向每个PE提供Nm/2个输入激活值和权重,同时OFMB每个周期需要保存四个输出激活值。尽管在输出特征图上的每个像素点最后都会保存成低精度浮点数形式,但是在中间结果时,保存成16bit以减少精度损失。这样,对于每个PE来说,OFMB的比特位宽需要设置为64比特。由于输入激活值或权重在不同的并行计算模式下,可以被不同的PE共享,定义Pifm和Pofm(Pifm×Pofm=Np)这两个参数来分别表示用于并行计算输入特征图和输出特征图的PE的数量。因此,Pifm个PE会共享相同的权重,Pofm个PE会共享相同的输入激活值。对于IFMB,WB,和OFMB的位宽,则需要分别设置为:和64Np,其中,BW代表低精度浮点数的位宽。参数Nm,Pifm和Pofm是均衡考虑吞吐量,带宽需求,资源使用来决定的。这三个片上缓存的大小也是综合考虑吞吐量和资源使用决定的。在处理器设计中,均衡考虑吞吐量,带宽要求,资源使用,可扩展性,从而确定缓存大小为能够保证隐藏DMA传输时间即可。在非定制电路实现中,比如FPGA,用块存储(block RAM)来实现IFMB和OFMB,用分布式存储(distributed RAM)来实现WB,这是因为分布式存储可以提供更大的贷款。在CNN推理过程中,只有当所有的输入特征图都被使用,或者所有的权重都被使用了,或者OFMB满了,才会访问外部存储器来读取新的输入特征图或者权重或者保存输出特征图。
一个DSP中实现4个乘法器的具体实现方式。在定制电路或者非定制电路实现中,使用M4E3这种数据表示形式。为了能够更清楚的解释在一个DSP中实现四个低精度浮点数乘法器,使用两个规约数的乘法作为例子。两个数的乘积的尾数可以表示为:
Figure BDA0002222808360000121
其中Mx,My,Ex,Ey分别表示X和Y的尾数与指数,式子0.Mx×0.My+(1.Mx+0.My)可以由一个4-bit的无符号定点数乘加器实现,式子Ex+Ey可以由一个3-bit的无符号定点数加法器实现。由于Xilinx 7系列FPGA中的DSP可以实现一个乘加器P=A×B+C(其中A,B,C的最大比特位宽分别为25,18和48),在每个输入端口中添加空白比特,从而充分使用DSP来实现四个4-比特的乘加器,DSP每一个端口的具体输入形式如图5所示。在计算过程中,小数点位置设定在最右边,也就是说0.Mx和0.My转化成4比特的正数,1.Mx+0.My转化为10比特的正数以确保在计算过程中不会出现重叠的情况。以这样一种方式,在使用少量的查找表(LUT)和少量的触发器(FF)来实现指数以及式子1.Mx+0.My的加法的情况下,可以使用一个DSP来实现4个M4E3数据表示形式的数的乘法,从而大大增加单个DSP的吞吐量。
综上,本实施例基于低精度浮点数表示形式和最优比例因子,将原始图片、权重的单精度浮点数量化为以低精度浮点数表现形式MaEb表示的浮点数,所述MaEb的浮点数进行低精度浮点数乘法运算包括将MaEb的浮点数拆分为一个a比特的乘加器和一个b比特的加法器;基于DSP实现的乘加器P=A×B+C,在输入端口添加的空白比特实现a比特的乘加器。比如使用一个4比特的乘加器和一个3比特的加法器的方式实现一个8比特的低精度浮点数的乘法运算,并且在一个DSP内实现4个这种方式的低精度浮点数乘法运算,相当于在一个DSP内部实现四个卷积运算中的乘法运算,比起现有最多只能用一个DSP实现两个乘法运算,实现在保证准确率的情况下,大大提升定制电路或者非定制电路上加速的性能;吞吐量相比于Intel i9 CPU提升了64.5倍,相比于现有的FPGA加速器提升了1.5倍;针对VGG16和YOLO卷积神经网络而言,本申请与现有的六个FPGA加速器相比,在吞吐量方面,分别提升了3.5倍和27.5倍,在单个DSP吞吐量方面,分别提升了4.1倍和5倍;同时,基于量化方法进行卷积层的前向计算时,将累加结果定点数转换为浮点数,利于节省存储资源;将浮点数累加转换为定点数累加,可以节省大量定制电路或者非定制电路资源,从而更加利于提升定制电路或者非定制电路实现的吞吐量。
实施例3
基于实施例1或者2,本实施例提供一种装置,如图3所示,包括定制电路的浮点数功能模块或者非定制电路的浮点数功能模块;所述浮点数功能模块,用于将输入数据分发至不同的处理单元PE并行计算通过低精度浮点数表现形式量化为MaEb浮点数的点积,完成卷积层的前向计算;
所述浮点数功能模块包括n个并行处理单元PE,所述处理单元PE通过DSP实现Nm个MaEb浮点数乘法器,其中,n为正整数,a、b均为正整数,Nm表示一个处理单元PE低精度浮点数乘法器的数量。
所述每个处理单元PE包括4T个并行支路,所述每个并行支路包含Nm/(4T)个乘法器、Nm/(4T)个数据转换模块、1个定点数加法树和1个后处理单元PPM,所述乘法器、数据转换模块、定点数加法树、后处理单元依次连接,其中,T为正整数。
a、b满足0<a+b≤31,当a=4或者5时,用此低精度浮点数表示形式量化的网络即为最优结果。
定制电路包括ASIC或者SOC,所述非定制电路包括FPGA。
a、b取值4、3时,MaEb为M4E3,T为1,Nm为8,每个处理单元PE包括4个并行支路,所述每个并行支路包含2个乘法器、2个数据转换模块、1个定点数加法树和1个后处理单元PPM。
将MaEb的浮点数分发至浮点数功能模块中并行的Nm个低精度浮点数乘法器进行前向计算得到全精度浮点数乘积,其中,Nm表示浮点数功能模块中一个处理单元PE低精度浮点数乘法器的数量;将所述全精度浮点数乘积传输至数据转换模块获取无精度损失的定点数结果;将所述定点数结果分配至并行的四个定点数加法树后,将定点数加法树结果和输入数据中的偏置经过后处理单元依次进行累加、池化和激活完成卷积层计算。
综上,基于MaEb浮点数实现不进行重新训练即可保证量化后卷积神经网络的准确率,所述处理单元PE通过DSP实现Nm个MaEb浮点数乘法器;实现在保证准确率的情况下,大大提升定制电路或者非定制电路上加速的性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.基于低精度浮点数的CNN量化方法,其特征在于:包括在卷积神经网络进行的如下步骤:
步骤1:定义所述网络的低精度浮点数表现形式MaEb,所述低精度浮点数表现形式包括符号位、尾数和指数,其中,a、b均为正整数;
步骤2:在优化低精度浮点数表示形式过程中,同时更改比例因子、更改a和b的组合和计算所述网络每一层量化前后的权重和激活值均方差,根据量化前后的权重和激活值均方差最小值获取最优的低精度浮点数表示形式和所述表示形式下的最优比例因子;
步骤3:基于上述低精度浮点数表示形式和最优比例因子,完成单精度浮点数量化为低精度浮点数。
2.根据权利要求1所述的基于低精度浮点数的CNN量化方法,其特征在于:所述a、b满足0<a+b≤31,当a=4或者5时,用此低精度浮点数表示形式量化的网络即为最优结果。
3.根据权利要求1所述的基于低精度浮点数的CNN量化方法,其特征在于:所述步骤1中低精度浮点数表现形式的十进制值计算如下:
Figure FDA0002222808350000011
其中,Vdec表示低精度浮点数表现形式的十进制值,S,M和E分别表示符号位,尾数和指数,均为无符号的值,Eb表示指数的偏置,用于为指数引入正数和负数,表示为:
Figure FDA0002222808350000012
其中,DWE表示指数的位宽,尾数和指数的位宽均为非固定的。
4.根据权利要求1所述的基于低精度浮点数数据表现形式的CNN量化方法,其特征在于:所述步骤2包括如下步骤:
步骤2.1:将单精度浮点数乘以比例因子映射至低精度浮点数能够表示的动态范围内,将映射后的数四含五入成最接近的低精度浮点数,并将超过动态范围的数据保留成最大值或者最小值,计算公式如下:
Vlfp=quan(Vfp32×2sf,MINlfp,MAXlfp)
Figure FDA0002222808350000013
其中,Vlfp和Vfp32表示由低精度浮点数和单精度浮点数形式表示的十进制的值,MINlfp和MAXlfp表示低精度浮点数能够表示的最小值和最大值,sf表示比例因子,quan(x,MIN,MAX)表示对任意浮点数x在范围MIN到MAX之间进行量化,round(x)表示表示对任意浮点数x进行四含五入;
步骤2.2:计算量化前后权重和激活值均方差MSE,所述量化前后的权重和激活值均方差表示量化误差,计算如下:
Figure FDA0002222808350000021
其中,N表示权重和激活值的数量;
步骤2.3:更改比例因子,重复步骤2.1和2.2;
步骤2.4:更改低精度浮点数表示形式即MaEb中a和b的组合,重复步骤2.1、2.2和2.3;
步骤2.5:将权重和激活值均方差最小值对应的低精度表示形式和比例因子作为最优的结果。
5.根据权利要求2所述的基于低精度浮点数的CNN量化方法,其特征在于:所述低精度浮点数表现形式的十进制值在当E=0时的非规约数时,其计算为:
6.一种基于权利要求1所述量化方法的卷积层前向计算方法,其特征在于:包括在卷积神经网络中进行如下步骤:
步骤a:将单精度浮点数的输入数据量化为低精度浮点数表现形式的MaEb的浮点数,所述输入数据包括输入激活值、权重和偏置,其中,a、b均为正整数;
步骤b:将MaEb的浮点数分发至浮点数功能模块中并行的Nm个低精度浮点数乘法器进行前向计算得到全精度浮点数乘积,其中,Nm表示浮点数功能模块中一个处理单元PE低精度浮点数乘法器的数量;
步骤c:将所述全精度浮点数乘积传输至数据转换模块获取无精度损失的定点数结果;
步骤d:将所述定点数结果分配至并行的4T个定点数加法树后,将定点数加法树结果和输入数据中的偏置经过后处理单元依次进行累加、池化和激活完成卷积层计算,其中,T为正整数。
7.根据权利要求6所述的卷积层前向计算方法,其特征在于:所述步骤a、b、c包括如下步骤:
原始图片、权重通过低精度浮点数表现形式量化为MaEb的浮点数,偏置量化为16比特的定点数,将上述量化后的原始图片、权重和偏置输入所述网络并存储至外部存储器,其中,0<a+b≤31;
将量化后的图片和权重进行低精度浮点数乘法运算得到(2a+b+4)比特浮点数后,将上述(2a+b+4)比特浮点数转换为(2a+2(b+1)-1)比特定点数后进行累加计算,将上述累加计算结果与所述偏置量化的16比特的定点数相加得到32比特定点数;
将上述32比特定点数转换为MaEb的浮点数作为所述网络下一层的输入,并保存至外部存储器。
8.根据权利要求7所述的卷积层前向计算方法,其特征在于:所述原始图片、权重量化为MaEb的浮点数如下包括步骤:
定义所述网络的低精度浮点数表现形式MaEb,所述低精度浮点数表现形式包括符号位、尾数和指数;
在优化低精度浮点数表示形式过程中,同时更改比例因子、更改a和b的组合和计算所述网络每一层量化前后的权重和激活值均方差,根据量化前后的权重和激活值均方差最小值获取最优的低精度浮点数表示形式和所述表示形式下的最优比例因子;
基于上述低精度浮点数表示形式和最优比例因子,完成将原始图片、权重的单精度浮点数量化为以低精度浮点数表现形式MaEb表示的浮点数。
9.根据权利要求8所述的卷积层前向计算方法,其特征在于:当a=4或者5时,用此低精度浮点数表示形式量化的网络即为最优结果。
10.根据权利要求7所述的卷积层前向计算方法,其特征在于:所述MaEb的浮点数进行低精度浮点数乘法运算包括如下步骤:
将MaEb的浮点数拆分为一个a比特的乘加器和一个b比特的加法器,计算公式如下:
Figure FDA0002222808350000031
其中,Mx,My,Ex,Ey分别表示X和Y的尾数与指数,式子0.Mx×0.My+(1.Mx+0.My)由一个a比特的无符号定点数乘加器实现,式子Ex+Ey可以由一个b比特的无符号定点数加法器实现;
基于DSP实现的乘加器P=A×B+C,在输入端口添加的空白比特实现若干个a比特的乘加器,其中,A、B、C表示DSP的三个输入端,所述A、B、C比特位宽最大取值分别为25、18、48。
11.一种基于权利要求1所述量化方法的装置,其特征在于:包括定制电路的浮点数功能模块或者非定制电路的浮点数功能模块;所述浮点数功能模块,用于将输入数据分发至不同的处理单元PE并行计算通过低精度浮点数表现形式量化为MaEb浮点数的点积,完成卷积层的前向计算;
所述浮点数功能模块包括n个并行处理单元PE,所述处理单元PE通过DSP实现Nm个MaEb浮点数乘法器,其中,n为正整数,a、b均为正整数,Nm表示一个处理单元PE低精度浮点数乘法器的数量。
12.根据权利要求11所述的装置,其特征在于:所述每个处理单元PE包括4T个并行支路,所述每个并行支路包含Nm/(4T)个乘法器、Nm/(4T)个数据转换模块、1个定点数加法树和1个后处理单元PPM,所述乘法器、数据转换模块、定点数加法树、后处理单元依次连接,其中,T为正整数。
13.根据权利要求11所述的装置,其特征在于:所述a、b满足0<a+b≤31,当a=4或者5时,用此低精度浮点数表示形式量化的网络即为最优结果。
14.根据权利要求11所述的装置,其特征在于:所述定制电路包括ASIC或者SOC,所述非定制电路包括FPGA。
CN201910940682.7A 2019-09-30 2019-09-30 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置 Active CN110852434B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910940682.7A CN110852434B (zh) 2019-09-30 2019-09-30 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910940682.7A CN110852434B (zh) 2019-09-30 2019-09-30 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置

Publications (2)

Publication Number Publication Date
CN110852434A true CN110852434A (zh) 2020-02-28
CN110852434B CN110852434B (zh) 2022-09-23

Family

ID=69596223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910940682.7A Active CN110852434B (zh) 2019-09-30 2019-09-30 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置

Country Status (1)

Country Link
CN (1) CN110852434B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111931917A (zh) * 2020-08-20 2020-11-13 浙江大华技术股份有限公司 前向计算的实现方法及装置、存储介质、电子装置
CN112598078A (zh) * 2020-12-28 2021-04-02 北京达佳互联信息技术有限公司 混合精度训练方法、装置、电子设备及存储介质
CN112712164A (zh) * 2020-12-30 2021-04-27 上海熠知电子科技有限公司 一种神经网络的非均匀量化方法
CN112926570A (zh) * 2021-03-26 2021-06-08 上海交通大学 一种自适应比特网络量化方法、系统及图像处理方法
CN113408715A (zh) * 2020-03-17 2021-09-17 杭州海康威视数字技术股份有限公司 一种神经网络的定点化方法、装置
CN113516172A (zh) * 2021-05-19 2021-10-19 电子科技大学 基于随机计算贝叶斯神经网络误差注入的图像分类方法
CN114463592A (zh) * 2022-04-01 2022-05-10 深圳鲲云信息科技有限公司 一种应用于depthwise卷积的量化计算方法和装置
CN114968170A (zh) * 2022-06-24 2022-08-30 北京百度网讯科技有限公司 浮点数的定和生成方法、相关装置及计算机程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570559A (zh) * 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
CN107239829A (zh) * 2016-08-12 2017-10-10 北京深鉴科技有限公司 一种优化人工神经网络的方法
CN108133262A (zh) * 2016-12-01 2018-06-08 上海兆芯集成电路有限公司 具有用于执行高效3维卷积的存储器布局的神经网络单元
CN108647184A (zh) * 2018-05-10 2018-10-12 杭州雄迈集成电路技术有限公司 一种高精度动态比特位卷积乘法快速实现方法
US20180307980A1 (en) * 2017-04-24 2018-10-25 Intel Corporation Specialized fixed function hardware for efficient convolution
CN109800877A (zh) * 2019-02-20 2019-05-24 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110058883A (zh) * 2019-03-14 2019-07-26 成都恒创新星科技有限公司 一种基于opu的cnn加速方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570559A (zh) * 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
CN107239829A (zh) * 2016-08-12 2017-10-10 北京深鉴科技有限公司 一种优化人工神经网络的方法
CN108133262A (zh) * 2016-12-01 2018-06-08 上海兆芯集成电路有限公司 具有用于执行高效3维卷积的存储器布局的神经网络单元
US20180307980A1 (en) * 2017-04-24 2018-10-25 Intel Corporation Specialized fixed function hardware for efficient convolution
CN108734636A (zh) * 2017-04-24 2018-11-02 英特尔公司 用于高效卷积的专用固定功能硬件
CN108647184A (zh) * 2018-05-10 2018-10-12 杭州雄迈集成电路技术有限公司 一种高精度动态比特位卷积乘法快速实现方法
CN109800877A (zh) * 2019-02-20 2019-05-24 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110058883A (zh) * 2019-03-14 2019-07-26 成都恒创新星科技有限公司 一种基于opu的cnn加速方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴焕等: "《基于Caffe加速卷积神经网络前向推理》", 《计算机工程与设计》 *
王慧丽等: "《基于通用向量DSP的深度学习硬件加速技术》", 《中国科学》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113408715A (zh) * 2020-03-17 2021-09-17 杭州海康威视数字技术股份有限公司 一种神经网络的定点化方法、装置
WO2021185125A1 (zh) * 2020-03-17 2021-09-23 杭州海康威视数字技术股份有限公司 一种神经网络的定点化方法、装置
CN113408715B (zh) * 2020-03-17 2024-05-28 杭州海康威视数字技术股份有限公司 一种神经网络的定点化方法、装置
CN111931917A (zh) * 2020-08-20 2020-11-13 浙江大华技术股份有限公司 前向计算的实现方法及装置、存储介质、电子装置
CN112598078A (zh) * 2020-12-28 2021-04-02 北京达佳互联信息技术有限公司 混合精度训练方法、装置、电子设备及存储介质
CN112598078B (zh) * 2020-12-28 2024-04-19 北京达佳互联信息技术有限公司 混合精度训练方法、装置、电子设备及存储介质
CN112712164B (zh) * 2020-12-30 2022-08-26 上海熠知电子科技有限公司 一种神经网络的非均匀量化方法
CN112712164A (zh) * 2020-12-30 2021-04-27 上海熠知电子科技有限公司 一种神经网络的非均匀量化方法
CN112926570A (zh) * 2021-03-26 2021-06-08 上海交通大学 一种自适应比特网络量化方法、系统及图像处理方法
CN113516172B (zh) * 2021-05-19 2023-05-12 电子科技大学 基于随机计算贝叶斯神经网络误差注入的图像分类方法
CN113516172A (zh) * 2021-05-19 2021-10-19 电子科技大学 基于随机计算贝叶斯神经网络误差注入的图像分类方法
CN114463592B (zh) * 2022-04-01 2022-07-22 深圳鲲云信息科技有限公司 一种应用于depthwise卷积的量化计算方法和装置
CN114463592A (zh) * 2022-04-01 2022-05-10 深圳鲲云信息科技有限公司 一种应用于depthwise卷积的量化计算方法和装置
CN114968170A (zh) * 2022-06-24 2022-08-30 北京百度网讯科技有限公司 浮点数的定和生成方法、相关装置及计算机程序产品
CN114968170B (zh) * 2022-06-24 2024-05-14 北京百度网讯科技有限公司 浮点数的定和生成方法、相关装置及计算机程序产品

Also Published As

Publication number Publication date
CN110852434B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
CN110852416B (zh) 基于低精度浮点数数据表现形式的cnn硬件加速计算方法及系统
CN110852434B (zh) 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置
JP7476175B2 (ja) 乗算累積回路
Ko et al. Design and application of faithfully rounded and truncated multipliers with combined deletion, reduction, truncation, and rounding
US20200401873A1 (en) Hardware architecture and processing method for neural network activation function
WO2021051463A1 (en) Residual quantization of bit-shift weights in artificial neural network
CN109165006B (zh) Softmax函数的设计优化及硬件实现方法及系统
CN111240746B (zh) 一种浮点数据反量化及量化的方法和设备
CN110888623B (zh) 数据转换方法、乘法器、加法器、终端设备及存储介质
CN114418057A (zh) 卷积神经网络的运算方法及相关设备
CN112434801A (zh) 一种按照比特精度进行权重拆分的卷积运算加速方法
CN111091183B (zh) 一种神经网络加速系统和方法
CN107220025B (zh) 处理乘加运算的装置和处理乘加运算的方法
WO2022170811A1 (zh) 一种适用于混合精度神经网络的定点乘加运算单元及方法
CN113419779B (zh) 可扩展多精度数据流水线系统和方法
CN111492369A (zh) 人工神经网络中移位权重的残差量化
WO2021039164A1 (ja) 情報処理装置、情報処理システム及び情報処理方法
CN114860193A (zh) 一种用于计算Power函数的硬件运算电路及数据处理方法
JP7247418B2 (ja) 乗算のための計算ユニット、方法及びコンピュータプログラム
KR20230076641A (ko) 부동-소수점 연산을 위한 장치 및 방법
Vinh et al. FPGA Implementation of Trigonometric Function Using Loop-Optimized Radix-4 CORDIC
CN118378000B (zh) 一种可配置的超越函数向量计算装置
WO2023004799A1 (zh) 电子设备及神经网络量化方法
CN107203491A (zh) 一种用于fpga的三角脉动阵列结构qr分解装置
US20220147315A1 (en) Low-power, low-memory multiply and accumulate (mac) unit

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200609

Address after: Room 305, building 9, meizhuang new village, 25 Yangzi Jiangbei Road, Weiyang District, Yangzhou City, Jiangsu Province 225000

Applicant after: Liang Lei

Address before: 610094 China (Sichuan) Free Trade Pilot Area, Chengdu City, Sichuan Province, 1402, Block 199, Tianfu Fourth Street, Chengdu High-tech Zone

Applicant before: Chengdu Star Innovation Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221219

Address after: 518017 1110, Building 3, Northwest Shenjiu Science and Technology Pioneer Park, the intersection of Taohua Road and Binglang Road, Fubao Community, Fubao Street, Shenzhen, Guangdong

Patentee after: Shenzhen biong core technology Co.,Ltd.

Address before: Room 305, Building 9, Meizhuang New Village, No. 25, Yangzijiang North Road, Weiyang District, Yangzhou City, Jiangsu Province, 225000

Patentee before: Liang Lei