CN114580628A - 一种神经网络卷积层的高效量化加速方法及硬件电路 - Google Patents

一种神经网络卷积层的高效量化加速方法及硬件电路 Download PDF

Info

Publication number
CN114580628A
CN114580628A CN202210244784.7A CN202210244784A CN114580628A CN 114580628 A CN114580628 A CN 114580628A CN 202210244784 A CN202210244784 A CN 202210244784A CN 114580628 A CN114580628 A CN 114580628A
Authority
CN
China
Prior art keywords
channel
calculation
quantization
point number
multiplication
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.)
Pending
Application number
CN202210244784.7A
Other languages
English (en)
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.)
Beijing Hongjingzhijia Technology Co ltd
Original Assignee
Beijing Hongjingzhijia 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 Beijing Hongjingzhijia Technology Co ltd filed Critical Beijing Hongjingzhijia Technology Co ltd
Priority to CN202210244784.7A priority Critical patent/CN114580628A/zh
Publication of CN114580628A publication Critical patent/CN114580628A/zh
Pending legal-status Critical Current

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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及人工智能计算技术领域,具体涉及一种神经网络卷积层的高效量化加速方法及硬件电路,分别在乘累加计算后设置逐通道乘法计算和逐通道加法计算,包括对输入特征和输出特征进行非对称量化,以确定放缩因子s1、s3和零点z1、z3的值;对每个权重进行独立量化,分别得到s2_k0、s2_k1、s2_k2…s2_ki…s2_kn‑1;硬件电路包括乘法器阵列MAC_Array单元、逐通道乘法计算单元和逐通道加法计算单元,三个单元为流水线操作,用于实现所述运算;本发明通过对卷积层的量化方法进行优化,减少了定点数的计算量,在加速器设计上简化了硬件电路,同时避免了因特征非对称性、权重kernel间动态范围差异大而导致的严重的量化精度损失。

Description

一种神经网络卷积层的高效量化加速方法及硬件电路
技术领域
本发明涉及人工智能计算技术领域,具体涉及一种神经网络卷积层的高效量化加速方法及硬件电路。
背景技术
近年来,人工智能发展迅速,作为人工智能的重要组成部分,深度神经网络在各行业的应用也日益广泛。在边缘端进行网络模型部署的时候,由于边缘端计算性能和功耗的制约,限制了边缘端的网络模型推理性能。因此,在保证计算精度不大幅损失的前提下,设计低位宽、高效率的神经网络加速器成为行业研究的重点。
目前业界主流的加速器都在8-bit的量化位宽上进行推理,将权重和特征有32-bit浮点数压缩为8-bit,相比于fp32或int16可以带来成倍的算力提升并成倍减少访存带宽压力。
量化是浮点数据转为定点数据的过程,分非对称量化(uint8)和对称量化(int8)。
发明内容
本发明提供针对网络加速的高效量化方法,通过对特征进行非对称量化,对权重进行对称量化,可以避免∑q1×z2项的在线计算,同时避免激活函数之后特征的输出范围不以0对称造成的量化损失。同时针对权重不同kernel之间数值范围差异较大问题,对每个权重kernel独立进行量化,避免统一量化造成的精度损失。
本发明为解决上述背景技术问题所采用的技术方案是:
本发明第一方面提供了一种神经网络卷积层的高效量化加速方法,包括计算原浮点数r、量化后定点数q、量化的放缩因子S以及零点z,所述零点z为原浮点数0对应的量化后的值,计算公式如下:
r=s(q-z);
Figure BDA0003544704540000011
Figure BDA0003544704540000012
Figure BDA0003544704540000013
原浮点数据计算可表示为:
r3=∑r1 x r2;其中,r1为输入特征浮点数,r2为权重浮点数,r3为输出特征浮点数,转化为定点运算公式如下:
s3(q3-z3)=∑s1(q1-z1)×s2(q2-z2)
公式转化:
Figure BDA0003544704540000021
展开如下:
Figure BDA0003544704540000022
分别在乘累加计算后设置逐通道乘法计算和逐通道加法计算,包括:
对输入特征和输出特征进行非对称量化,以确定放缩因子s1、s3和零点z1、z3的值;
对每个权重进行独立量化,分别得到s2_k0、s2_k1、s2_k2…s2_ki…s2_kn-1,编号ki代表第i个权重,共n个权重对应n个输出通道;则计算公式可简化为:
Figure BDA0003544704540000023
进行展开如下:
Figure BDA0003544704540000024
令:
Figure BDA0003544704540000025
Figure BDA0003544704540000026
则公式进一步简化为:
q3=M_ki∑(q1×q2_ki)+B_ki;
将输出特征的定点数计算转化为乘累加计算、逐通道乘法计算和逐通道加法计算三种运算。
作为本发明的一个技术方案,对每个权重进行独立量化采用对称量化。
本发明第二方面提供了一种硬件电路,包括乘法器阵列MAC_Array单元、逐通道乘法计算单元和逐通道加法计算单元,三个单元为流水线操作,用于实现所述三种运算。
本发明的上述技术方案具有如下有益的技术效果:
本发明通过对卷积层的量化方法进行优化,减少了定点数的计算量,在加速器设计上简化了硬件电路,同时避免了因特征非对称性、权重kernel间动态范围差异大而导致的严重的量化精度损失。
附图说明
图1为本发明量化结果示意图;
图2为本发明硬件电路中三个单元流水操作示意图;
图3为uint8量化示意图;
图4为激活函数导致特征非对称性的展示图;
图5为ResNet-18中首个卷积层中64个权重kernel的动态范围条形图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施例和附图,进一步阐述本发明,但下述实施例仅仅为本发明的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其它实施例,都属于本发明的保护范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
参考图3,对应如下公式进行;
r=s(q-z);
Figure BDA0003544704540000031
Figure BDA0003544704540000032
Figure BDA0003544704540000033
r为原浮点数,q为量化后定点数,s为量化的缩放因子scale,z为零点zero-point即原浮点数0对应的量化后的值。对称量化(int8)可以认为是非对称量化的特殊形式,即强制零点z=0。
量化后的模型在部署时,加速器中的运算全部以定点数运算完成,以卷积计算为例,原浮点数据计算可表示为:
r3=∑r1 x r2;其中,r1为输入特征浮点数,r2为权重浮点数,r3为输出特征浮点数,转化为定点运算公式如下:
s3(q3-z3)=∑s1(q1-z1)×s2(q2-z2)
公式转化:
Figure BDA0003544704540000034
展开如下:
Figure BDA0003544704540000035
从上述公式中可以看到,共有4个乘累加项。因为权重参数在训练后已知,量化参数也根据经验事先得到,而输入特征取决于输入图像,事先未知,则∑q2·z1和∑q2·z1可以通过离线计算完成,∑q1×q2和∑q1×z2需要加速器在线计算完成,其中第一项一般由加速器的乘累加模块完成,这也是加速器设计主要完成的任务;而第二项需要对输入特征进行累加,需要设计额外的计算单元来进行加速,给加速器设计带来负担。
部分设计将特征和权重均采用int8对称量化,即z1和z2均为0,虽然简化了计算过程,但是当前比较流行的激活函数如ReLU、leaky-ReLU等会对负数的动态范围进行压缩,而正数保持不变,会导致特征的数值范围不以0点对称,如果继续做对称量化会带来精度损失,如图4所示。
此外,权重kernel之间的动态范围存在很大差异,图5为ResNet-18中首个卷积层中64个权重kernel的动态范围(已合并BN层,动态范围取最大绝对值),kernel之间动态范围最大相差11.5倍。如果对所有的权重kernel统一做量化,会导致动态范围较小的kernel产生很大的精度损失,如图5所示。
由此,本发明提供针对网络加速的高效量化方法,通过对特征进行非对称量化,对权重进行对称量化,可以避免∑q1×z2项的在线计算,同时避免激活函数之后特征的输出范围不以0对称造成的量化损失。同时针对权重不同kernel之间数值范围差异较大问题,对每个权重kernel独立进行量化,避免统一量化造成的精度损失。
如图1所示,本发明第一方面提供的一种神经网络卷积层的高效量化加速方法,针对上述的量化方式,分别在乘累加计算后设置逐通道乘法计算和逐通道加法计算,包括:
对输入特征和输出特征进行非对称量化,以确定放缩因子s1、s3和零点z1、z3的值;
对每个权重进行独立量化,分别得到s2_k0、s2_k1、s2_k2…s2_ki…s2_kn-1,编号ki代表第i个权重,共n个权重对应n个输出通道;则计算公式可简化为:
Figure BDA0003544704540000041
进行展开如下:
Figure BDA0003544704540000042
令:
Figure BDA0003544704540000043
Figure BDA0003544704540000044
则公式进一步简化为:
q3=M_ki∑(q1×q2_ki)+B_ki;
将输出特征的定点数计算转化为乘累加计算、逐通道乘法计算和逐通道加法计算三种运算。
作为本发明的一个技术方案,对每个权重进行独立量化采用对称量化。
如图2所示,本发明第二方面提供的一种硬件电路,包括乘法器阵列MAC_Array单元(MAC Array Unit)、逐通道乘法计算单元(Per Channel Mult Unit)和逐通道加法计算单元(Per Channel Add Unit),三个单元为流水线操作,用于实现所述三种运算。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (3)

1.一种神经网络卷积层的高效量化加速方法,包括计算原浮点数r、量化后定点数q、量化的放缩因子S以及零点z,所述零点z为原浮点数0对应的量化后的值,计算公式如下:
r=s(q-z);
Figure FDA0003544704530000011
Figure FDA0003544704530000012
Figure FDA0003544704530000013
原浮点数据计算可表示为:
r3=∑r1 x r2;其中,r1为输入特征浮点数,r2为权重浮点数,r3为输出特征浮点数,转化为定点运算公式如下:
s3(q3-z3)=∑s1(q1-z1)×s2(q2-z2)
公式转化:
Figure FDA0003544704530000014
展开如下:
Figure FDA0003544704530000015
其特征在于,分别在乘累加计算后设置逐通道乘法计算和逐通道加法计算,包括:
对输入特征和输出特征进行非对称量化,以确定放缩因子s1、s3和零点z1、z3的值;
对每个权重进行独立量化,分别得到s2_k0、s2_k1、s2_k2…s2_ki…s2_kn-1,编号ki代表第i个权重,共n个权重对应n个输出通道;则计算公式可简化为:
Figure FDA0003544704530000016
进行展开如下:
Figure FDA0003544704530000017
令:
Figure FDA0003544704530000018
Figure FDA0003544704530000019
则公式进一步简化为:
q3=M_ki∑(q1×q2_ki)+B_ki;
将输出特征的定点数计算转化为乘累加计算、逐通道乘法计算和逐通道加法计算三种运算。
2.根据权利要求1所述的一种神经网络卷积层的高效量化加速方法,其特征在于,对每个权重进行独立量化采用对称量化。
3.一种硬件电路,包括乘法器阵列MAC_Array单元、逐通道乘法计算单元和逐通道加法计算单元,三个单元为流水线操作,用于实现所述三种运算。
CN202210244784.7A 2022-03-14 2022-03-14 一种神经网络卷积层的高效量化加速方法及硬件电路 Pending CN114580628A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210244784.7A CN114580628A (zh) 2022-03-14 2022-03-14 一种神经网络卷积层的高效量化加速方法及硬件电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210244784.7A CN114580628A (zh) 2022-03-14 2022-03-14 一种神经网络卷积层的高效量化加速方法及硬件电路

Publications (1)

Publication Number Publication Date
CN114580628A true CN114580628A (zh) 2022-06-03

Family

ID=81780356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210244784.7A Pending CN114580628A (zh) 2022-03-14 2022-03-14 一种神经网络卷积层的高效量化加速方法及硬件电路

Country Status (1)

Country Link
CN (1) CN114580628A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1114489A (zh) * 1994-03-24 1996-01-03 Dva公司 流水线
CN101038582A (zh) * 2007-04-02 2007-09-19 中国科学院光电技术研究所 用于自适应光学波前复原运算的脉动阵列处理方法及电路
CN101083462A (zh) * 2007-07-10 2007-12-05 上海广电(集团)有限公司中央研究院 一种最小均方差自适应滤波器及其实现方法
CN101162423A (zh) * 2007-11-20 2008-04-16 浙江大学 一种支持多模式的媒体增强流水线乘法单元设计方法
CN103138714A (zh) * 2013-03-19 2013-06-05 苏州朗宽电子技术有限公司 一种高性能的lms自适应滤波器的硬件实现
CN105589677A (zh) * 2014-11-17 2016-05-18 沈阳高精数控智能技术股份有限公司 一种基于fpga的脉动结构矩阵乘法器及其实现方法
CN107679620A (zh) * 2017-04-19 2018-02-09 北京深鉴科技有限公司 人工神经网络处理装置
CN108647184A (zh) * 2018-05-10 2018-10-12 杭州雄迈集成电路技术有限公司 一种高精度动态比特位卷积乘法快速实现方法
CN110383237A (zh) * 2017-02-28 2019-10-25 德克萨斯仪器股份有限公司 可重新配置的矩阵乘法器***和方法
CN110852416A (zh) * 2019-09-30 2020-02-28 成都恒创新星科技有限公司 基于低精度浮点数数据表现形式的cnn加速计算方法及***
CN112506568A (zh) * 2016-12-31 2021-03-16 英特尔公司 用于异构计算的***、方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1114489A (zh) * 1994-03-24 1996-01-03 Dva公司 流水线
CN101038582A (zh) * 2007-04-02 2007-09-19 中国科学院光电技术研究所 用于自适应光学波前复原运算的脉动阵列处理方法及电路
CN101083462A (zh) * 2007-07-10 2007-12-05 上海广电(集团)有限公司中央研究院 一种最小均方差自适应滤波器及其实现方法
CN101162423A (zh) * 2007-11-20 2008-04-16 浙江大学 一种支持多模式的媒体增强流水线乘法单元设计方法
CN103138714A (zh) * 2013-03-19 2013-06-05 苏州朗宽电子技术有限公司 一种高性能的lms自适应滤波器的硬件实现
CN105589677A (zh) * 2014-11-17 2016-05-18 沈阳高精数控智能技术股份有限公司 一种基于fpga的脉动结构矩阵乘法器及其实现方法
CN112506568A (zh) * 2016-12-31 2021-03-16 英特尔公司 用于异构计算的***、方法和装置
CN110383237A (zh) * 2017-02-28 2019-10-25 德克萨斯仪器股份有限公司 可重新配置的矩阵乘法器***和方法
CN107679620A (zh) * 2017-04-19 2018-02-09 北京深鉴科技有限公司 人工神经网络处理装置
CN108647184A (zh) * 2018-05-10 2018-10-12 杭州雄迈集成电路技术有限公司 一种高精度动态比特位卷积乘法快速实现方法
CN110852416A (zh) * 2019-09-30 2020-02-28 成都恒创新星科技有限公司 基于低精度浮点数数据表现形式的cnn加速计算方法及***

Similar Documents

Publication Publication Date Title
TWI701612B (zh) 用於神經網路中激勵函數的電路系統及其處理方法
CN111832719A (zh) 一种定点量化的卷积神经网络加速器计算电路
CN110688088B (zh) 一种面向神经网络的通用非线性激活函数计算装置和方法
CN110362292A (zh) 一种基于近似4-2压缩器的近似乘法运算方法和近似乘法器
Langroudi et al. Adaptive posit: Parameter aware numerical format for deep learning inference on the edge
CN113409773B (zh) 一种二值化神经网络语音唤醒方法及***
CN114115803B (zh) 一种基于部分积概率分析的近似浮点乘法器
CN113011571A (zh) 基于Transformer模型的INT8离线量化及整数推断方法
Yang et al. An approximate multiply-accumulate unit with low power and reduced area
CN111221499B (zh) 基于近似6-2和4-2压缩器的近似乘法器及计算方法
WO2022170811A1 (zh) 一种适用于混合精度神经网络的定点乘加运算单元及方法
CN110825346B (zh) 一种低逻辑复杂度的无符号近似乘法器
CN111428863A (zh) 一种基于近似乘法器的低功耗卷积运算电路
CN113837365A (zh) 实现sigmoid函数逼近的模型、FPGA电路及工作方法
CN117170623A (zh) 面向神经网络计算的多位宽重构近似张量乘加方法与***
Rajagopal et al. Accurate and efficient fixed point inference for deep neural networks
CN114580628A (zh) 一种神经网络卷积层的高效量化加速方法及硬件电路
Abdelhamid et al. Applying the residue number system to network inference
CN111401533A (zh) 一种神经网络专用计算阵列及其计算方法
CN113283591B (zh) 基于Winograd算法和近似乘法器的高效卷积实现方法及装置
Yadav et al. Low power approximate multipliers with truncated carry propagation for LSBs
Yang et al. A low-power approximate multiply-add unit
CN115965062A (zh) 一种bert中层归一化非线性函数的fpga加速方法
CN115033204A (zh) 一种精度与位宽可重构的高能效近似乘法器
CN211577939U (zh) 一种神经网络专用计算阵列

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20220603