CN114580628A - 一种神经网络卷积层的高效量化加速方法及硬件电路 - Google Patents
一种神经网络卷积层的高效量化加速方法及硬件电路 Download PDFInfo
- 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
Links
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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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);
原浮点数据计算可表示为:
r3=∑r1 x r2;其中,r1为输入特征浮点数,r2为权重浮点数,r3为输出特征浮点数,转化为定点运算公式如下:
s3(q3-z3)=∑s1(q1-z1)×s2(q2-z2)
公式转化:
分别在乘累加计算后设置逐通道乘法计算和逐通道加法计算,包括:
对输入特征和输出特征进行非对称量化,以确定放缩因子s1、s3和零点z1、z3的值;
对每个权重进行独立量化,分别得到s2_k0、s2_k1、s2_k2…s2_ki…s2_kn-1,编号ki代表第i个权重,共n个权重对应n个输出通道;则计算公式可简化为:
令:
则公式进一步简化为:
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);
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)
公式转化:
从上述公式中可以看到,共有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个输出通道;则计算公式可简化为:
令:
则公式进一步简化为:
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);
原浮点数据计算可表示为:
r3=∑r1 x r2;其中,r1为输入特征浮点数,r2为权重浮点数,r3为输出特征浮点数,转化为定点运算公式如下:
s3(q3-z3)=∑s1(q1-z1)×s2(q2-z2)
公式转化:
其特征在于,分别在乘累加计算后设置逐通道乘法计算和逐通道加法计算,包括:
对输入特征和输出特征进行非对称量化,以确定放缩因子s1、s3和零点z1、z3的值;
对每个权重进行独立量化,分别得到s2_k0、s2_k1、s2_k2…s2_ki…s2_kn-1,编号ki代表第i个权重,共n个权重对应n个输出通道;则计算公式可简化为:
令:
则公式进一步简化为:
q3=M_ki∑(q1×q2_ki)+B_ki;
将输出特征的定点数计算转化为乘累加计算、逐通道乘法计算和逐通道加法计算三种运算。
2.根据权利要求1所述的一种神经网络卷积层的高效量化加速方法,其特征在于,对每个权重进行独立量化采用对称量化。
3.一种硬件电路,包括乘法器阵列MAC_Array单元、逐通道乘法计算单元和逐通道加法计算单元,三个单元为流水线操作,用于实现所述三种运算。
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)
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 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
-
2022
- 2022-03-14 CN CN202210244784.7A patent/CN114580628A/zh active Pending
Patent Citations (11)
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压缩器的近似乘法运算方法和近似乘法器 | |
CN114115803B (zh) | 一种基于部分积概率分析的近似浮点乘法器 | |
Langroudi et al. | Adaptive posit: Parameter aware numerical format for deep learning inference on the edge | |
CN109542393A (zh) | 一种近似4-2压缩器及近似乘法器 | |
CN113409773B (zh) | 一种二值化神经网络语音唤醒方法及系统 | |
CN110188877A (zh) | 一种神经网络压缩方法与装置 | |
WO2022170811A1 (zh) | 一种适用于混合精度神经网络的定点乘加运算单元及方法 | |
CN111221499A (zh) | 基于近似6-2和4-2压缩器的近似乘法器及计算方法 | |
CN113837365A (zh) | 实现sigmoid函数逼近的模型、FPGA电路及工作方法 | |
CN117170623A (zh) | 面向神经网络计算的多位宽重构近似张量乘加方法与系统 | |
CN110555519B (zh) | 一种基于符号随机计算的低复杂度卷积神经网络架构 | |
CN114580628A (zh) | 一种神经网络卷积层的高效量化加速方法及硬件电路 | |
CN115033204B (zh) | 一种精度与位宽可重构的高能效近似乘法器 | |
WO2023078364A1 (zh) | 矩阵乘法的运算方法及装置 | |
CN113283591B (zh) | 基于Winograd算法和近似乘法器的高效卷积实现方法及装置 | |
Yang et al. | A low-power approximate multiply-add unit | |
CN115965062A (zh) | 一种bert中层归一化非线性函数的fpga加速方法 | |
Jo et al. | Bit-serial multiplier based neural processing element with approximate adder tree | |
CN112783473A (zh) | 一种使用单个DSP单元并行计算6个4Bit和3Bit整形数据乘法运算方法 | |
Esmali Nojehdeh et al. | Energy-Efficient Hardware Implementation of Fully Connected Artificial Neural Networks Using Approximate Arithmetic Blocks | |
Suzuki et al. | ProgressiveNN: Achieving Computational Scalability with Dynamic Bit-Precision Adjustment by MSB-first Accumulative Computation | |
CN112346703B (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 |