CN109447257A - 一种通道自组织的深度神经网络加速芯片的运算装置 - Google Patents
一种通道自组织的深度神经网络加速芯片的运算装置 Download PDFInfo
- Publication number
- CN109447257A CN109447257A CN201811090424.6A CN201811090424A CN109447257A CN 109447257 A CN109447257 A CN 109447257A CN 201811090424 A CN201811090424 A CN 201811090424A CN 109447257 A CN109447257 A CN 109447257A
- Authority
- CN
- China
- Prior art keywords
- neural network
- deep neural
- channel
- calculating
- unit
- 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
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属于集成电路技术领域,具体为一种通道自组织的深度神经网络加速芯片的运算装置。本发明装置包括:多个片上存储模块,用于按通道存储特征值矩阵;一个多行多列的计算单元阵列,用于并行执行卷积、矩阵乘法等运算;一个中央控制单元,用于控制计算过程和数据流向、和同外界的数据交互。计算单元阵列中的同一列计算单元并行处理来自同一个输入通道的计算,同一行并行处理来自同一个输出通道的计算。该装置在计算过程中将数据流按通道与存储器的对应关系进行组织,避免计算单元在多个存储器间交叉访问,减少数据在存储器间的搬运次数,从而提高了芯片的能效。
Description
技术领域
本发明属于集成电路技术领域,具体涉及一种深度神经网络加速芯片的运算装置。
背景技术
当今,深度神经网络算法被广泛地使用于自动驾驶、目标识别与检测、机器翻译等诸多领域之中。随着深度学习算法应用的日益复杂化,传统的CPU和GPU在能效上越发显得捉襟见肘,一系列的深度神经网络算法专用加速芯片应运而生。
深度神经网络算法由很多层组成,每一层的输入特征值和输出特征值都是多个通道组成的矩阵组。输入特征值经过一系列的线性运算(比如卷积、矩阵乘法)后,再通过一个非线性的激活函数,就获得了输出特征值。在神经网络的内部,每一层的输出特征值都是下一层的输入特征值。
由于每层的计算中,多个输入通道之间都存在很大的并行性,技术人员们开发了各种数据流优化技术来提高能效。将多个输入通道的数据存放于多个片上存储器中可以最大限度地提高数据读写的并行性。但是由于多个输入通道的特征值往往在得到最终的输出特征值之前,需要进行跨通道的叠加,这一限制导致了多个片上存储器之间需要相互交换数据,从而影响了最终的能效。
综上所述,如何充分地利用多个输入通道与多个输出通道的数据相关性来获得较高的加速芯片能效,是相关领域技术人员亟待解决的一个问题。
发明内容
本发明的目的在于,提供一种基于多个片上存储器的、数据通道自组织的深度神经网络加速芯片的运算装置。
本发明提出的深度神经网络加速芯片的运算装置,包括:
多个片上存储模块,用于存储参加计算的特征值;
一个深度神经网络计算单元阵列,用于深度神经网络算法中的卷积、和/或矩阵乘法、和/或池化层算法的运算;
中央控制单元,用于控制计算过程和数据流向,以及同外界的数据交互;
所述深度神经网络计算单元阵列,是由若干计算单元排列成的、多行多列的二维空间阵列;在所述中央控制单元的控制下,计算单元阵列以行或列为单位,从所述多个片上存储模块的全部或部分中并行地读取数据,计算后将结果并行地写入所述多个片上存储模块的全部或部分中,形成输入通道与输出通道的自组织。
本发明中,深度神经网络算法中的特征值按照通道序号依次存储于不同的所述存储模块中。
本发明中,计算单元阵列的行数和列数相同。具体地说,在所述计算单元阵列中,
同一列的多个计算单元,从同一个对应的片上存储模块接收用于计算的、来自同一个输入通道的数据,并行地执行同一个输入通道的计算;
同一行的多个计算单元,并行地执行多个输出通道的计算,其产生的输出数据,求和后写入、或直接写入同一个对应的片上存储模块。
本发明中,所述中央控制单元以广播的方式将指令发送给所有的所述计算单元。
本发明中,为了节约功耗,所述中央处理单元可以以行或列为单位关闭部分所述计算单元的时钟信号。
本发明中,所述多个片上存储模块中的每个存储模块,被配置成随机存储器、或多级存储器组成的缓存系统。
本发明的技术效果是,该深度神经网络加速芯片的运算装置能够在计算过程中将数据流按通道与存储器的对应关系进行组织,避免计算单元在多个存储器间交叉访问,减少数据在存储器间的搬运次数,从而提高了芯片的能效。
附图说明
图1为本发明实施例的顶层模块框图。
图2为本发明实施例的乘累加计算单元的结构。
具体实施方式
以下结合具体实施例和附图对本发明的技术方案做进一步说明。应理解,以下描述的实施例是用于对本发明技术方案的说明而非限制。附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
实施例是一个深度神经网络卷积运算加速器的运算装置。图1其顶层模块框图。
所述装置包括16个两级片上存储模块11、一个16x16乘累加计算单元阵列12、中央控制单元13。
每个存储模块11包括一个二级缓存111和一个一级只读缓存112,它们都由片上SRAM实现。一级只读缓存中的数据是对二级缓存中数据的一个拷贝,只允许计算单元从中读取数据;二级缓存允许计算单元直接对其读或写。在计算中,输入特征值按照通道的标号依次存放在16个存储模块中,即第1个输入通道的数据存放在第1个存储模块中,第2个输入通道的数据存放在第2个存储模块中,以此类推。
如图2所示,本实施例中的计算单元121由乘累加器实现,每个计算单元都承担着一个二维卷积的计算。应理解,计算单元的具体实现可以根据需要加速的运算需要选取不同的实现,而不仅限于此。
计算单元阵列中的256个计算单元完全相同。同一列的16个计算单元分享来自同一个存储模块的特征值输入,因此同一时刻,它们的输入总是来自同一个输入通道。
单个计算单元每完成一次二维卷积的同时,同一行的计算单元将产生16个输出,这16个输出通过加法树122叠加产生输出特征值的其中一个通道的一个结果。由于计算单元阵列中有16行,因此同时输出16个输出通道的特征值,并写回对应的存储模块的二级缓存。
写回完成后,第1个输出通道的数据存放在第1个存储模块中,第2个输出通道的数据存放在第2个存储模块中,以此类推。由于输出特征值在16个存储模块中也是按照通道标号分别写回的,因此它们无需调整位置就可以作为下一层的输入特征值,呈现出了通道自组织的特性。
中央控制单元13在本实施例中包括:一个DDR3接口131与片外进行数据交换,和一个AXI4接口132接收来自上位机的指令。
Claims (6)
1.一种通道自组织的深度神经网络加速芯片的运算装置,其特征在于,包括:
多个片上存储模块,用于存储参加计算的特征值;
一个深度神经网络计算单元阵列,用于深度神经网络算法中的卷积、和/或矩阵乘法、和/或池化层算法的运算;
中央控制单元,用于控制计算过程和数据流向,以及同外界的数据交互;
所述深度神经网络计算单元阵列,是由若干计算单元排列成的、多行多列的二维空间阵列;在所述中央控制单元的控制下,计算单元阵列以行或列为单位,从所述多个片上存储模块的全部或部分中并行地读取数据,计算后将结果并行地写入所述多个片上存储模块的全部或部分中,形成输入通道与输出通道的自组织。
2.根据权利要求1所述的深度神经网络加速芯片的运算装置,其特征在于,深度神经网络算法中的特征值按照通道序号依次存储于不同的所述存储模块中。
3.根据权利要求1所述的深度神经网络加速芯片的运算装置,其特征在于,计算单元阵列的行数和列数相同;在所述计算单元阵列中:
同一列的多个计算单元,从同一个对应的片上存储模块接收用于计算的、来自同一个输入通道的数据,并行地执行同一个输入通道的计算;
同一行的多个计算单元,并行地执行多个输出通道的计算,其产生的输出数据,求和后写入、或直接写入同一个对应的片上存储模块。
4.根据权利要求1-3之一所述的深度神经网络加速芯片的运算装置,其特征在于,所述中央控制单元以广播的方式将指令发送给所有的所述计算单元。
5.根据权利要求4所述的深度神经网络加速芯片的运算装置,其特征在于,所述中央处理单元可以以行或列为单位关闭部分所述计算单元的时钟信号,以节约功耗。
6.根据权利要求4所述的深度神经网络加速芯片的运算装置,其特征在于,所述多个片上存储模块中的每个存储模块,被配置成随机存储器、或多级存储器组成的缓存系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811090424.6A CN109447257B (zh) | 2018-09-18 | 2018-09-18 | 一种通道自组织的深度神经网络加速芯片的运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811090424.6A CN109447257B (zh) | 2018-09-18 | 2018-09-18 | 一种通道自组织的深度神经网络加速芯片的运算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109447257A true CN109447257A (zh) | 2019-03-08 |
CN109447257B CN109447257B (zh) | 2021-08-17 |
Family
ID=65530493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811090424.6A Active CN109447257B (zh) | 2018-09-18 | 2018-09-18 | 一种通道自组织的深度神经网络加速芯片的运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109447257B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062471A (zh) * | 2019-11-23 | 2020-04-24 | 复旦大学 | 用于加速bert神经网络运算的深度学习加速器 |
CN113902111A (zh) * | 2021-12-09 | 2022-01-07 | 绍兴埃瓦科技有限公司 | 多芯片互连系统及神经网络加速处理方法 |
CN117271391A (zh) * | 2023-06-20 | 2023-12-22 | 海光信息技术股份有限公司 | 缓存结构和电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445471A (zh) * | 2016-10-13 | 2017-02-22 | 北京百度网讯科技有限公司 | 处理器和用于在处理器上执行矩阵乘运算的方法 |
CN106529668A (zh) * | 2015-11-17 | 2017-03-22 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN106909970A (zh) * | 2017-01-12 | 2017-06-30 | 南京大学 | 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块 |
CN106951395A (zh) * | 2017-02-13 | 2017-07-14 | 上海客鹭信息技术有限公司 | 面向压缩卷积神经网络的并行卷积运算方法及装置 |
US20180046597A1 (en) * | 2016-08-09 | 2018-02-15 | International Business Machines Corporation | True random generator (trng) in ml accelerators for nn dropout and initialization |
CN108241890A (zh) * | 2018-01-29 | 2018-07-03 | 清华大学 | 一种可重构神经网络加速方法及架构 |
WO2018154494A1 (en) * | 2017-02-23 | 2018-08-30 | Cerebras Systems Inc. | Accelerated deep learning |
-
2018
- 2018-09-18 CN CN201811090424.6A patent/CN109447257B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529668A (zh) * | 2015-11-17 | 2017-03-22 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
US20180046597A1 (en) * | 2016-08-09 | 2018-02-15 | International Business Machines Corporation | True random generator (trng) in ml accelerators for nn dropout and initialization |
CN106445471A (zh) * | 2016-10-13 | 2017-02-22 | 北京百度网讯科技有限公司 | 处理器和用于在处理器上执行矩阵乘运算的方法 |
CN106909970A (zh) * | 2017-01-12 | 2017-06-30 | 南京大学 | 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN106951395A (zh) * | 2017-02-13 | 2017-07-14 | 上海客鹭信息技术有限公司 | 面向压缩卷积神经网络的并行卷积运算方法及装置 |
WO2018154494A1 (en) * | 2017-02-23 | 2018-08-30 | Cerebras Systems Inc. | Accelerated deep learning |
CN108241890A (zh) * | 2018-01-29 | 2018-07-03 | 清华大学 | 一种可重构神经网络加速方法及架构 |
Non-Patent Citations (7)
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062471A (zh) * | 2019-11-23 | 2020-04-24 | 复旦大学 | 用于加速bert神经网络运算的深度学习加速器 |
CN111062471B (zh) * | 2019-11-23 | 2023-05-02 | 复旦大学 | 用于加速bert神经网络运算的深度学习加速器 |
CN113902111A (zh) * | 2021-12-09 | 2022-01-07 | 绍兴埃瓦科技有限公司 | 多芯片互连系统及神经网络加速处理方法 |
CN117271391A (zh) * | 2023-06-20 | 2023-12-22 | 海光信息技术股份有限公司 | 缓存结构和电子设备 |
CN117271391B (zh) * | 2023-06-20 | 2024-04-16 | 海光信息技术股份有限公司 | 缓存结构和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109447257B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Eyeriss: An energy-efficient reconfigurable accelerator for deep convolutional neural networks | |
JP7065877B2 (ja) | チップ装置および関連製品 | |
CN102483697B (zh) | 无存储器瓶颈的低能耗高速计算机 | |
Chen et al. | Dadiannao: A machine-learning supercomputer | |
Burr et al. | Large-scale neural networks implemented with non-volatile memory as the synaptic weight element: Comparative performance analysis (accuracy, speed, and power) | |
CN102541774B (zh) | 多粒度并行存储系统与存储器 | |
CN105740946B (zh) | 一种应用细胞阵列计算系统实现神经网络计算的方法 | |
CN109447257A (zh) | 一种通道自组织的深度神经网络加速芯片的运算装置 | |
CN105608490B (zh) | 细胞阵列计算系统以及其中的通信方法 | |
US20160196488A1 (en) | Neural network computing device, system and method | |
CN104571949B (zh) | 基于忆阻器实现计算与存储融合的处理器及其操作方法 | |
CN107608715A (zh) | 用于执行人工神经网络正向运算的装置及方法 | |
CN105718996B (zh) | 细胞阵列计算系统以及其中的通信方法 | |
CN108780432A (zh) | 用于高速缓存无效的设备及方法 | |
CN110326046A (zh) | 用于在数据路径中计算的设备及方法 | |
Taha et al. | Memristor crossbar based multicore neuromorphic processors | |
CN108701476A (zh) | 用于拐角转变的经修改解码 | |
CN109147842A (zh) | 同时进行数据路径中计算操作的设备及方法 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN105612582A (zh) | 可独立寻址的存储器阵列地址空间 | |
CN107667354A (zh) | 存储器中的转译后备缓冲器 | |
CN102541749B (zh) | 多粒度并行存储系统 | |
CN109003640A (zh) | 存储器中子阵列之间的数据传送 | |
CN111752744A (zh) | 用于提供可伸缩架构来用于在存储器中执行计算操作的技术 | |
CN111048135A (zh) | 一种基于忆阻器内存计算的cnn处理装置及其工作方法 |
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 |