CN111126579B - 一种适用于二值卷积神经网络计算的存内计算装置 - Google Patents
一种适用于二值卷积神经网络计算的存内计算装置 Download PDFInfo
- Publication number
- CN111126579B CN111126579B CN201911067669.1A CN201911067669A CN111126579B CN 111126579 B CN111126579 B CN 111126579B CN 201911067669 A CN201911067669 A CN 201911067669A CN 111126579 B CN111126579 B CN 111126579B
- Authority
- CN
- China
- Prior art keywords
- exclusive
- memory
- computing
- neural network
- input
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims abstract description 22
- 230000003068 static effect Effects 0.000 claims abstract description 13
- 238000013528 artificial neural network Methods 0.000 claims abstract description 6
- 238000013139 quantization Methods 0.000 claims abstract description 6
- 238000012805 post-processing Methods 0.000 claims abstract description 5
- 239000013598 vector Substances 0.000 claims abstract description 5
- 241001442055 Vipera berus Species 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- 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 Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Memory System (AREA)
Abstract
本发明属于集成电路技术领域,具体为一种适用于二值卷积神经网络计算的存内计算装置。本装置包括:基于静态随机存储器的存内计算阵列,用于实现向量间异或运算;一个多输入加法树,用于对不同输入通道内的异或结果进行累加;一个暂存中间结果的存储单元;一个更新中间结果的累加器组;一个后处理量化单元,用于将高精度的累加结果量化为1位输出特征值;一个控制单元,用于控制计算流程和数据流向。本发明发明能在存储输入数据同时完成二值神经网络中的异或运算,避免了存储单元与计算单元之间频繁的数据交换,从而提高了计算速度,减少了芯片功耗。
Description
技术领域
本发明属于集成电路技术领域,具体涉及一种适用于二值卷积神经网络计算的存内计算装置。
背景技术
当今,得益于深度卷积神经网络的不断发展,其被广泛应用于图像分类、自动驾驶、目标识别与跟踪、语音识别等各个领域中。为了追求更高的精度,深度卷积网络层数、宽度不断增加,与之增大的计算量与数据存储量使其不适合与计算资源、电源容量有限的终端计算设备上。
为上述深度卷积神经网络算法与硬件实现的冲突,各种量化方法应运而生。低精度、甚至二值卷积神经网络在各个领域应用中可以达到接近于高精度卷积神经网络的性能。
在二值卷积神经网络中,权重以及输入、输出特征值均被量化为1位,用-1或1表示两种不同的状态。如此,复杂的乘法运算便被简单的异或运算替代。
传统的硬件计算平台,如CPU/GPU仍采用计算单元与存储单元分立的冯诺依曼结构。存储单元与计算单元之间需要频繁的、大量的数据交互。如此,不仅降低了计算速度,更使功耗浪费在了数据搬运的过程中。
为了解决存算分立带来的问题,本发明将异或计算电路整合到静态随机存储器中,实现了存储与计算一体的适用于二值卷积神经网络的存内计算装置。与CPU/GPU相比,该装置可以得到更高的能效。
发明内容
为克服上述现有技术的缺点,本发明提供了一种适合二值卷积神经网络计算的存内计算装置。
本发明提供的适用于二值卷积神经网络计算的存内计算装置,包括:
一个存内计算阵列,用于计算二值卷积神经网络中权重与输入特征值之间的异或运算;
一个多输入加法树,用于求和不同输入通道内的异或结果;
一个累加器组与中间结果存储单元,用于累加并更新同一卷积核内的中间结果;
一个后处理量化单元,用于将高位宽的累加结果量化为一位输出特征值;
一个控制单元,用于控制计算流程和数据流向。
所述存内计算阵列,是有多个输入特征值存储计算向量与多个权重存储计算向量组成的二维阵列;所述控制单元用于控制存内计算阵列任意两行实现异或运算,计算的结果经过累加、量化后得到一个输出通道的输出特征值。
本发明中,所述存内计算阵列中,由一个权重存储单元、一个特征值存储单元和一个异或计算电路构成一个异或存储计算单元;多个异或存储计算单元连接至同一权重字线、特征字线、异或字线以及异或位线上构成存内计算阵列中的一个存储计算行。
权重根据输入通道、输出通道索引存储于不同存储计算行。
特征值根据输入通道索引存储于不同的存储计算行。
控制单元可以根据输入的权重地址、输入特征值地址,按照静态随机存储器的读写时序完成存内计算阵列中任意两行的异或运算。
本发明中,所述权重存储单元为由两个反相器I1、I2以及两个NMOS晶体管M1、M2构成的静态随机存储器单元,用于存储权重;所述特征值存储单元是由两个反相器I3、I4以及两个NMOS晶体管M7、M8构成的静态随机储存器单元,用于存储输入特征值;所述异或计算电路由NMOS晶体管M3至M6构成;其中:
权重存储单元中反相器输出端驱动异或计算电路晶体管M3、M4的栅极;特征值存储单元中输出晶体管M7、M8源极驱动异或计算电路M3、M4的源极。通过存储的权重以及输入特征值电压,决定异或计算电路M3至M6的导通与关断,实现异或计算。
本发明中,晶体管M3至M6采用低阈值电压晶体管,保证异或计算电路导通通路能够完全开启。
本发明能在存储输入数据同时完成二值神经网络中的异或运算,避免了存储单元与计算单元之间频繁的数据交换,从而提高了计算速度,减少了芯片功耗。
附图说明
图1是本发明的顶层电路模块框图。
图2是本发明的一个存内计算单元的电路图。
具体实施方式
下面结合实施例和图示进一步具体描述本发明,本发明提供的实施例,不应该被认为仅限于在此阐述的实施例。
实施例是一个适用于二值卷积神经网络计算的存内计算装置。图1为其顶层电路模块框图。
所述装置包括一个256x128的存内计算阵列,一个128输入的加法树,一个用于存储中间结果的静态随机存储单元以及对应的用于更新中间结果的累加器组,一个后处理量化单元以及控制单元。
存内计算阵列的每一行都可以存储权重或输入特征图的128个输入通道。控制单元根据权重和输入特征图地址选取对应的两行完成异或运算。
存内计算阵列的异或输出结果经过加法树,将128个输入通道上的结果累加得到中间结果。
若二值卷积神经网络的输入通道大于128,当前周期加法树产生的中间结果需要同存储于中间结果存储单元中的前一周期的中间结果在累加器组内完成累加,以得到高精度输出特征值或更新中间结果。
高精度的输入特征值在后处理量化单元中被量化为一位,得到二值卷积神经网络某一卷积层的最终输出。
图2为存内计算单元的晶体管电路实现。静态随机存储单元(反相器I1、I2,晶体管M1、M2;反相器I7、I8,晶体管M3、M4)分别存储一个权重和输入特征值,晶体管M3至M6构成异或计算电路。权重存储单元反相器输出端驱动异或计算电路晶体管M3、M4的栅极;特征值存储单元输出晶体管M7、M8源极驱动异或计算电路M3、M4的源极。
该存内计算单元分为两个操作步骤:写操作与异或操作。
写操作时,写位线1,写位线2分别加载权重或输入特征值的互补电平,权重字线或异或特征字线拉高,将权重或输入特征值写入对应的静态随机存储单元中。
异或操作时,写位线1、写位线2、权重字线拉低,特征字线、异或字线拉高,异或位线预充电。若权重静态随机存储单元中存1,则晶体管M4栅极为高导通,M3栅极为低关断。此时,若输入特征值静态随机存储单元中存1,则高电平经过晶体管M8、M4驱动晶体管M6栅极,M6导通。拉高异或字线,此时原本拉高的异或位线被拉低,输出低电平0。若输入特征值静态随机存储单元此时存0(表示二值卷积神经网络中的-1),则晶体管M6栅极为0,M6关断。原本拉高的异或位线不能被拉低,输出高电平1。遍历所有存储情况可知,该存内计算单元可实现异或运算。
以上通过具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
Claims (4)
1.一种适用于二值卷积神经网络计算的存内计算装置,其特征在于,包括:
一个存内计算阵列,用于计算二值卷积神经网络中权重与输入特征值之间的异或运算;
一个多输入加法树,用于求和不同输入通道内的异或结果;
存内计算阵列的异或输出结果经过加法树,将输入通道上的结果累加得到中间结果;
一个累加器组与中间结果存储单元,用于累加并更新同一卷积核内的中间结果;
一个后处理量化单元,用于将高位宽的累加结果量化为一位输出特征值;其中,
二值卷积神经网络的输入通道大于128,当前周期加法树产生的中间结果需要同存储于中间结果存储单元中的前一周期的中间结果在累加器组内完成累加,以得到更新中间结果;
一个控制单元,用于控制计算流程和数据流向;
所述存内计算阵列是有多个输入特征值存储计算向量与多个权重存储计算向量组成的二维阵列;所述控制单元用于控制存内计算阵列任意两行实现异或运算,计算的结果经过累加、量化后得到一个输出通道的输出特征值。
2.根据权利要求1所述的适用于二值卷积神经网络计算的存内计算装置,其特征在于,所述存内计算阵列中,由一个权重存储单元、一个特征值存储单元和一个异或计算电路构成一个异或存储计算单元;多个异或存储计算单元连接至同一权重字线、特征字线、异或字线以及异或位线上构成存内计算阵列中的一个存储计算行;
权重根据输入通道、输出通道索引存储于不同存储计算行;
特征值根据输入通道索引存储于不同的存储计算行;
控制单元根据输入的权重地址、输入特征值地址,按照静态随机存储器的读写时序完成存内计算阵列中任意两行的异或运算。
3.根据权利要求2所述的适用于二值卷积神经网络计算的存内计算装置,其特征在于,所述权重存储单元为由两个反相器I1、I2以及两个NMOS晶体管M1、M2构成的静态随机存储器单元,用于存储权重;所述特征值存储单元是由两个反相器I3、I4以及两个NMOS晶体管M7、M8构成的另一静态随机储存器单元,用于存储输入特征值;所述异或计算电路由NMOS晶体管M3至M6构成;其中:
权重存储单元中反相器输出端驱动异或计算电路晶体管M3、M4的栅极;特征值存储单元中输出晶体管M7、M8源极驱动异或计算电路M3、M4的源极;通过存储的权重以及输入特征值电压,决定异或计算电路M3至M6的导通与关断,实现异或计算。
4.根据权利要求3所述的适用于二值卷积神经网络计算的存内计算装置,其特征在于,晶体管M3至M6采用低阈值电压晶体管,保证异或计算电路导通通路能够完全开启。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911067669.1A CN111126579B (zh) | 2019-11-05 | 2019-11-05 | 一种适用于二值卷积神经网络计算的存内计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911067669.1A CN111126579B (zh) | 2019-11-05 | 2019-11-05 | 一种适用于二值卷积神经网络计算的存内计算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111126579A CN111126579A (zh) | 2020-05-08 |
CN111126579B true CN111126579B (zh) | 2023-06-27 |
Family
ID=70495517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911067669.1A Active CN111126579B (zh) | 2019-11-05 | 2019-11-05 | 一种适用于二值卷积神经网络计算的存内计算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111126579B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614398B (zh) * | 2020-05-12 | 2021-06-11 | 北京邮电大学 | 基于异或神经网络的调制格式及信噪比识别方法及装置 |
CN111984921B (zh) * | 2020-08-27 | 2024-04-19 | 华中科技大学 | 一种存内数值计算加速器及存内数值计算方法 |
CN112151091B (zh) * | 2020-09-29 | 2023-03-21 | 中科南京智能技术研究院 | 一种8t sram单元及存内计算装置 |
WO2022165808A1 (zh) * | 2021-02-07 | 2022-08-11 | 华为技术有限公司 | 存储电路及存储器 |
CN113222107A (zh) * | 2021-03-09 | 2021-08-06 | 北京大学 | 数据处理方法、装置、设备及存储介质 |
CN113642706A (zh) * | 2021-08-10 | 2021-11-12 | 中国科学院上海微系统与信息技术研究所 | 神经元网络单元、卷积运算模块以及卷积神经网络 |
CN113743046B (zh) * | 2021-09-16 | 2024-05-07 | 上海后摩智能科技有限公司 | 存算一体版图结构和数据拆分存算一体版图结构 |
CN115660057B (zh) * | 2022-12-13 | 2023-05-12 | 至讯创新科技(无锡)有限公司 | Nand闪存实现卷积运算的控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007226944A (ja) * | 2006-01-26 | 2007-09-06 | Mitsubishi Electric Corp | 半導体メモリ及び半導体集積回路 |
CN106875011A (zh) * | 2017-01-12 | 2017-06-20 | 南京大学 | 二值权重卷积神经网络加速器的硬件架构及其计算流程 |
CN107153873A (zh) * | 2017-05-08 | 2017-09-12 | 中国科学院计算技术研究所 | 一种二值卷积神经网络处理器及其使用方法 |
CN107203808A (zh) * | 2017-05-08 | 2017-09-26 | 中国科学院计算技术研究所 | 一种二值卷积装置及相应的二值卷积神经网络处理器 |
CN109784483A (zh) * | 2019-01-24 | 2019-05-21 | 电子科技大学 | 基于fd-soi工艺的二值化卷积神经网络内存内计算加速器 |
KR20190092299A (ko) * | 2018-01-30 | 2019-08-07 | 연세대학교 원주산학협력단 | 딥러닝 기술을 통한 흉부 물질 분리 영상 획득 방법 및 시스템 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563825B2 (en) * | 2014-11-20 | 2017-02-07 | Adobe Systems Incorporated | Convolutional neural network using a binarized convolution layer |
US11687762B2 (en) * | 2018-02-27 | 2023-06-27 | Stmicroelectronics S.R.L. | Acceleration unit for a deep learning engine |
-
2019
- 2019-11-05 CN CN201911067669.1A patent/CN111126579B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007226944A (ja) * | 2006-01-26 | 2007-09-06 | Mitsubishi Electric Corp | 半導体メモリ及び半導体集積回路 |
CN106875011A (zh) * | 2017-01-12 | 2017-06-20 | 南京大学 | 二值权重卷积神经网络加速器的硬件架构及其计算流程 |
CN107153873A (zh) * | 2017-05-08 | 2017-09-12 | 中国科学院计算技术研究所 | 一种二值卷积神经网络处理器及其使用方法 |
CN107203808A (zh) * | 2017-05-08 | 2017-09-26 | 中国科学院计算技术研究所 | 一种二值卷积装置及相应的二值卷积神经网络处理器 |
KR20190092299A (ko) * | 2018-01-30 | 2019-08-07 | 연세대학교 원주산학협력단 | 딥러닝 기술을 통한 흉부 물질 분리 영상 획득 방법 및 시스템 |
CN109784483A (zh) * | 2019-01-24 | 2019-05-21 | 电子科技大学 | 基于fd-soi工艺的二值化卷积神经网络内存内计算加速器 |
Non-Patent Citations (3)
Title |
---|
A Multilevel Cell STT-MRAM-Based Computing In-Memory Accelerator for Binary Convolutional Neural Network;Yu Pan et al.;《IEEE TRANSACTIONS ON MAGNETICS》;第第54卷卷(第第11期期);第9401305-1-5页 * |
An Energy-Efficient Architecture for Binary Weight Convolutional Neural Networks;Yizhi Wang et al.;《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEM》;第第26卷卷(第第2期期);第280-293页 * |
OCEAN: an On-Chip Incremental-Learning Enhanced Processor with Gated Recurrent Neural Network Accelerators;Chixiao Chen et al.;《IEEE》;第259-262页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111126579A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111126579B (zh) | 一种适用于二值卷积神经网络计算的存内计算装置 | |
CN110597555B (zh) | 非易失性存内计算芯片及其运算控制方法 | |
US11625584B2 (en) | Reconfigurable memory compression techniques for deep neural networks | |
Moons et al. | Minimum energy quantized neural networks | |
Chen et al. | Design and optimization of FeFET-based crossbars for binary convolution neural networks | |
CN109902822B (zh) | 基于斯格明子赛道存储器的内存计算系统及方法 | |
US11966714B2 (en) | Ternary in-memory accelerator | |
US20220269483A1 (en) | Compute in memory accumulator | |
CN114791796A (zh) | 一种基于分离栅闪存晶体管的多输入计算单元及其计算方法 | |
Karimzadeh et al. | Towards energy efficient dnn accelerator via sparsified gradual knowledge distillation | |
Yi et al. | Effect of device variation on mapping binary neural network to memristor crossbar array | |
CN118036682A (zh) | 加法神经网络的存内计算实现方法、装置、设备及介质 | |
Chen et al. | A novel memristor-based restricted Boltzmann machine for contrastive divergence | |
CN108154226B (zh) | 一种使用模拟计算的神经网络芯片 | |
Manikandan et al. | Approximation computing techniques to accelerate CNN based image processing applications–a survey in hardware/software perspective | |
CN115424645A (zh) | 计算器件、存储器控制器和执行存储器中计算的方法 | |
CN114898792A (zh) | 多比特存内内积暨异或单元、异或向量及操作方法 | |
CN110245749B (zh) | 用于执行同或运算的计算单元、神经网络及方法 | |
US20240304254A1 (en) | Memory device for signed multi-bit to multi-bit multiplications | |
US20240304253A1 (en) | Memory device for summation of outputs of signed multiplications | |
US20240303039A1 (en) | Memory device for multiplication using memory cells having different bias levels based on bit significance | |
US20240303296A1 (en) | Memory device performing signed multiplication using sets of two memory cells | |
US20240304255A1 (en) | Memory device for multiplication using memory cells with different thresholds based on bit significance | |
Asano et al. | Error-Sensitivity-Aware Write-Energy Optimization for an MTJ-Based Binarized Neural Network | |
Zhang | Efficient In-and Near-Memory Computing System With Hardware and Software Co-Design |
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 |