CN117910421A - 一种基于神经网络的动态近似电路计算部署方法及系统 - Google Patents
一种基于神经网络的动态近似电路计算部署方法及系统 Download PDFInfo
- Publication number
- CN117910421A CN117910421A CN202410294746.1A CN202410294746A CN117910421A CN 117910421 A CN117910421 A CN 117910421A CN 202410294746 A CN202410294746 A CN 202410294746A CN 117910421 A CN117910421 A CN 117910421A
- Authority
- CN
- China
- Prior art keywords
- approximate
- circuit
- calculation
- error
- configuration
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 104
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000013139 quantization Methods 0.000 claims abstract description 60
- 238000004458 analytical method Methods 0.000 claims abstract description 26
- 238000003062 neural network model Methods 0.000 claims abstract description 14
- 238000012549 training Methods 0.000 claims description 24
- 238000009826 distribution Methods 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 18
- 238000011156 evaluation Methods 0.000 claims description 17
- 238000007667 floating Methods 0.000 claims description 16
- 230000004913 activation Effects 0.000 claims description 15
- 238000005259 measurement Methods 0.000 claims description 15
- 238000013527 convolutional neural network Methods 0.000 claims description 14
- 230000008447 perception Effects 0.000 claims description 13
- 230000008901 benefit Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 230000009467 reduction Effects 0.000 claims description 7
- 238000011084 recovery Methods 0.000 claims description 6
- 238000004088 simulation Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 230000007423 decrease Effects 0.000 claims description 2
- 238000013100 final test Methods 0.000 claims description 2
- 238000009827 uniform distribution Methods 0.000 claims description 2
- 238000012821 model calculation Methods 0.000 abstract 1
- 238000007493 shaping process Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Geometry (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于神经网络的动态近似电路计算部署方法及系统,方法包括输入的神经网络模型和权重参数经过系统量化模块被优化成带有近似计算通道的网络模型和适应量化误差的整形权重数据;再将处理后的网络模型和权重参数输入动态预解析模块,分析得到模型计算量和权重参数分类;近似乘法器库和片上可重构计算电路根据权重分类配置基础近似方案;多目标分析模块根据得到的分析后数据结合基础近似电路配置,比较不同配置下的计算精度和片上性能包括面积功耗,综合分析对比获得最优化近似计算配置方案。本发明在神经网络应用目标精度要求内找到最优的近似部署配置,实时对神经网络计算进行层动态配置,使精度和功耗的选择更加灵活。
Description
技术领域
本发明属于人工智能神经网络技术领域,尤其涉及一种基于神经网络的动态近似电路计算部署方法及系统。
背景技术
近几年,深度神经网络已成最热门的研究方向。神经网络应用于模式识别、自动控制、信号处理、辅助决策、人工智能等众多研究领域取得了广泛的成功。经过多年的研究和发展,模式识别已经成为当前先进的技术,被广泛应用于语音识别、指纹识别、遥感图像识别、人脸识别、文字识别、手写字体识别、工业故障检测等方面。
同时,近似计算目前已经被广泛应用在神经网络中,神经网络由于其自身及相关图像识别和语音识别等应用的容错性,可以允许神经网络中的计算如乘法和加法操作在产生一定范围内的误差,并不显著影响神经网络的识别精度,而且能显著降低功耗和电路面积。
近似电路需要保持神经网路的精度,并获得硬件指数上的优势,也就需要在神经网络精度和硬件成本之间存在权衡。这个过程的方案并没有适合所有应用场景的最佳设计。因此,为任何特定的应用选择合适的近似电路是一个复杂多边的问题。
发明内容
发明目的:本发明的目的在于提供一种基于神经网络的动态近似电路计算部署方法及系统。为了解决神经网络中部署近似电路时的硬件性能和应用精度之间的平衡,通过分析神经网络在不同近似电路计算下正向推理正确率评估近似电路的精度和仿真功耗,决定是否需要采用当前近似配置。通过这样的循环迭代过程可以尽可在保持神经网络推理精度的情况下,提升近似计算带来的硬件功耗和面积收益。构建为特定应用找到最合适的近似电路部署方案,即在保留可接受的输出精度同时尽可能降低硬件成本。
技术方案:本发明通过神经网络的逐层误差引入得到每一层的容错系数,然后通过量化恢复得到精度损失小的权重参数。近似基础配置模块根据恢复后的权重参数,估计近似电路的误差参数,并通过迭代比较,综合考量误差和硬件参数符合要求的基础近似电路。多目标分析模块根据输入的权重参数和容错系数,计算网络在当前近似配置下的总误差,满足约束后,进行网络的近似感知训练,网络在训练中恢复近似计算造成的误差。精度恢复的下降值也就成为当前配置下的真实精度。在约束范围内的网络配置通过指定硬件配置上的正向推理模拟,同时输出当前计算的功耗和面积仿真值,面积约束内的配置组成次优解集合。在迭代结束后输出最优的功耗配置,也就获得了当前精度面积功耗下的最优配置。
本发明的一种基于神经网络的动态近似电路计算部署方法,在神经网络中构建系统量化模块、近似基础配置模块和多目标分析模块,通过执行以下步骤,在控制硬件功耗的前提下,获得面积收益最大的动态近似电路;
步骤1、通过系统量化模块将神经网络模型的计算精度由浮点数化到定点数,在神经网络模型中输入浮点型权重参数,输出定点型权重参数,并统计定点型权重参数分布;
步骤2、基于定点型权重参数分布,通过近似基础配置模块对近似电路进行基础配置;
步骤3、对基础配置后的近似电路评价其误差指标,通过误差指标筛选出初步近似电路配置;
步骤4、将初步近似电路配置输入多目标分析模块进行分析,输出近似电路的最佳配置。
进一步的,步骤1具体为:系统量化模块进行神经网络模型的8bit位宽量化,量化感知训练如下:
(1)
其中,round表示四舍五入,Q是经过量化之后的定点数,R是量化前的浮点数,S是量化后的定点数所能表示的最小刻度,Z是浮点数值中原来零点所对应的量化后的值;
在量化感知训练的同时将训练后的定点型权重参数进行统计,输出定点型权重参数分布。
进一步的,步骤2具体为:在得到量化模型之后,进行近似电路的基础配置,在近似计算电路库中挑选可重构近似乘法器,可重构乘法器包括低阶子乘法器和子乘法器求和电路,其中,乘数为神经网络中的激活,被乘数为权重,通过拆分乘数的方式实现可重构的乘法,对于乘数分为3个部分,从低位到高位分别为0-7位,两个乘数分别表示为A[7:0]和B[7:0],乘数A第7位为符号位,4-6位为高3位/>,0-3位为低4位/>;乘数B第7位为符号位,4-6位为高3位/>,0-3位为低4位/>;通过分拆方式,实现8bit的乘法共需要四个低阶子乘法器,分别用来计算/>,/>,/>和/>,对两个乘数的符号位进行异或操作产生乘法结果的符号位;
对子乘法器进行不同的组合操作,实现4×4,8×4和8×8这三种乘法:
实现4×4的乘法,则把和/>作为输入,需计算/>;
实现8×4的乘法,需计算和/>;
实现8x8的乘法,则需使用,/>,/>和/>;
实现8x4的乘法时的计算公式如式(2):
(2)
实现8x8的乘法时的计算公式如式(3):
(3)
在挑选适配的4bit近似乘法器后就可通过上式完成近似电路真值表的输出。
进一步的,步骤3具体为:通过错误率、误差距离、相对误差距离、平均相对误差距离对近似电路误差进行评估,评估误差在阈值范围内的近似电路也就组成了初步的近似电路配置,输出到多目标分析模块,进行最优化处理;
错误率ER:错误率的取值越大,表明该近似电路产生错误结果的概率越大,其函数表达式如式(4):
(4)
其中,其中n表示近似电路的全部输入情况的数目,P表示近似电路的计算结果,表示精确的结果;
误差距离ED:误差距离反映出近似计算结果与精确计算结果的差值,这个差值越大,说明本次计算的误差越大,也就是近似计算电路的精度越差,对于第(i)个样本,误差距离的计算公式如式(5):
(5)
其中,表示近似计算结果,/>表示精确计算结果;
相对误差距离RED:相对误差距离是由近似计算得出的绝对值偏差与精确计算得到的真值之比乘以100%得到的数据,以百分数的形式表示,用来反映测试结论与实际值之间的差异,对于第(i)个样本,相对误差距离的计算公式如式(6):
(6)
平均相对误差距离 MRED:平均相对误差距离是在大样本的情况下,对测试范围内所有样本的相对误差距离的平均值,反映出近似计算电路的精度,对于n个样本的集合,平均相对误差距离的计算公式如(7):
(7)
进一步的,步骤4具体为:多目标分析模块首先需要获得容错系数,子模块在进行卷积神经网络训练同时遍历所有卷积层和全连接层,逐次替换成量化层并进行推理,每一次测量推理精度都仅有一层卷积层被引入量化误差,遍历完所有层将精度损失归一化处理后也就获得了各层的容错能力系数;
基于各层的容错能力系数,多目标分析模块对网络在当前配置下的误差、功耗和面积进行评估,将神经网络各层容错能力作为近似计算引入的参考,对于具有更小的容错系数的层使用更激进的量化策略,将MAC计算数量加入以修正评估标准,修正后的评估公式为:
(8)
其中,表示第i层的容错能力系数,/>表示第i层的MAC计算量;
将近似计算的误差加入到评估公式中,使用式(7)平均相对误差距离 MRED来反映神经网络中近似电路的误差,误差评估公式如式(9):
(9)
表示第i层全部数据和权重的计算结果和真值的平均相对误差距离。同时表示出系统功耗和访存的评估,如式(10)和(11):
(10)
(11)
其中,其中表示第i层的参数量,/>表示第i层的权重位宽,p/>表示第i层使用的乘法器的计算功耗;
多目标分析模块通过线性规划问题表达并求解获得最终的配置,如式(12):
(12)
其中,q表示近似电路的计算位宽配置,a表示使用的近似电路配置,δ表示当前近似电路的计算位宽的配置集合,ξ表示近似乘法器的配置集合,Error表示CNN系统的误差约束,Size表示约束的CNN模型尺寸,对于每个CNN网络,选择量化位宽配置和近似乘法器配置等效于整数优化空间变量,模型尺寸和估计误差被作为ILP中的约束;
求解线性规划问题获得配置之后,进一步通过映射配置到神经网络中,进行正向推理来获得实际的精度下降,在此过程中,训练采用近似感知的重训练,精度下降在合适约束内,则输出到硬件进行真实功耗和面积测量,如果不符合就返回到线性规划求解改变约束Error和Size的值,则重新计算,硬件进行真实功耗和面积测量后如果不符合要求再次返回,如果成功就输出当前配置。
本发明还公开一种基于神经网络的动态近似电路计算部署系统,包括系统量化模块、近似基础配置模块和多目标分析模块;
所述系统量化模块其输入端接收神经网络模型和浮点型的权重参数,对权重进行量化和恢复,对网络模型插入量化层和统计参数,输出INT型定点的权重数据和分类统计,模型的计算量和各层的容错能力;
所述近似基础配置模块其输入端接收权重的分类统计,根据近似乘法器库和片上可重构架构初步部署近似电路,输出端输出初步近似电路配置;
所述多目标分析模块其输入端是神经网络的参数统计和层参数,权重的量化恢复数据和网络的容错能力分布,以及基础近似配置,模块内部首先根据容错能力模拟测试得到每一层的容错系数,然后容错系数和层近似配置综合统计得到对应的网络误差值,网络误差值和硬件反馈参数共同迭代比较得到实际精度,并映射到硬件设备上,如果满足约束要求就输出最佳配置,如果不满足再返回硬件参数继续迭代。
进一步的,所述系统量化模块包括:
INT量化器子模块,其输入是浮点型权重数据,根据对称量化,计算得到伸缩系数并输出量化后权重和伸缩系数;
量化通道模块子模块,其输入端接收神经网络模型和量化后数据,插入位宽可调节的量化器到卷积层的权重和激活值入口处,插入基于真值表运算的乘法器到卷积层的基础算子接口,并进行量化误差感知的训练,通过神经网络训练恢复权重的量化误差,并分析恢复后的权重分布。
进一步的,所述近似基础配置模块包括:
数据分布统计子模块,其输入是权重分布,并且预设激活值分布为均匀分部,生成假设激活值和权重值,并输出用以计算近似电路的误差;
近似电路误差子模块,其输入是生成的假设权重和激活值,根据权重和激活值输入近似真值表,并累积与真实真值表的误差,得到误差统计参数;
可重构电路比较子模块,其输入是近似电路的误差统计,通过设置阈值,将符合要求的近似电路配置到可重构电路的高位和低位模块中,将误差小输送低位,误差大的输送到高位,再进行面积、功耗和精度的统计,并将符合约束的电路输出,不符合的重新回到前一级迭代。
进一步的,所述多目标分析模块包括:
网络层容错系数子模块,其输入是网络的初步容错能力排序,根据排序替换每一层的数据量化位宽,然后通过正向推理获得实际网络的精度下降,最后归一化统计获得层容错系数;
网络误差统计子模块,其输入获得模型计算量和权重数据,并且根据容错系数,统计得到神经网络正向的误差;
硬件性能统计子模块,其输入根据基础近似电路配置平均化权重和激活值乘法计算得到电路进行一次计算的功耗,以及可重构电路的总体面积参数;
迭代优化配置子模块,其输入是网络误差统计和硬件性能参数,根据容错能力趋势,模块首先为容错能力大的网络层配置硬件性能优异但误差大精度小的近似电路,并统计整个网络在当前配置下的误差、功耗和面积,根据迭代约束决定当前配置是否满足需求,满足输出配置,不满足回到前一级迭代;
网络精度测量子模块,其输入是迭代输出的网络近似配置,模块网络层将近似配置和近似真值表导入网络近似电路接口,开始精度测试,网络进行正向推理,得到测试集精度并输出;
参数反向训练子模块,其输入是带近似的网络层参数,通过反向近似感知训练,神经网络训练过程中,反向为权重恢复近似计算带来的误差,提升精度并输出最终测试集精度;
硬件映射子模块,其输入是网络近似配置,硬件神经网络处理单元根据近似配置,发送可重构电路选择配置指令,并进行功能仿真测试,输出硬件计算的功耗和总片上面积。
有益效果:与现有技术相比,本发明具有如下显著优点:
(1)本发明在神经网络应用目标精度要求内找到最优的近似部署配置,实时对神经网络计算进行层动态配置,使精度和功耗的选择更加灵活。
(2)本发明构建为特定应用找到最合适的近似电路部署方案,即在保留可接受的输出精度同时尽可能降低硬件成本。
(3)本发明相较于现有近似乘法器部署方案可以在更细粒度上调节计算单元的选择以获得更好的精度和功耗收益。且相较于现在普遍使用的对不同应用进行手动优化的部署方案,本发明通过自动化平台搭建和线性规划搜索方案,获得了自动化的部署流程和适应多种应用需求的部署配置。
附图说明
图1为本发明系统量化模块结构图;
图2为本发明近似基础配置模块结构图;
图3为本发明容错系数计算示意图;
图4为本发明基于线性规划计算的迭代方案示意图;
图5为本发明近似感知重训练示意图;
图6为本发明系统的示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
基于神经网络的动态近似计算部署系统目的是为了配置适合硬件电路的卷积神经网络权重参数和适配的硬件收益高的近似计算电路,所以首先就需要量化模块将卷积神经网络的计算精度由浮点数量化到定点数,系统量化模块的细节如图1。目前对于大多数的网络模型而言,8 bit及其以上的量化对于精度的损失基本可以忽略,甚至由于模型正则化可以超越浮点网络的精度。Int8量化能够有效地保留原始网络系统信息,提高运算速度,同时又不会显著影响网络精度,因此在工业界应用更加广泛,能够满足大部分应用下的要求。所以在当前模块先进行模型的8bit位宽量化。式(1)展示了量化操作,round表示四舍五入,Q是经过量化之后的定点数,R是量化前的浮点数,S是量化后的定点数所能表示的最小刻度,Z是浮点数值中原来零点所对应的量化后的值。
(1)
并且同时在量化感知训练的同时将训练后的权重数据进行统计,输出数据的大概分布情况。
在得到量化模型之后,需要进行近似电路的基础配置。近似乘法器的类型很多,都有着不同的电路结构。近似基础配置模块主要就是在近似计算电路库中遍历初步寻找到合适的计算电路。由于近似计算库中多是4bit的计算电路,所以需要可重构电路实现8bit计算。可重构乘法器主要由低阶子乘法器和子乘法器求和电路构成。其中乘数为神经网络中的激活,被乘数为权重,在电路中需要严格按照此顺序进行乘法运算。通过拆分乘数的方式实现可重构的乘法,对于乘数可以分为3个部分,从低位到高位分别为0-7位,两个乘数分别表示为A[7:0]和B[7:0]。乘数A第7位为符号位,4-6位为高3位/>,0-3位为低4位/>;乘数B第7位为符号位/>,4-6位为高3位/>,0-3位为低4位/>;通过分拆方式,实现8bit的乘法共需要四个低阶子乘法器,分别用来计算/>,/>,/>和/>,对两个乘数的符号位进行异或操作产生乘法结果的符号位;
对子乘法器进行不同的组合操作,实现4×4,8×4和8×8这三种乘法:
实现4×4的乘法,则把和/>作为输入,需计算/>;
实现8×4的乘法,需计算和/>;
实现8x8的乘法,则需使用,/>,/>和/>;
实现8x4的乘法时的计算公式如式(2)。实现8x8的乘法时的计算公式如式(3)。
(2)
(3)
所以在挑选了合适的4bit近似乘法器之后就可以通过上式完成近似电路真值表的输出。
同时对于近似电路误差的评估则是通过已有的用于评价电路误差的指标,如下:
错误率(Error Rate,ER)。错误率是衡量近似计算电路出错几率的重要指标,它的取值越大,表明该近似电路产生错误结果的概率越大。错误率ER的函数表达式如(4)。其中n表示近似电路的全部输入情况的数目,例如对8×8乘法器而言,则所对应的输入情况为,P表示近似电路的计算结果,/>表示精确的结果。
(4)
误差距离 (ED):错误率是在大样本统计过程中使用的误差指标,而误差距离则是反映对于某一个样本,近似计算结果M'与精确计算结果M的差值的绝对值,也称为绝对误差距离。误差距离可以反映出近似计算结果与精确计算结果的差值,这个差值越大,说明本次计算的误差越大,也就是近似计算电路此时的精度越差。对于第个样本,误差距离的计算公式如(5)。
(5)
相对误差距离 (RED):相对误差距离是由近似计算得出的绝对值偏差与精确计算得到的真值之比乘以100%得到的数据,以百分数的形式表示。一般来说,相对误差距离更能反映结果的可信程度。绝对值偏差距离是一种量度,它反映了测试结论与实际值之间的差距,可以用数量级来表达。相对误差距离则是“测试的绝对值偏差与被测试的真值之比”,这是一种无量纲的值,可以用来反映测试结论与实际值之间的差异。对于第个样本,相对误差距离的计算公式如(6).
(6)
平均相对误差距离 (MRED):绝对误差距离和相对误差距离都只能反映出在特定样本的情况下,一个近似计算电路的精度情况,这种统计方式不具有普遍性。而平均相对误差距离,是在大样本的情况下,对测试范围内所有样本的相对误差距离的平均值。这样就可以客观反映出一个近似计算电路的精度。平均相对误差距离的计算公式如(7)。
(7)
评估误差在阈值范围内的近似电路也就组成了初步的近似电路配置,输出到多目标分析模块,进行最优化处理。该模块的具体结构图如图2。
多目标分析模块首先需要获得容错系数。子模块在进行卷积神经网络训练同时遍历所有卷积层和全连接层,逐次替换成量化层并进行推理,也就是说,每一次测量推理精度都只有一层卷积层被引入量化误差。遍历完所有层将精度损失归一化处理后也就获得了各层的容错能力系数,如图3。
在获得全部准备数据之后,多目标分析模块对网络在当前配置下的误差、功耗和面积进行评估。考虑神经网络各层容错能力,进而作为近似计算引入的参考,对于具有更小的容错系数的层使用更激进的量化策略,然而神经网络有些层拥有更大的参数量和计算量,在这些层做低精度的量化和近似会产生更高效的网络,因此,将MAC计算数量加入以修正评估标准,修正后的评估公式为:
(8)
其中,表示第i层的容错能力系数,/>表示第i层的MAC计算量。此外,由于近似计算的引入会导致误差的产生,因此需要将近似计算的误差加入到评估公式中,再次使用的是如上提过的/>来反映神经网络中近似电路的误差,所以误差评估公式如式(9)。同时也可以表示出,系统功耗和访存的评估,如式(10)和(11)。其中/>表示第i层的参数量,/>表示第i层的权重位宽。
(9)
(10)
(11)
最后,本模块也就通过线性规划问题表达并求解获得最终的配置,如式(12)。其中,q表示近似电路的计算位宽配置,a表示使用的近似电路配置,δ表示当前近似电路的计算位宽的配置集合,ξ表示近似乘法器的配置集合,Error表示CNN系统的误差约束,Size表示约束的CNN模型尺寸,对于每个CNN网络,选择量化位宽配置和近似乘法器配置等效于整数优化空间变量,模型尺寸和估计误差被作为ILP中的约束。
(12)
求解了线性规划问题获得配置之后,进一步通过映射配置到神经网络中,进行正向推理来获得实际的精度下降,在此过程中,训练采用近似感知的重训练方案如图5。精度下降如果在合适约束内,也就输出到硬件进行真实功耗和面积测量,如果不符合就回到线性规划求解改变约束Error和Size的值,重新计算。硬件进行真实功耗和面积测量后如果不符合要求再次返回,如果成功就输出当前配置。
总结的,给出基于神经网络的动态近似计算部署系统及其方法的具体实施步骤如下:
步骤101:预训练模型包含神经网络模型和权重参数,神经网络模型中替换卷积层为量化卷积层;
步骤102:根据量化位宽配置量化权重参数,并进行训练,获得恢复后参数;
步骤103:统计权重参数分布,并输出;
步骤201:近似电路库中的电路通过DC综合,获得面积和功耗,筛掉功耗面积不合适的电路;
步骤202:可重构架构根据权重分部,分配内部4*4乘法器优先配置顺序,如果权重小数多,则优先分配误差小的电路到低比特位;
步骤203:获得可重构近似电路的真值表,分别为8*8,8*4,4*4乘法的真值表;
步骤204:根据式(5)(6)(7)的误差公式,筛选掉不合适预先设置阈值的真值表,并最后输出剩下的近似电路;
步骤301:将神经网络模型中的卷积层其中一层替换为量化卷积层,测出精度;
步骤302:遍历所有卷积层和全连接层后,归一化统计精度,获得容错能力系数;
步骤303:选择一种近似电路配置到每一层,并且每一层选择8*8,8*4,4*4乘法的真值表中的一种,根据公式(9)(10)(11),计算出误差,计算和访存功耗,并和阈值对比,不符合误差和访存约束就回到步骤303;
步骤304:符合阈值的配置在网络结构上进行映射,并进行正向推理获得精度,如果精度不在阈值范围内会到步骤303;
步骤305:符合精度要求的配置继续映射到硬件NPU上进行正向推理,并评估功耗和面积,如果不符合要求,回到步骤303;如果符合则输出当前配置作为系统输出。
本发明采用以上技术方案与现有技术相比,具有平衡近似电路精度和硬件收益的技术效果。针对不同的网络和不同权重数据,采用不同近似电路将有不同的识别精度,却也会有不一样的硬件消耗,本系统满足了在合适的精度约束下获得最优硬件性能的部署方案。
Claims (9)
1.一种基于神经网络的动态近似电路计算部署方法,其特征在于,在神经网络中构建系统量化模块、近似基础配置模块和多目标分析模块,通过执行以下步骤,在控制硬件功耗的前提下,获得面积收益最大的动态近似电路;
步骤1、通过系统量化模块将神经网络模型的计算精度由浮点数化到定点数,在神经网络模型中输入浮点型权重参数,输出定点型权重参数,并统计定点型权重参数分布;
步骤2、基于定点型权重参数分布,通过近似基础配置模块对近似电路进行基础配置;
步骤3、对基础配置后的近似电路评价其误差指标,通过误差指标筛选出初步近似电路配置;
步骤4、将初步近似电路配置输入多目标分析模块进行分析,输出近似电路的最佳配置。
2.根据权利要求1所述的一种基于神经网络的动态近似电路计算部署方法,其特征在于,步骤1具体为:系统量化模块进行神经网络模型的8bit位宽量化,量化感知训练如下:
(1)
其中,round表示四舍五入,Q是经过量化之后的定点数,R是量化前的浮点数,S是量化后的定点数所能表示的最小刻度,Z是浮点数值中原来零点所对应的量化后的值;
在量化感知训练的同时将训练后的定点型权重参数进行统计,输出定点型权重参数分布。
3.根据权利要求1所述的一种基于神经网络的动态近似电路计算部署方法,其特征在于,步骤2具体为:在得到量化模型之后,进行近似电路的基础配置,在近似计算电路库中挑选可重构近似乘法器,可重构乘法器包括低阶子乘法器和子乘法器求和电路,其中,乘数为神经网络中的激活,被乘数为权重,通过拆分乘数的方式实现可重构的乘法,对于乘数分为3个部分,从低位到高位分别为0-7位,两个乘数分别表示为A[7:0]和B[7:0],乘数A第7位为符号位,4-6位为高3位/>,0-3位为低4位/>;乘数B第7位为符号位/>,4-6位为高3位,0-3位为低4位/>;通过分拆方式,实现8bit的乘法共需要四个低阶子乘法器,分别用来计算/>,/>,/>和/>,对两个乘数的符号位进行异或操作产生乘法结果的符号位;
对子乘法器进行不同的组合操作,实现4×4,8×4和8×8这三种乘法:
实现4×4的乘法,则把和/>作为输入,需计算/>;
实现8×4的乘法,需计算和/>;
实现8x8的乘法,则需使用,/>,/>和/>;
实现8x4的乘法时的计算公式如式(2):
(2)
实现8x8的乘法时的计算公式如式(3):
(3)
在挑选适配的4bit近似乘法器后就可通过上式完成近似电路真值表的输出。
4.根据权利要求1所述的一种基于神经网络的动态近似电路计算部署方法,其特征在于,步骤3具体为:通过错误率、误差距离、相对误差距离、平均相对误差距离对近似电路误差进行评估,评估误差在阈值范围内的近似电路也就组成了初步的近似电路配置,输出到多目标分析模块,进行最优化处理;
错误率ER:错误率的取值越大,表明该近似电路产生错误结果的概率越大,其函数表达式如式(4):
(4)
其中,其中n表示近似电路的全部输入情况的数目,P表示近似电路的计算结果,表示精确的结果;
误差距离ED:误差距离反映出近似计算结果与精确计算结果的差值,这个差值越大,说明本次计算的误差越大,也就是近似计算电路的精度越差,对于第(i)个样本,误差距离的计算公式如式(5):
(5)
其中,表示近似计算结果,/>表示精确计算结果;
相对误差距离RED:相对误差距离是由近似计算得出的绝对值偏差与精确计算得到的真值之比乘以100%得到的数据,以百分数的形式表示,用来反映测试结论与实际值之间的差异,对于第(i)个样本,相对误差距离的计算公式如式(6):
(6)
平均相对误差距离 MRED:平均相对误差距离是在大样本的情况下,对测试范围内所有样本的相对误差距离的平均值,反映出近似计算电路的精度,对于n个样本的集合,平均相对误差距离的计算公式如(7):
(7)。
5.根据权利要求4所述的一种基于神经网络的动态近似电路计算部署方法,其特征在于,步骤4具体为:多目标分析模块首先需要获得容错系数,子模块在进行卷积神经网络训练同时遍历所有卷积层和全连接层,逐次替换成量化层并进行推理,每一次测量推理精度都仅有一层卷积层被引入量化误差,遍历完所有层将精度损失归一化处理后也就获得了各层的容错能力系数;
基于各层的容错能力系数,多目标分析模块对网络在当前配置下的误差、功耗和面积进行评估,将神经网络各层容错能力作为近似计算引入的参考,对于具有更小的容错系数的层使用更激进的量化策略,将MAC计算数量加入以修正评估标准,修正后的评估公式为:
(8)
其中,表示第i层的容错能力系数,/>表示第i层的MAC计算量;
将近似计算的误差加入到评估公式中,使用式(7)平均相对误差距离 MRED来反映神经网络中近似电路的误差,误差评估公式如式(9):
(9)
表示第i层全部数据和权重的计算结果和真值的平均相对误差距离,同时表示出系统功耗和访存的评估,如式(10)和(11):
(10)
(11)
其中,其中表示第i层的参数量,/>表示第i层的权重位宽,/>表示第i层使用的乘法器的计算功耗;
多目标分析模块通过线性规划问题表达并求解获得最终的配置,如式(12):
(12)
其中,q表示近似电路的计算位宽配置,a表示使用的近似电路配置,δ表示当前近似电路的计算位宽的配置集合,ξ表示近似乘法器的配置集合,Error表示CNN系统的误差约束,Size表示约束的CNN模型尺寸,对于每个CNN网络,选择量化位宽配置和近似乘法器配置等效于整数优化空间变量,模型尺寸和估计误差被作为ILP中的约束;
求解线性规划问题获得配置之后,进一步通过映射配置到神经网络中,进行正向推理来获得实际的精度下降,在此过程中,训练采用近似感知的重训练,精度下降在约束内,则输出到硬件进行真实功耗和面积测量,如果不符合就返回到线性规划求解改变约束Error和Size的值,则重新计算,硬件进行真实功耗和面积测量后如果不符合要求再次返回,如果成功就输出当前配置。
6.一种基于神经网络的动态近似电路计算部署系统,其特征在于,包括系统量化模块、近似基础配置模块和多目标分析模块;
所述系统量化模块其输入端接收神经网络模型和浮点型的权重参数,对权重进行量化和恢复,对网络模型插入量化层和统计参数,输出INT型定点的权重数据和分类统计,模型的计算量和各层的容错能力;
所述近似基础配置模块其输入端接收权重的分类统计,根据近似乘法器库和片上可重构架构初步部署近似电路,输出端输出初步近似电路配置;
所述多目标分析模块其输入端是神经网络的参数统计和层参数,权重的量化恢复数据和网络的容错能力分布,以及基础近似配置,模块内部首先根据容错能力模拟测试得到每一层的容错系数,然后容错系数和层近似配置综合统计得到对应的网络误差值,网络误差值和硬件反馈参数共同迭代比较得到实际精度,并映射到硬件设备上,如果满足约束要求就输出最佳配置,如果不满足再返回硬件参数继续迭代。
7.根据权利要求6所述的一种基于神经网络的动态近似电路计算部署系统,其特征在于,所述系统量化模块包括:
INT量化器子模块,其输入是浮点型权重数据,根据对称量化,计算得到伸缩系数并输出量化后权重和伸缩系数;
量化通道模块子模块,其输入端接收神经网络模型和量化后数据,插入位宽可调节的量化器到卷积层的权重和激活值入口处,插入基于真值表运算的乘法器到卷积层的基础算子接口,并进行量化误差感知的训练,通过神经网络训练恢复权重的量化误差,并分析恢复后的权重分布。
8.根据权利要求6所述的一种基于神经网络的动态近似电路计算部署系统,其特征在于,所述近似基础配置模块包括:
数据分布统计子模块,其输入是权重分布,并且预设激活值分布为均匀分部,生成假设激活值和权重值,并输出用以计算近似电路的误差;
近似电路误差子模块,其输入是生成的假设权重和激活值,根据权重和激活值输入近似真值表,并累积与真实真值表的误差,得到误差统计参数;
可重构电路比较子模块,其输入是近似电路的误差统计,通过设置阈值,将符合要求的近似电路配置到可重构电路的高位和低位模块中,将误差小输送低位,误差大的输送到高位,再进行面积、功耗和精度的统计,并将符合约束的电路输出,不符合的重新回到前一级迭代。
9.根据权利要求6所述的一种基于神经网络的动态近似电路计算部署系统,其特征在于,所述多目标分析模块包括:
网络层容错系数子模块,其输入是网络的初步容错能力排序,根据排序替换每一层的数据量化位宽,然后通过正向推理获得实际网络的精度下降,最后归一化统计获得层容错系数;
网络误差统计子模块,其输入获得模型计算量和权重数据,并且根据容错系数,统计得到神经网络正向的误差;
硬件性能统计子模块,其输入根据基础近似电路配置平均化权重和激活值乘法计算得到电路进行一次计算的功耗,以及可重构电路的总体面积参数;
迭代优化配置子模块,其输入是网络误差统计和硬件性能参数,根据容错能力趋势,模块首先为容错能力大的网络层配置硬件性能优异但误差大精度小的近似电路,并统计整个网络在当前配置下的误差、功耗和面积,根据迭代约束决定当前配置是否满足需求,满足输出配置,不满足回到前一级迭代;
网络精度测量子模块,其输入是迭代输出的网络近似配置,模块网络层将近似配置和近似真值表导入网络近似电路接口,开始精度测试,网络进行正向推理,得到测试集精度并输出;
参数反向训练子模块,其输入是带近似的网络层参数,通过反向近似感知训练,神经网络训练过程中,反向为权重恢复近似计算带来的误差,提升精度并输出最终测试集精度;
硬件映射子模块,其输入是网络近似配置,硬件神经网络处理单元根据近似配置,发送可重构电路选择配置指令,并进行功能仿真测试,输出硬件计算的功耗和总片上面积。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410294746.1A CN117910421B (zh) | 2024-03-15 | 2024-03-15 | 一种基于神经网络的动态近似电路计算部署方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410294746.1A CN117910421B (zh) | 2024-03-15 | 2024-03-15 | 一种基于神经网络的动态近似电路计算部署方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117910421A true CN117910421A (zh) | 2024-04-19 |
CN117910421B CN117910421B (zh) | 2024-07-16 |
Family
ID=90692667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410294746.1A Active CN117910421B (zh) | 2024-03-15 | 2024-03-15 | 一种基于神经网络的动态近似电路计算部署方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117910421B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832719A (zh) * | 2020-07-28 | 2020-10-27 | 电子科技大学 | 一种定点量化的卷积神经网络加速器计算电路 |
CN112612446A (zh) * | 2020-12-15 | 2021-04-06 | 东南大学 | 一种基于布斯编码的16*8近似乘法器片上动态计算系统 |
US20210286688A1 (en) * | 2019-06-12 | 2021-09-16 | Shanghai Cambricon Information Technology Co., Ltd | Neural Network Quantization Parameter Determination Method and Related Products |
CN115099405A (zh) * | 2022-06-23 | 2022-09-23 | 南京航空航天大学 | 一种基于近似乘法的神经网络混合近似及误差补偿方法 |
CN117170623A (zh) * | 2023-11-03 | 2023-12-05 | 南京美辰微电子有限公司 | 面向神经网络计算的多位宽重构近似张量乘加方法与系统 |
-
2024
- 2024-03-15 CN CN202410294746.1A patent/CN117910421B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210286688A1 (en) * | 2019-06-12 | 2021-09-16 | Shanghai Cambricon Information Technology Co., Ltd | Neural Network Quantization Parameter Determination Method and Related Products |
CN111832719A (zh) * | 2020-07-28 | 2020-10-27 | 电子科技大学 | 一种定点量化的卷积神经网络加速器计算电路 |
CN112612446A (zh) * | 2020-12-15 | 2021-04-06 | 东南大学 | 一种基于布斯编码的16*8近似乘法器片上动态计算系统 |
CN115099405A (zh) * | 2022-06-23 | 2022-09-23 | 南京航空航天大学 | 一种基于近似乘法的神经网络混合近似及误差补偿方法 |
CN117170623A (zh) * | 2023-11-03 | 2023-12-05 | 南京美辰微电子有限公司 | 面向神经网络计算的多位宽重构近似张量乘加方法与系统 |
Non-Patent Citations (2)
Title |
---|
TAIYU CHENG等: "Logarithm-approximate floating-point multiplier is applicable to power-efficient neural network training", 《INTEGRATION》, vol. 74, no. 8, 31 May 2020 (2020-05-31), pages 19 - 31, XP086172669, DOI: 10.1016/j.vlsi.2020.05.002 * |
李佳骏 等: "面向高能效加速器的二值化神经网络设计和训练方法", 《计算机辅助设计与图形学学报》, vol. 35, no. 6, 5 July 2023 (2023-07-05), pages 961 - 969 * |
Also Published As
Publication number | Publication date |
---|---|
CN117910421B (zh) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111860982A (zh) | 一种基于vmd-fcm-gru的风电场短期风电功率预测方法 | |
CN109740737B (zh) | 卷积神经网络量化处理方法、装置及计算机设备 | |
CN110276451A (zh) | 一种基于权重归一化的深度神经网络压缩方法 | |
CN111758104B (zh) | 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置 | |
JPH07261784A (ja) | パターン認識方法、音声認識方法および音声認識装置 | |
CN113159276A (zh) | 模型优化部署方法、系统、设备及存储介质 | |
CN113132723A (zh) | 一种图像压缩方法及装置 | |
CN111144552A (zh) | 一种粮食品质多指标预测方法及装置 | |
CN111950715A (zh) | 基于自适应动态移位的8位整型全量化推理方法及装置 | |
US11531884B2 (en) | Separate quantization method of forming combination of 4-bit and 8-bit data of neural network | |
CN112116061A (zh) | 一种面向长短期记忆网络的权值和激活值的量化方法 | |
CN114169251A (zh) | 一种超短期风电功率预测方法 | |
CN112766537A (zh) | 一种短期电负荷预测方法 | |
CN114154626B (zh) | 一种用于图像分类任务的滤波器剪枝方法 | |
CN114970856A (zh) | 基于硬件特性的模型剪枝方法、装置、设备及存储介质 | |
CN117910421B (zh) | 一种基于神经网络的动态近似电路计算部署方法及系统 | |
CN112529328B (zh) | 一种产品性能预测方法及系统 | |
CN113076663A (zh) | 一种动态混合精度模型构建方法及系统 | |
CN112488291A (zh) | 一种神经网络8比特量化压缩方法 | |
CN112308213A (zh) | 一种基于全局特征关系的卷积神经网络压缩方法 | |
CN115099405B (zh) | 一种基于近似乘法的神经网络混合近似及误差补偿方法 | |
Lu et al. | Auto-LUT: Auto Approximation of Non-Linear Operations for Neural Networks on FPGA | |
Watanabe | Learning efficiency of redundant neural networks in Bayesian estimation | |
CN116227563A (zh) | 一种基于数据量化的卷积神经网络压缩与加速方法 | |
CN117348837A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |