CN107783935B - 基于动态精度可配运算的近似计算可重构阵列 - Google Patents
基于动态精度可配运算的近似计算可重构阵列 Download PDFInfo
- Publication number
- CN107783935B CN107783935B CN201710882550.4A CN201710882550A CN107783935B CN 107783935 B CN107783935 B CN 107783935B CN 201710882550 A CN201710882550 A CN 201710882550A CN 107783935 B CN107783935 B CN 107783935B
- Authority
- CN
- China
- Prior art keywords
- calculation
- precision
- iteration
- output
- multiplier
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- 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)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于动态精度可配运算的近似计算可重构阵列,基于传统的可重构阵列,增加一个动态精度控制模块,用于实现如下操作:根据输入的配置信息,动态配置重构阵列里计算单元的迭代次数,以满足一定的精度需求;其硬件结构包括迭代控制器和配置控制器;迭代控制器用于调整乘法器的计算精度,通过动态配置迭代次数,可以满足不同计算精度的要求。配置控制器用于重新动态配置计算阵列模块。本发明设计简单,可行性好,通过动态调节迭代次数,从而实现了动态精度可配,减小计算复杂度和计算时间,并且降低了功耗,同时保证了一定的精度。
Description
技术领域
本发明涉及一种基于动态精度可配运算的近似计算可重构阵列,属于人工神经网络技术领域。
背景技术
随着网络的日益庞大,在软件模型方面和硬件体系结构方面对网络压缩与适当处理精度的研究也越来越深入。尽管传统的树乘法器具有很高的准确度,但在减少面积和能量消耗方面存在问题。因此,引入了具有高能源效率的近似乘法器,用很少的精确度损失换取了更低的能耗。
可重构架构在处理某些神经网络时在性能和灵活性方面表现出优越性。随着神经网络的影响越来越大,对可重构计算架构的研究迫在眉睫。
我们进一步优化了迭代对数乘法器的近似乘数,提出了一种基于动态精度可配运算的近似计算可重构阵列。
发明内容
发明目的:为了解决现有技术中存在功耗过大、精度较低的问题,本发明提供一种基于动态精度可配运算的近似计算可重构阵列,不仅可以减少计算产生的功耗和时间,同时还保证了一定的计算精度,并且提高了计算的灵活性。
技术方案:一种基于动态精度可配运算的近似计算可重构阵列,应用于卷积神经网络、递归神经网络的网络加速、数字信号处理以及多媒体有关图像、视频压缩的处理。其中卷积神经网络主要用于实现图像识别和文字理解等;递归神经网络用于实现文件分类和语音识别。本发明的特点是在电路总控制器与传统的可重构阵列之间增加一个动态精度控制模块,用于实现如下操作:根据输入的配置信息,动态配置重构阵列里计算单元的迭代次数,以满足一定的精度需求;基于动态精度可配运算的近似计算可重构阵列,其硬件结构包括迭代控制器和配置控制器;
所述迭代控制器用于调整乘法器的计算精度,通过动态配置迭代次数,可以满足不同计算精度的要求。在迭代控制器中,网络输出同时传输到两个加法器,两个加法器的其他输入对应两个预设阈值的负值,通过加法器实现减法操作(加法器完成减去阈值),得到结果的符号位来确定迭代次数。当前输入队列在上一次计算之后从数据存储器中读取,结果通过输出队列传输到数据存储器。
所述迭代控制器,通过对输出的有效位进行评估,预测下一个时间步长的精度要求,从而可以根据先前结果的质量动态重构乘法器的迭代次数。动态调整近似乘数的迭代次数,对于卷积神经网络和递归神经网络的第n+1层(n=1、2、3…),预测的迭代次数取决于第n层中输出的最大值。通过对时间步长t时的输出进行评估,得到输出的最大值,并确定了卷积神经网络和递归神经网络第n层时计算的迭代次数。迭代次数的确定是根据网络输出的范围,预设2个阈值(阈值是16bit的定点二进制数),相应地将输出分为3个等级。每个级别对应一定的精度,表示迭代次数。
所述配置控制器用于重新动态配置计算阵列模块。配置控制器包括预定义配置上下文模块和动态生成配置上下文模块。两者并行运行,协同实现对计算阵列模块的动态配置。
其中,所述预定义配置上下文模块用于读取存储在配置内存中的配置上下文,以重新配置计算阵列,该模块包括地址控制单元、路由控制单元以及计算控制单元。
地址控制单元用于控制先入先出阵列的存储器访问地址,即动态指定先入先出阵列的数据来源地址。路由控制单元实现处理单元之间的互联方式,能够高灵活的控制数据流向。计算控制单元用于控制处理单元中乘法器和加法器的操作,从而实现计算阵列的配置。当地址控制单元确定数据来源的地址,读取数据并通过路由控制单元所确定的数据流向,输出到计算控制单元,实现相应的乘法或加法操作。
所述动态生成配置上下文模块用于根据阵列的前一个输出动态配置计算阵列模块所使用的乘法迭代次数。当迭代控制器在前向计算完成时,迭代控制器将读取计算数组的输出,确定下一帧计算中使用的迭代次数,并将其传输到配置控制器内部单元。
为了进一步实现发明目的,本发明还提供了一种基于动态精度可配运算的近似计算可重构阵列的动态配置方案及实现方式,通过迭代控制器动态调整迭代次数,包括以下步骤:
(1)通过输出最大值与预置阈值的比较,当处在低精度要求下计算时,不需要进行迭代运算。乘法器和乘法器通过解复用器将输入数据直接传输到计算单元C;
(2)当处在中级精度要求下计算时,需迭代1次。乘法器和乘法器通过解复用器传输到计算单元B,计算完成后,将输出路由到计算单元C,进行下一级运算;
(3)当处在高级精度要求下计算时,需迭代2次。乘法器和乘法器通过解复用器传输到计算单元A,然后输出路由到计算单元B,经过两次迭代计算后,将输出路由到计算单元C,得到最终结果,并从计算单元C输出。
提出的乘法器可以通过配置迭代数来动态调整精度,以满足计算需求。在计算过程中,乘数使用的迭代次数由预设阈值和网络输出决定。当网络输出值高于阈值时,认为网络置信度足够高,因此乘法器使用较少的迭代次数。当网络输出值低于阈值时,网络置信度较低,乘法器使用更多迭代。在整个计算过程中,乘法器使用的迭代次数跟随网络输出动态变化,计算精度动态变化。
有益效果:本发明与现有技术相比,设计简单,可行性好,通过动态调节迭代次数,从而实现了动态精度可配,减小计算复杂度和计算时间,并且降低了功耗,同时保证了一定的精度。
附图说明
图1为本发明的动态精度计算阵列模块示意图;
图2为本发明的低精度时迭代决定模块示意图;
图3为本发明的中级精度是迭代决定模块示意图;
图4为本发明的高级精度是迭代决定模块示意图;
图5为本发明的确定迭代次数流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,动态精度可配运算的近似计算可重构阵列在内部各模块之间的协调控制下,根据输入数据的最大输出值和阈值的关系,实现动态调节乘法器的迭代次数,即实现动态精度调节,并给出精确结果的近似结果。近似计算可重构阵列包括迭代控制器和配置控制器。
迭代控制器通过动态配置迭代次数,调整乘法器的计算精度,可以很好地满足不同计算精度的要求。网络输出同时传输到两个加法器,两个加法器的另外两个输入对应两个预置阈值的负值,通过加法器实现减法,所得结果的符号位确定迭代次数。
迭代控制器通过对输出的有效位进行评估,预测下一层的精度要求,从而可以根据先前结果的质量动态重构乘法器的迭代次数。通过对卷积神经网络和递归神经网络第n层时的输出进行评估,得到输出的最大值,并确定了第n+1层计算的迭代次数。根据网络输出的范围,预设2个阈值,相应地将输出分为3个等级。每个级别对应一定的精度,表示迭代次数。
配置控制器用于重新动态配置计算阵列模块。配置控制器包括预定义配置上下文模块和动态生成配置上下文模块。
其中,预定义配置上下文模块用于读取配置内存中存储的配置上下文,通过其内部各单元的协调操作,以重新配置计算阵列,
该模块包括地址控制单元、路由控制单元以及计算控制单元。
地址控制单元用于控制先入先出阵列的存储器访问地址,即动态指定先入先出阵列的数据来源地址。路由控制单元实现处理单元之间的互联方式,能够高灵活的控制数据流向。计算控制单元用于控制处理单元中乘法器和加法器的操作,从而实现计算阵列的配置。
动态生成配置上下文模块是基于阵列的前一个输出,从而动态生成计算单元所需进行的迭代次数。当前向计算完成时,迭代控制器读取计算数组的输出,以确定下一帧计算时所需要完成的迭代次数,所得结果通过输出先入先出阵列传输到数据存储器。
所有部件之间相互配合,共同完成动态精度可配运算的近似计算可重构阵列,包括如下步骤:
(1)输入两个16比特二进制数N1和N2;
(2)通过输出最大值与预置阈值的比较,如图5所示,当输出最大值<低阈值时,处在低级精度要求下;输出最大值>高阈值时,处在高级精度要求下;第三种情况时,处在中级精度要求下;
(3)处在低精度要求下计算时,不需要进行迭代运算。如图2所示,乘法器和乘法器通过解复用器直接传输到计算单元C;
(4)当处在中级精度要求下计算时,需迭代1次。如图3所示,乘法器和乘法器通过解复用器传输到计算单元B,计算完成后,将输出路由到计算单元C;
(5)当处在高级精度要求下计算时,需迭代2次。如图4所示,乘法器和乘法器通过解复用器传输到计算单元A,然后输出路由到计算单元B,经过两次迭代计算后,将输出路由到计算单元C,得到最终结果,并从计算单元C输出。
(6)迭代决定结束后,进入动态精度计算单元模块,即计算单元A、B、C模块,通过首1探测器,确定两个输入的首1位置k和其余位x;
(8)迭代结束后,输出最终结果。
Claims (6)
1.一种基于动态精度可配运算的近似计算可重构阵列,其特征在于:增设动态精度控制模块,动态精度控制模块包括迭代控制器和配置控制器;所述迭代控制器用于调整乘法器的计算精度,通过动态配置迭代次数;网络输出同时传输到两个加法器,两个加法器的其他输入对应两个预设阈值的负值,通过加法器实现减法操作,得到结果的符号位来确定迭代次数;当前输入队列在上一次计算之后从数据存储器中读取,结果通过输出队列传输到数据存储器;
所述配置控制器用于动态配置计算阵列模块,实现乘法累加计算,并完成数据间的传输。
2.如权利要求1所述的基于动态精度可配运算的近似计算可重构阵列,其特征在于:所述迭代控制器,通过对输出的有效位进行评估,预测下一个时间步长的精度要求,从而可以根据先前结果的质量动态重构乘法器的迭代次数,动态调整近似乘数的迭代次数,对于卷积神经网络和递归神经网络的第n+1层(n=1、2、3…),预测的迭代次数取决于第n层中输出的最大值,根据网络输出的范围,预设2个阈值(阈值是16bit的定点二进制数),相应地将输出分为3个等级;每个级别对应一定的精度,表示迭代次数。
3.如权利要求1所述的基于动态精度可配运算的近似计算可重构阵列,其特征在于:所述配置控制器包括预定义配置上下文模块和动态生成配置上下文模块。
4.如权利要求3所述的基于动态精度可配运算的近似计算可重构阵列,其特征在于:所述预定义配置上下文模块用于读取存储在配置内存中的配置上下文,以重新配置计算阵列,该模块包括地址控制单元、路由控制单元以及计算控制单元;
地址控制单元用于控制先入先出阵列的存储器访问地址,即动态指定先入先出阵列的数据来源地址;路由控制单元连接各处理单元,能够高灵活的控制数据流向;计算控制单元用于控制处理单元中乘法器和加法器的操作。
5.如权利要求3所述的基于动态精度可配运算的近似计算可重构阵列,其特征在于:所述动态生成配置上下文模块用于根据阵列的前一个输出动态配置计算阵列模块所使用的乘法迭代次数;当前向计算完成时,迭代控制器将读取计算数组的输出,确定下一帧计算中使用的迭代次数,并将其传输到配置控制器内部单元。
6.一种根据权利要求1所述的基于动态精度可配运算的近似计算可重构阵列的动态配置实现方式,其特征在于,根据不同等级的精度要求调整迭代次数,包括三个计算模块A、B、C:
(1)在低级精度要求下进行计算时,不需要迭代;乘法器和乘法器通过解复用器直接传输到计算单元C;
(2)在中级精度要求下进行计算时,乘法器和乘法器通过解复用器传输到计算单元B,然后将输出路由到计算单元C以执行下一个迭代计算;
(3)在高级精度要求下进行计算时,乘法器和乘法器通过解复用器传输到计算单元A,输出路由到计算单元B,计算单元B的计算结果输出路由到基础计算单元C,最后从基础计算单元C输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710882550.4A CN107783935B (zh) | 2017-09-26 | 2017-09-26 | 基于动态精度可配运算的近似计算可重构阵列 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710882550.4A CN107783935B (zh) | 2017-09-26 | 2017-09-26 | 基于动态精度可配运算的近似计算可重构阵列 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107783935A CN107783935A (zh) | 2018-03-09 |
CN107783935B true CN107783935B (zh) | 2021-03-19 |
Family
ID=61433856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710882550.4A Active CN107783935B (zh) | 2017-09-26 | 2017-09-26 | 基于动态精度可配运算的近似计算可重构阵列 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107783935B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059038A (zh) * | 2019-04-28 | 2019-07-26 | 北京超维度计算科技有限公司 | 一种基于可重构计算的高性能弹性连接架构及方法 |
CN110728365B (zh) * | 2019-09-12 | 2022-04-01 | 东南大学 | 多位宽pe阵列计算位宽的选择方法及计算精度控制电路 |
CN116126282B (zh) * | 2022-12-21 | 2023-08-18 | 辉羲智能科技(上海)有限公司 | 自动驾驶辅助控制方法、系统及其ai计算方法、装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1215574A1 (en) * | 2000-12-12 | 2002-06-19 | Sony International (Europe) GmbH | Method for processing data on an iterative algorithm basis and an apparatus therefore |
CN102567279A (zh) * | 2011-12-22 | 2012-07-11 | 清华大学 | 一种动态可重构阵列时序配置信息的生成方法 |
CN106294278A (zh) * | 2016-08-01 | 2017-01-04 | 东南大学 | 用于动态可重构阵列计算系统的自适硬件预配置控制器 |
-
2017
- 2017-09-26 CN CN201710882550.4A patent/CN107783935B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1215574A1 (en) * | 2000-12-12 | 2002-06-19 | Sony International (Europe) GmbH | Method for processing data on an iterative algorithm basis and an apparatus therefore |
CN102567279A (zh) * | 2011-12-22 | 2012-07-11 | 清华大学 | 一种动态可重构阵列时序配置信息的生成方法 |
CN106294278A (zh) * | 2016-08-01 | 2017-01-04 | 东南大学 | 用于动态可重构阵列计算系统的自适硬件预配置控制器 |
Non-Patent Citations (1)
Title |
---|
LTE-A中LDPC译码算法在可重构平台的实现与验证;龚宇;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170215(第 02 期);第I136-380页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107783935A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7348971B2 (ja) | 畳み込みニューラルネットワークハードウエア構成 | |
US10929746B2 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
CN111758106B (zh) | 用于大规模并行神经推理计算元件的方法和系统 | |
CN108133270B (zh) | 卷积神经网络加速方法及装置 | |
CN109828744B (zh) | 一种基于fpga的可配置浮点向量乘法ip核 | |
US11003736B2 (en) | Reduced dot product computation circuit | |
CN107340993B (zh) | 运算装置和方法 | |
US11244225B2 (en) | Neural network processor configurable using macro instructions | |
US20210157549A1 (en) | Systolic array component combining multiple integer and floating-point data types | |
CN110688158A (zh) | 计算装置以及神经网络的处理系统 | |
CN108154229B (zh) | 基于fpga加速卷积神经网络框架的图片处理方法 | |
CN107783935B (zh) | 基于动态精度可配运算的近似计算可重构阵列 | |
CN110543936B (zh) | 一种cnn全连接层运算的多并行加速方法 | |
US20190266473A1 (en) | Operation processing apparatus, information processing apparatus and information processing method | |
CN110688088A (zh) | 一种面向神经网络的通用非线性激活函数计算装置和方法 | |
CN110222833A (zh) | 一种用于神经网络的数据处理电路 | |
KR20200026455A (ko) | 인공 신경망 시스템 및 인공 신경망의 고정 소수점 제어 방법 | |
WO2020176248A1 (en) | Neural network layer processing with scaled quantization | |
CN111931925A (zh) | 基于fpga的二值化神经网络的加速系统 | |
CN111507465A (zh) | 一种可配置的卷积神经网络处理器电路 | |
CN113935480B (zh) | 面向神经网络在线学习的激活函数加速处理单元 | |
CN108647780B (zh) | 面向神经网络的可重构池化操作模块结构及其实现方法 | |
CN113191494B (zh) | 一种基于fpga的高效lstm加速器 | |
US11243743B2 (en) | Optimization of neural networks using hardware calculation efficiency and adjustment factors | |
CN111047037A (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 |