CN111126580B - 采用Booth编码的多精度权重系数神经网络加速芯片运算装置 - Google Patents
采用Booth编码的多精度权重系数神经网络加速芯片运算装置 Download PDFInfo
- Publication number
- CN111126580B CN111126580B CN201911141136.3A CN201911141136A CN111126580B CN 111126580 B CN111126580 B CN 111126580B CN 201911141136 A CN201911141136 A CN 201911141136A CN 111126580 B CN111126580 B CN 111126580B
- Authority
- CN
- China
- Prior art keywords
- booth
- neural network
- weight coefficient
- precision
- booth coding
- 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- 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)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Neurology (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明属于集成电路技术领域,具体为一种采用Booth编码的多精度权重系数神经网络加速芯片运算装置。本发明装置包括:Booth编码存储模块,用于存储经过Booth编码后的权重系数矩阵;一维部分积产生单元阵列,用于根据Booth编码对特征值进行对应的操作,输出部分积;加法树,用于对同一时刻不同部分积产生模块产生的结果进行求和;一个带可配置移位器的累加器,用于累加不同时刻加法树的输出。通过控制累加器中移位器的移位位数,本装置可以实现多种精度权重系数的乘累加运算。此装置避免了高精度运算单元在实现低精度运算时硬件利用率低下的问题,可以提高深度神经网络加速芯片在处理低精度权重系数神经网络时的吞吐率。
Description
技术领域
本发明属于集成电路技术领域,具体涉及一种采用Booth编码的支持多种精度权重系数深度神经网络加速芯片的运算装置。
背景技术
当今,深度神经网络算法被广泛的应用于图像分类、物体识别、目标跟踪、语音识别与机器翻译等诸多领域之中。随着深度神经网络量化技术的发展,使用低精度权重系数的深度神经网络在一些对精度要求不是很高的应用中可以取得很好的结果,大大降低了因权重系数产生的存储需求。传统的针对使用高精度权重系数的深度神经网络设计的加速芯片,其运算单元在处理低精度权重系数的运算时,会出现硬件利用率下降的问题,不能完全发挥使用低精度权重系数的深度神经网络算法的潜力,设计支持多精度权重系数的运算装置渐渐成为深度学习加速芯片发展的趋势。
Booth算法是一种高效的计算有符号数乘法的算法,当Booth编码的长度大于2时可以减少乘法运算过程中产生的部分积的数量,从而降低用硬件实现乘法运算的复杂度。
发明内容
本发明的目的在于提供一种支持多精度权重系数的深度神经网络加速芯片的运算装置。
本发明提供的支持多精度权重系数的深度神经网络加速芯片的运算装置,包括:
一个Booth编码存储模块,用于存储经过Booth编码后的权重系数矩阵;
一个一维部分积产生单元阵列,包括多个部分积产生单元,用于根据Booth编码对特征值进行对应的操作,输出部分积;
一个加法树,用于对同一时刻不同部分积产生单元阵列模块产生的结果进行求和;
一个带可配置移位器的累加器,用于累加加法树的输出;
其中:
所述部分积产生单元接受一个特征值、一个Booth编码作为输入,根据Booth编码对特征值进行对应的操作(在采用基-4的Booth编码的情况下,编码的长度为3,一共有8种编码,对应5种可能的操作:置0、保持不变、左移两位、取相反数、取相反数并左移两位),其结果作为加法树第一级中某个加法器的输入;
所述带可配置移位器的累加器,可以通过配置移位器的移位位数,累加具有不同权重的数据。
本发明中,权重系数在片外经过Booth编码后存储在存储模块中。
本发明中,先通过加法树将不同输入通道乘法产生的权重相同的部分积进行求和,再用带可配置移位器的累加器将具有不同权重的部分积求和结果进行累加,以实现权重系数与对应特征值的乘累加运算。
本发明中,在相同的时钟周期内,低精度权重系数的乘累加操作数量是高精度权重系数的乘累加操作数量的数倍,具体倍数取决于两种精度权重系数所用比特数的比值。
本发明装置可以多个同时进行多个输出通道的计算,多个装置在同一时刻的特征值输入相同。
本发明的技术效果是,该支持多种精度权重系数的运算装置可以在保持高硬件利用率的情况下执行低精度权重系数的乘加运算。在运行低精度深度神经网络算法时的吞吐率可以多倍于运行高精度深度神经网络算法时的吞吐率,充分发挥了低精度深度神经网络算法的优势。
附图说明
图1是本发明实施例的顶层模块框图。
图2是本发明实施例的部分积产生单元的结构。
图3是本发明实施例的带可配置移位器的累加器的结构。
具体实施方式
以下结合具体实施例和附图对本发明的技术方案做进一步说明。应理解,以下描述的实施例是用于对本发明技术方案的说明而非限制。附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
实施例是一个基于基-4的Booth编码的支持多精度权重系数的深度神经网络算法的运算装置,可以根据需要采用基于其他基的Booth编码,而不仅限于基-4的Booth编码。图1是其顶层模块框图。
所述装置包括一个Booth编码存储模块11、一个1×4部分积产生单元阵列12、一个两级加法树13和一个带可配置移位器的累加器14。
Booth编码存储模块存储权重系数的Booth编码,由片上SRAM实现。在本实施例中,采用基-4的Booth算法,其编码长度为3比特,存储模块的数据宽度为12比特,因此该存储模块的一个地址可以存储4个Booth编码,这4个Booth编码对应不同的输入通道,并且产生具有相同权重的部分积。
本实施例中的1×4部分积产生单元阵列由4个图2所示的部分积产生单元构成,不同的部分积产生单元接受来自不同通道的特征值,根据对应的Booth编码得到部分积。可根据所需一次处理的输入通道数量调整阵列中部分积产生单元的数量。
由部分积产生单元阵列产生的4个部分积经过一个两级加法树13加起来,其结果送到图3所示的带可配置移位器的累加器14中左移指定的位数后与之前的运算结果求和,并将新的结果暂存在累加器中,等待与下一时刻加法树13的输出结果进行运算,直到得到完整的输出特征值。累加器14中可配置移位器的移位数值与当前部分积的权重相关。
当采用8比特权重系数时,一个权重系数会产生4个长度为3比特的Booth编码,这4个Booth编码的权重从小到达依次为:20、22、24、26。假设特征值的输入通道数为4,则一维部分积产生单元阵列12首先从Booth编码存储模块11中读取4个通道权重为20的权重系数的Booth编码,然后读取4个通道权重为22的权重系数的Booth编码,以此类推,最后读取4个通道权重为26的权重系数的Booth编码;加法树13与累加器14处理数据的顺序与一维部分积产生单元阵列相同,即先处理有相同权重的所有通道的部分积。在处理权重为20的部分积时,累加器14中的移位器的配置为左移0位,处理权重为22的部分积时,移位器的配置为左移2位,依次类推。由于非Booth编码的乘法产生的部分积(权重依次为20、21、22、23、24、25、26、27)数量是基-2的Booth编码乘法的2倍,所以实现相同数量的乘累加操作,花费的时间是本实施例的2倍。
当采用4比特权重系数时,一个权重系数会产生2个长度为3比特的Booth编码(权重分别为20和22),数量是采用8比特权重系数时的一半,因此完成相同数量的乘累加操作,花费的时间也是采用8比特权重系数时的一半。
Claims (5)
1.一种采用Booth编码的多精度权重系数神经网络加速芯片运算装置,其特征在于,包括:
一个Booth编码存储模块,用于存储经过Booth编码后的权重系数矩阵;
一个一维部分积产生单元阵列,包括多个部分积产生单元,用于根据Booth编码对特征值进行对应的操作,输出部分积;
一个加法树,用于对同一时刻不同部分积产生单元阵列产生的结果进行求和;
一个带可配置移位器的累加器,用于累加加法树的输出;
其中,所述部分积产生单元接受一个特征值、一个Booth编码作为输入,根据Booth编码对特征值进行对应的操作,其结果作为加法树第一级中某个加法器的输入;
所述带可配置移位器的累加器通过配置移位器的移位位数,累加具有不同权重的数据。
2.根据权利要求1所述的采用Booth编码的多精度权重系数神经网络加速芯片运算装置,其特征在于,将权重系数在片外进行Booth编码后存储在Booth编码存储模块中。
3.根据权利要求2所述的采用Booth编码的多精度权重系数神经网络加速芯片运算装置,其特征在于,先通过加法树将不同输入通道乘法产生的权重相同的部分积进行求和,再用带可配置移位器的累加器将具有不同权重的部分积求和结果进行累加,以实现权重系数与对应特征值的乘累加运算。
4.根据权利要求3所述的采用Booth编码的多精度权重系数神经网络加速芯片运算装置,其特征在于,在相同的时钟周期内,低精度权重系数的乘累加操作数量是高精度权重系数的乘累加操作数量的数倍,具体倍数取决于两种精度权重系数所用比特数的比值。
5.根据权利要求4所述的采用Booth编码的多精度权重系数神经网络加速芯片运算装置,其特征在于,用多个该装置同时进行多个输出通道的计算,多个装置在同一时刻的特征值输入相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911141136.3A CN111126580B (zh) | 2019-11-20 | 2019-11-20 | 采用Booth编码的多精度权重系数神经网络加速芯片运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911141136.3A CN111126580B (zh) | 2019-11-20 | 2019-11-20 | 采用Booth编码的多精度权重系数神经网络加速芯片运算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111126580A CN111126580A (zh) | 2020-05-08 |
CN111126580B true CN111126580B (zh) | 2023-05-02 |
Family
ID=70495855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911141136.3A Active CN111126580B (zh) | 2019-11-20 | 2019-11-20 | 采用Booth编码的多精度权重系数神经网络加速芯片运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111126580B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897046A (zh) * | 2017-01-24 | 2017-06-27 | 青岛朗思信息科技有限公司 | 一种定点乘累加器 |
CN107797962A (zh) * | 2017-10-17 | 2018-03-13 | 清华大学 | 基于神经网络的计算阵列 |
CN107817708A (zh) * | 2017-11-15 | 2018-03-20 | 复旦大学 | 一种高兼容性可编程神经网络加速阵列 |
CN109284824A (zh) * | 2018-09-04 | 2019-01-29 | 复旦大学 | 一种基于可重构技术的用于加速卷积和池化运算的装置 |
CN109948787A (zh) * | 2019-02-26 | 2019-06-28 | 山东师范大学 | 用于神经网络卷积层的运算装置、芯片及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080225939A1 (en) * | 2007-03-15 | 2008-09-18 | Jiun-In Guo | Multifunctional video encoding circuit system |
US11216722B2 (en) * | 2016-12-31 | 2022-01-04 | Intel Corporation | Hardware accelerator template and design framework for implementing recurrent neural networks |
-
2019
- 2019-11-20 CN CN201911141136.3A patent/CN111126580B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897046A (zh) * | 2017-01-24 | 2017-06-27 | 青岛朗思信息科技有限公司 | 一种定点乘累加器 |
CN107797962A (zh) * | 2017-10-17 | 2018-03-13 | 清华大学 | 基于神经网络的计算阵列 |
CN107817708A (zh) * | 2017-11-15 | 2018-03-20 | 复旦大学 | 一种高兼容性可编程神经网络加速阵列 |
CN109284824A (zh) * | 2018-09-04 | 2019-01-29 | 复旦大学 | 一种基于可重构技术的用于加速卷积和池化运算的装置 |
CN109948787A (zh) * | 2019-02-26 | 2019-06-28 | 山东师范大学 | 用于神经网络卷积层的运算装置、芯片及方法 |
Non-Patent Citations (2)
Title |
---|
Saransh gupta等."NNPIM: A Processing In-Memory Architecture for Neural Network Acceleration".《IEEE Transactions on Computers》.2019,1325-1337页. * |
梁爽."可重构神经网络加速器设计关键技术研究".《信息科技》.2019,正文50-94页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111126580A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635944B (zh) | 一种稀疏卷积神经网络加速器及实现方法 | |
CN107423816B (zh) | 一种多计算精度神经网络处理方法和系统 | |
US10491239B1 (en) | Large-scale computations using an adaptive numerical format | |
CN111832719A (zh) | 一种定点量化的卷积神经网络加速器计算电路 | |
US20180218275A1 (en) | Method of operating neural networks, corresponding network, apparatus and computer program product | |
CN107633298B (zh) | 一种基于模型压缩的递归神经网络加速器的硬件架构 | |
CN111522528A (zh) | 乘法器、乘法运算方法、运算芯片、电子设备及存储介质 | |
CN112286864B (zh) | 加速可重构处理器运行的稀疏化数据处理方法及系统 | |
CN112434801B (zh) | 一种按照比特精度进行权重拆分的卷积运算加速方法 | |
Meng et al. | Exploring compute-in-memory architecture granularity for structured pruning of neural networks | |
Nag et al. | ViTA: A vision transformer inference accelerator for edge applications | |
CN111126580B (zh) | 采用Booth编码的多精度权重系数神经网络加速芯片运算装置 | |
CN109389210B (zh) | 处理方法和处理装置 | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN116167424B (zh) | 基于cim的神经网络加速器、方法、存算处理系统与设备 | |
CN111652359A (zh) | 用于矩阵运算的乘法器阵列和用于卷积运算的乘法器阵列 | |
CN115035384B (zh) | 数据处理方法、装置和芯片 | |
JP7255068B2 (ja) | メモリデバイス及びその動作方法 | |
CN114237548B (zh) | 基于非易失性存储器阵列的复数点乘运算的方法及系统 | |
Yuan et al. | A dnn compression framework for sot-mram-based processing-in-memory engine | |
JP2020013455A (ja) | 畳み込みニューラルネットワークの層において畳み込み演算処理を行なう情報処理装置 | |
CN113988279A (zh) | 一种支持负值激励的存算阵列输出电流读出方法及系统 | |
Kumar et al. | Complex multiplier: implementation using efficient algorithms for signal processing application | |
CN111078189B (zh) | 用于循环神经网络自然语言处理的稀疏矩阵乘法加速器 | |
CN109117114B (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 |