CN110288078A - 一种针对GoogLeNet模型的加速器及其方法 - Google Patents

一种针对GoogLeNet模型的加速器及其方法 Download PDF

Info

Publication number
CN110288078A
CN110288078A CN201910416021.4A CN201910416021A CN110288078A CN 110288078 A CN110288078 A CN 110288078A CN 201910416021 A CN201910416021 A CN 201910416021A CN 110288078 A CN110288078 A CN 110288078A
Authority
CN
China
Prior art keywords
carrier
vector
read
matrix
array
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
Application number
CN201910416021.4A
Other languages
English (en)
Other versions
CN110288078B (zh
Inventor
王瑶
席挺
王宇宣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University 5d Technology Co ltd
Original Assignee
Nanjing Weixin Photoelectric System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Weixin Photoelectric System Co Ltd filed Critical Nanjing Weixin Photoelectric System Co Ltd
Priority to CN201910416021.4A priority Critical patent/CN110288078B/zh
Publication of CN110288078A publication Critical patent/CN110288078A/zh
Application granted granted Critical
Publication of CN110288078B publication Critical patent/CN110288078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/067Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means
    • G06N3/0675Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means using electro-optical, acousto-optical or opto-electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开一种针对GoogLeNet模型的加速器及其方法。加速器包括:控制器,用于控制卷积运算和全连接运算的控制信号流和数据流,并把最终结果输出保存到存储器中;光电计算阵列,用于完成卷积运算和全连接运算映射后的矩阵向量乘操作;模数转换器,用于将光电计算阵列输出的电流转化为数字信号;激活函数单元,用于完成卷积运算和全连接运算结果的加偏置和激活函数操作;池化单元,用于完成结果的最大值池化操作。本发明基于光电计算阵列实现GoogLeNet模型的卷积操作和全连接操作,能有效加速GoogLeNet模型的推断过程,具有高能效和无需反复访问片外存储等优点。

Description

一种针对GoogLeNet模型的加速器及其方法
技术领域
本发明涉及一种基于光电计算阵列的GoogLeNet模型的加速器及其方法,属于光电计算领域以及神经网络算法领域。
背景技术
神经网络是当前人工智能领域的研究热点,而提升神经网络性能最直接的办法就是增加网络深度和宽度,其中,深度指网络层次数量,宽度指神经元数量。但这种方式存在以下问题:(1)参数太多,如果训练数据集有限,很容易产生过拟合;(2)网络越大、参数越多,计算复杂度越大,难以应用;(3)网络越深,容易出现梯度弥散问题(梯度越往后穿越容易消失),难以优化模型。解决这些问题的方法是在增加网络深度和宽度的同时减少参数。而为了减少参数,需要将全连接变成稀疏连接。但是在实现上,全连接变成稀疏连接后实际计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然数据量少,但是计算所消耗的时间却很难减少。
针对上述问题,GoogLeNet团队提出了Inception网络结构,通过设计一个稀疏网络结构,能够产生稠密的数据,既能增加神经网络表现,又能保证计算资源的使用效率,在实验中取得了不错的效果。然而由于GoogLeNet模型相当庞大,卷积运算和全连接运算所需的特征图和权重数据规模庞大,导致了在数据传输上产生了极大的能量消耗,并且传统计算系统的运算速度较慢。
发明内容
为了克服现有计算系统的不足,本发明针对GoogLeNet模型提出一种加速器结构。本发明的另外一个目的是提供该加速器的加速方法。
本发明加速器采用的技术方案如下:
一种针对GoogLeNet模型的加速器,包括:控制器,用于控制卷积运算和全连接运算的控制信号流和数据流,并把最终结果输出保存到存储器中;光电计算阵列,用于完成卷积运算和全连接运算映射后的矩阵向量乘操作;模数转换器,用于将光电计算阵列输出的电流转化为数字信号;激活函数单元,用于完成卷积运算和全连接运算结果的加偏置和激活函数操作;池化单元,用于完成结果的最大值池化操作。
进一步地,所述光电计算阵列由多个光电计算单元周期性排列组成,每个光电计算单元包括发光单元和计算单元,发光单元发出的光入射到计算单元中;每个计算单元包括载流子控制区、耦合区、以及光生载流子收集区和读出区;所述载流子控制区用于控制并调制光生载流子收集区和读出区内的载流子;所述光生载流子收集区和读出区中的收集区用于吸收发光单元发射的光子并收集产生的光生载流子;所述载流子控制区或者光生载流子收集区和读出区中的读出区与电信号连接,读出区用于输出被所述光生载流子和所述电信号作用后的载流子;所述耦合区连接收集区和读出区。
进一步地,加速器还包括辅助分类器,用于避免梯度消失,所述辅助分类器连接在卷积层之后。
本发明利用光电计算阵列完成模型中卷积运算和全连接运算映射后的矩阵向量乘操作,其中,卷积运算具体包括如下步骤:
(1)将模型中每层的各个卷积核展开,排列成矩阵,并将每层的输入特征图展开成向量形式;在输入特征图为多通道的情况下,将各通道特征图展开得到的向量首尾拼接,同时各通道卷积核展开得到的矩阵以对应的方式进行拼接;
(2)将光电计算单元排列成阵列,阵列的行列数与步骤(1)卷积核展开形成的矩阵行列数相同;将阵列中每一列计算单元的光生载流子收集区和读出区的输出端依次相连,每一行计算单元的载流子控制区依次相连;
(3)所述发光单元发出被设置为矩阵数据的光信号,并入射到对应的计算单元的光生载流子收集区和读出区,所述矩阵数据即为卷积核中的权值数据;输入特征图展开得到的向量中每个元素被转化为二进制,并按照比特位高低串行地将代表二值化后数据的载流子输入到各个行的载流子控制区中,作为向量数据;
(4)所述计算单元的光生载流子收集区和读出区的输出端输出受矩阵数据和向量数据共同作用后的载流子,并在固定电压的驱动下以电流的形式输出,并按列汇聚,经过AD转换后,再完成移位和累加操作,即得到中间结果向量;
(5)将得到的所有中间结果向量的相同位取出,按照步骤(1)输入特征图展开方式进行重组,得到输出特征图的一个通道,输出特征图的通道数即为卷积核的组数,将中间结果向量全部重组后得到输出特征图,得到的输出特征图加上偏置,再加上激活函数,得到卷积层的计算结果。
进一步地,将步骤(5)得到的卷积层的计算结果转化为向量输入给全连接层的光电计算阵列,所述光电计算阵列的行数和列数分别等于全连接层输入神经元数和输出神经元数;全连接层输入神经元数直接作为矩阵的行数,输入的每个元素被转化为二进制,并按照比特位高低串行地将代表二值化后数据的载流子输入到光电计算阵列各个行的载流子控制区中,作为向量数据;矩阵数据使用全连接层对应神经元之间的权值数据;在光电计算阵列计算完成后,每一列输出结果对应一个输出神经元,并直接进行加偏置以及激活计算,得到最终结果。
本发明的加速器及其方法利用光电计算阵列可以实现高精度的存-算一体功能,设计出基于光电计算阵列的矩阵向量乘计算单元,并且使用此矩阵向量乘计算单元进行GoogLeNet模型中的卷积操作和全连接操作,池化操作则由通用数字逻辑运算,从而能有效加速GoogLeNet模型的推断过程,具有高能效、体积小和无需反复访问片外存储等优点。
附图说明
图1是计算单元的多功能区框图。
图2是光电计算阵列的结构示意图,其中:1-发光阵列,2-计算阵列。
图3是实施例1计算单元结构的(a)截面图和(b)立体图。
图4是实施例2计算单元结构的(a)截面图和(b)立体图。
图5是实施例3计算单元的(a)结构示意图和(b)多功能区示意图。
图6是Inception基本结构。
图7是实施例4的卷积映射为矩阵向量乘示意图,(a)为n个卷积核对一张特征图进行卷积操作,输出n个通道的结果;(b)为特征图中对应卷积核的区域按列方向展开作为输入,n个卷积核按列方向展开后拼接为卷积核矩阵,乘法的结果为n列矩阵,每一列对应图(a)中一个通道的结果。
图8是实施例4的光电计算阵列结构示意图。
具体实施方式
本发明提供一种基于光电计算阵列的GoogLeNet模型的加速器及其方法。加速器包括:外部控制器,用于控制卷积运算和全连接运算的控制信号流和数据流,以完成输入数据的分割转化、卷积运算和全连接运算映射、中间计算结果缓存、控制光电计算阵列工作、控制模数转换器工作、非线性激活、池化等操作,并把最终结果输出保存到存储器中;光电计算阵列,完成卷积运算和全连接运算映射后的矩阵向量乘操作;模数转换器,将光电运算阵列输出的电流转化为数字信号;激活函数单元,完成卷积运算和全连接运算结果的加偏置和激活函数操作;池化单元,完成结果的最大值池化操作。
如图1所示,光电计算阵列中的计算单元为包括三大功能区的多功能区结构,其中三大功能区为:载流子控制区、耦合区、光生载流子收集区和读出区,具体功能分别如下:
载流子控制区:负责控制并调制光电计算单元内的载流子,并且作为光电计算单元的电输入端口,输入其中一个运算量作为电输入量;或者只控制并调制光电计算单元内的载流子,通过其他区域输入电输入量。
耦合区:负责连接光生载流子收集区和读出区,使得光子入射产生的光生载流子作用于光电计算单元内的载流子,形成运算关系。
光生载流子收集区和读出区:其中收集区负责吸收入射的光子并收集产生的光生载流子,并且作为光电计算单元的光输入端口,输入其中一个运算量作为光输入量;读出区可以作为光电计算单元的电输入端口,输入其中一个运算量作为电输入量,并且作为光电计算单元的输出端口,输出被光输入量和电输入量作用后的载流子作为单元输出量;或者通过其他区域输入电输入量,读出区只作为光电计算单元的输出端口,输出被光输入量和电输入量作用后的载流子,作为单元输出量。
发光单元发出的光作为入射计算单元光生载流子收集和读出区的光子,参与运算。光电计算阵列包括发光阵列1和计算阵列2,结构如图2所示。发光阵列1由多个发光单元周期性排列组成,计算阵列2由多个计算单元周期性排列组成。
实施例1
如图3所示,本实施例的计算单元包括:作为载流子控制区的控制栅极、作为耦合区的电荷耦合层,以及作为光生载流子收集区和读出区的P型衬底,P型衬底中分为左侧收集区和右侧读出区,其中右侧读出区中包括浅槽隔离、通过离子注入形成的N型源端和N型漏端。浅槽隔离位于半导体衬底中部、收集区和读出区的中间,浅槽隔离通过刻蚀并填充入二氧化硅来形成,以用于隔离收集区和读出区的电信号。N型源端位于读出区内靠近底层介质层的一侧,通过离子注入法掺杂而形成。N型漏端位于半导体衬底中靠近底层介质层与N型源端相对的另一侧,同样通过离子注入法进行掺杂法形成。应理解,本文中提及的左侧、右侧、上方以及下方只代表在通过图中所示视角观察下的相对位置随观察视角变化而变化,并不理解为对具体结构的限制。
在收集区的衬底上施加一个电压范围为负压的脉冲,或在控制栅上施加一个电压范围为正压的脉冲,使得收集区衬底中产生用于光电子收集的耗尽层,并通过右侧读出区读出收集的光电子数量,作为光输入端的输入量。读出时,在控制栅极上施加一正电压,使N型源端和收集区N型漏端间形成导电沟道,再通过在N型源端和N型漏端间施加一个偏置脉冲电压,使得导电沟道内的电子加速形成源漏之间的电流。源漏之间沟道内形成电流的载流子,受到控制栅电压、源漏间电压和收集区收集的光电子数量共同作用,作为被光输入量和电输入量共同作用后的电子,以电流的形式进行输出,其中控制栅电压、源漏间电压可以作为器件的电输入量,光电子数量则为器件的光输入量。
耦合区的电荷耦合层用于连接收集区和读出区,使收集区衬底内耗尽区开始收集光电子以后,收集区衬底表面势就会受到收集的光电子数量影响;通过电荷耦合层的连接,使得读出区半导体衬底表面势受到收集区半导体衬底表面势影响,进而影响读出区源漏间电流大小,从而通过判断读出区源漏间电流来读出收集区收集的光电子数量。
载流子控制区的控制栅,用以在其上施加一个脉冲电压,使得在P型半导体衬底读出区中产生用于激发光电子的耗尽区,同时也可以作为电输入端,输入其中一位运算量。
此外,P型半导体衬底和电荷耦合层之间存在用于隔离的底层介质层;电荷耦合层和控制栅之间亦存在用于隔离的顶层介质层。
实施例2
如图4所示,本实施例的计算单元包括:作为载流子控制区的控制栅极、作为耦合区的电荷耦合层,以及作为光生载流子收集区和读出区的P型半导体衬底,其中P型衬底中包含通过离子注入形成的N型源端和漏端。P型半导体衬底可以同时承担感光和读出的工作。N型源端位于读出区内靠近底层介质层的一侧,通过离子注入法掺杂而形成。N型漏端位于半导体衬底中靠近底层介质层与所述N型源端相对的另一侧,同样通过离子注入法进行掺杂法形成。
感光时,在P型半导体衬底上施加一个电压范围为负压的脉冲,同时在作为载流子控制区的控制栅极上施加一个电压范围为正压的脉冲,使得P型衬底中产生用于光电子收集的耗尽层,产生在耗尽区内的电子在控制栅极和P型衬底两端之间的电场作用下被加速,并在到达获得足够高的能量,穿过P型衬底和电荷耦合层之间的底层介质层势垒,进入电荷耦合层并储存于此,电荷耦合层中的电荷数量,会影响器件开启时的阈值,进而影响读出时的源漏间电流大小;读出时,在控制栅极上施加一脉冲电压,使N型源端和N型漏端间形成导电沟道,再通过在N型源端和N型漏端间施加一个脉冲电压,使得导电沟道内的电子加速形成源漏之间的电流。源漏之间的电流受到控制栅脉冲电压、源漏间电压和电荷耦合层中存储的电子数量共同作用,作为被光输入量和电输入量共同作用后的电子,以电流的形式进行输出,其中控制栅电压、源漏间电压可以作为器件的电输入量,电荷耦合层中存储的光电子数量则为器件的光输入量。
耦合区的电荷耦合层用于储存进入其中的光电子,并改变读出时器件阈值大小,进而影响读出区源漏间电流,从而通过判断读出区源漏间电流来读出感光时产生并且进入电荷耦合层中的光电子数量。
载流子控制区的控制栅,用以在其上施加一个脉冲电压,使得在P型半导体衬底读出区中产生用于激发光电子的耗尽区,同时也可以作为电输入端,输入其中一位运算量。
此外,P型半导体衬底和电荷耦合层之间存在一层用于隔离的底层介质层;电荷耦合层和控制栅之间亦存在一层用于隔离的顶层介质层。
实施例3
如图5所示,本实施例的计算单元包括:作为光生载流子收集和读出区的光电二极管和读出管,其中,光电二极管通过离子掺杂形成,负责感光。光电二极管的N区通过作为耦合区的光电子耦合引线连接到读出管的控制栅和复位管的源端上,读出管的漏端施加一正电压脉冲,作为读出电流的驱动电压;曝光前,复位管打开,复位管漏端电压施加到光电二极管上,使作为收集区的光电二极管处于反偏状态,产生耗尽层;曝光时,复位管关断,光电二极管被电学上隔离,光子入射光电二极管耗尽区后产生光电子,并在二极管中积累,二极管的N区和在电学上通过作为耦合区的光电子耦合引线和N区连接的读出管控制栅电势开始下降,进而影响读出管沟道内的电子浓度。读出管负责读出,其漏端施加一正脉冲电压,源端和选址管漏端连接,读出时,打开选址管,读出管中产生电流电流,电流大小受到复位管漏端电压、读出管漏端电压和入射光子数共同影响,读出管沟道内的电子,作为被光输入量和电输入量共同作用后的电子,以电流的形式输出,其中复位管漏端电压、读出管漏端电压可以作为器件的电输入量,电入射光子数则为器件的光输入量。
耦合区的光电子耦合引线用于连接作为光生载流子收集和读出区中收集区的光电二极管和作为读出区的读出管,将光电二极管N区电势施加到读出管控制栅上。
作为载流子控制区的复位管,通过其漏端输入一个正电压作用于光电二极管,当复位管打开时,正电压即会作用在光电二极管上,使光电二极管产生耗尽区并感光,同时也可以作为电输入端,输入其中一位运算量。
此外,选址管用于控制整个运算器件作为输出量的输出电流的输出,可以在光电计算单元组成阵列时行列选址使用。
实施例4
本实施例的GoogLeNet模型采用模块化的结构,方便增添和修改,深度总共为22层。整个模型有多个Inception结构组成,Inception是一种稀疏网络结构,能够产生稠密的数据,既能增加神经网络表现,又能保证计算资源的使用效率,其基本结构如图6所示。
下面以Inception结构为例,详细阐述基于光电计算阵列的GoogLeNet模型搭建的实施过程。Inception结构将CNN中常用的卷积(1*1、3*3、5*5)和池化操作(3*3)堆叠在一起(卷积、池化后的尺寸相同),一方面增加了网络的宽度,另一方面也增加了网络对尺度的适应性。网络卷积层中的网络能够提取输入的每一个细节信息,同时5*5的滤波器也能够覆盖大部分接受层的的输入。还可以进行一个池化操作,以减少空间大小,降低过度拟合。在这些层之上,在每一个卷积层后都要做一个ReLU操作,以增加网络的非线性特征。
其中卷积操作映射为矩阵向量乘操作如图7所示,计算过程中将每层的各个卷积核展开,排列成矩阵。每层的输入特征图展开成向量形式,依次输入到卷积核展开后形成的矩阵中进行矩阵向量乘计算,得到的结果即为卷积结果。其具体方法如下所示:
1)卷积层的输入特征图按照对应卷积核的尺寸进行取数,假设卷积核的尺寸为n*n,取数之前先对输入特征图进行padding操作,取数时就在输入特征图的边缘上取尺寸为n*n的一组数据,取完一组数后以一定的步长在输入特征图上进行滑动取数,直至取完输入特征图中所有数,随后将取出每组数按行或者按列展开为1*(n^2)的行向量;
2)卷积层的卷积核展开为(n^2)*1的列向量形式,展开方式与输入特征图中所取数的展开方式对应,所述卷积层有p个卷积核,则这p个卷积核展开所得的向量组合为一个尺寸为(n^2)*p的矩阵;
3)假设输入特征图有q个通道,则每个卷积核也有q个通道,每个通道的输入特征图按1)中的方式取数并展开,每次取数展开后得到q个的1*(n^2)的行向量,将这些行向量首尾拼接得到1*((n^2)*q)的行向量,卷积核的每一个通道也按照2)中的方法展开,得到q个尺寸为(n^2)*p的矩阵,将这些矩阵用对应特征图行向量拼接的方式进行拼接,得到尺寸为((n^2)*q)*p的矩阵。将上述所得的向量和矩阵进行乘法计算,得到1*p的行向量,向量和矩阵拼接后的计算相当于是卷积中单通道卷积核和输入特征图乘加后再进行多通道的累加。
如图8所示将光电计算单元排列成和上述卷积核展开形成的矩阵行列数相同的阵列,即阵列行数n=((n^2)*q),列数m=p。其中,光电计算阵列中每一列的所有计算单元的光生载流子收集和读出区的输出端都相连,每一行的所有计算单元的载流子控制区都相连。发光单元发出的光子所产生的光生载流子被设置为矩阵向量乘法的光输入端数据,为矩阵数据,即为卷积核中的权值数据,在图8中表示为W00、W10、W01……Wnm。输入特征图展开得到的向量中每个元素被转化为二进制,并按照比特位高低串行地从所述的被设置为同行相连的载流子控制区以被调制过的载流子形式,将代表不同元素的数据分别注入不同的行中,为向量数据,在图8中表示为A0、A1……An
在载流子收集和读出区中,使代表矩阵数据的光生载流子和代表向量数据不同比特位二值数据的载流子控制区载流子分别共同作用于相应的光生载流子收集和读出区中读出区的载流子,并且被作用后的载流子在恒定电压的驱动下,以电流的形式输出,并按列汇聚,经过AD转换,再完成移位和累加操作,即得到中间结果向量。将得到的所有中间结果向量的相同位取出,按照上述输入特征图展开方式进行重组,得到输出特征图的一个通道,输出特征图的通道数即为卷积核的组数,将中间结果向量全部重组后得到输出特征图,得到的输出特征图加上偏置,再加上激活函数,得到卷积层的计算结果,本实施例中使用ReLU作为激活函数。
Inception结构将CNN中常用的卷积(如1*1、3*3、5*5卷积)和池化(如3*3池化)操作堆叠在一起。其中,使用上述方法用光电计算阵列实现卷积操作,池化操作使用通用数字逻辑实现。输入特征图经过Inception结构后得到若干尺寸相同的卷积操作的输出和池化操作的输出,将这些输出按深度连接起来,形成Inception结构的输出特征图。
全连接层对应的光电计算阵列的行数和列数分别对应输入的神经元数和输出的单元神经元数,用光电计算阵列计算全连接层的方式与上述卷积层中的类似,不同的是无需将卷积核展开排列成矩阵,全连接层输入神经元数可以直接作为矩阵的行数,输入的每个元素被转化为二进制,并按照比特位高低串行地将代表二值化后数据的载流子输入到各个行的载流子控制区中,作为向量数据。矩阵数据使用全连接层对应神经元之间的权值数据,而全连接层的输出神经元数作为矩阵的列数,在光电计算阵列计算完成后也不用像卷积层中进行重组,而是每一列输出结果对应一个输出神经元,直接进行后续的加偏置以及激活计算。
本实施例的模型中额外增加两个辅助分类器,以避免梯度消失。辅助分类器之前依次为一层平均池化层、两层全连接层、一层卷积层,激活函数使用Softmax。其中,全连接操作和卷积操作使用上述方法实现,池化操作使用通用数字逻辑实现。
输入特征图经过多个Inception结构,最后经过一层平均池化层,一层全连接层,经过Softmax函数激活,得到最终结果,其中Inception结构和全连接操作由上述方法实现,池化操作使用通用数字逻辑实现。

Claims (5)

1.一种针对GoogLeNet模型的加速器,其特征在于,包括:
控制器,用于控制卷积运算和全连接运算的控制信号流和数据流,并把最终结果输出保存到存储器中;
光电计算阵列,用于完成卷积运算和全连接运算映射后的矩阵向量乘操作;
模数转换器,用于将光电计算阵列输出的电流转化为数字信号;
激活函数单元,用于完成卷积运算和全连接运算结果的加偏置和激活函数操作;
池化单元,用于完成结果的最大值池化操作。
2.根据权利要求1所述的一种针对GoogLeNet模型的加速器,其特征在于,所述光电计算阵列由多个光电计算单元周期性排列组成,每个光电计算单元包括发光单元和计算单元,发光单元发出的光入射到计算单元中;每个计算单元包括载流子控制区、耦合区、以及光生载流子收集区和读出区;所述载流子控制区用于控制并调制光生载流子收集区和读出区内的载流子;所述光生载流子收集区和读出区中的收集区用于吸收发光单元发射的光子并收集产生的光生载流子;所述载流子控制区或者光生载流子收集区和读出区中的读出区与电信号连接,读出区用于输出被所述光生载流子和所述电信号作用后的载流子;所述耦合区连接收集区和读出区。
3.根据权利要求1所述的一种针对GoogLeNet模型的加速器,其特征在于,加速器还包括辅助分类器,用于避免梯度消失,所述辅助分类器连接在卷积层之后。
4.如权利要求2所述一种针对GoogLeNet模型的加速器的加速方法,其特征在于,利用光电计算阵列完成模型中卷积运算和全连接运算映射后的矩阵向量乘操作,其中,卷积运算具体包括如下步骤:
(1)将模型中每层的各个卷积核展开,排列成矩阵,并将每层的输入特征图展开成向量形式;在输入特征图为多通道的情况下,将各通道特征图展开得到的向量首尾拼接,同时各通道卷积核展开得到的矩阵以对应的方式进行拼接;
(2)将光电计算单元排列成阵列,阵列的行列数与步骤(1)卷积核展开形成的矩阵行列数相同;将阵列中每一列计算单元的光生载流子收集区和读出区的输出端依次相连,每一行计算单元的载流子控制区依次相连;
(3)所述发光单元发出被设置为矩阵数据的光信号,并入射到对应的计算单元的光生载流子收集区和读出区,所述矩阵数据即为卷积核中的权值数据;输入特征图展开得到的向量中每个元素被转化为二进制,并按照比特位高低串行地将代表二值化后数据的载流子输入到各个行的载流子控制区中,作为向量数据;
(4)所述计算单元的光生载流子收集区和读出区的输出端输出受矩阵数据和向量数据共同作用后的载流子,并在固定电压的驱动下以电流的形式输出,并按列汇聚,经过AD转换后,再完成移位和累加操作,即得到中间结果向量;
(5)将得到的所有中间结果向量的相同位取出,按照步骤(1)输入特征图展开方式进行重组,得到输出特征图的一个通道,输出特征图的通道数即为卷积核的组数,将中间结果向量全部重组后得到输出特征图,得到的输出特征图加上偏置,再加上激活函数,得到卷积层的计算结果。
5.如权利要求4所述的加速方法,其特征在于,将步骤(5)得到的卷积层的计算结果转化为向量输入给全连接层的光电计算阵列,所述光电计算阵列的行数和列数分别等于全连接层输入神经元数和输出神经元数。全连接层输入神经元数直接作为矩阵的行数,输入的每个元素被转化为二进制,并按照比特位高低串行地将代表二值化后数据的载流子输入到光电计算阵列各个行的载流子控制区中,作为向量数据;矩阵数据使用全连接层对应神经元之间的权值数据;在光电计算阵列计算完成后,每一列输出结果对应一个输出神经元,并直接进行加偏置以及激活计算,得到最终结果。
CN201910416021.4A 2019-05-19 2019-05-19 一种针对GoogLeNet模型的加速器及其方法 Active CN110288078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910416021.4A CN110288078B (zh) 2019-05-19 2019-05-19 一种针对GoogLeNet模型的加速器及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910416021.4A CN110288078B (zh) 2019-05-19 2019-05-19 一种针对GoogLeNet模型的加速器及其方法

Publications (2)

Publication Number Publication Date
CN110288078A true CN110288078A (zh) 2019-09-27
CN110288078B CN110288078B (zh) 2023-03-24

Family

ID=68002385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910416021.4A Active CN110288078B (zh) 2019-05-19 2019-05-19 一种针对GoogLeNet模型的加速器及其方法

Country Status (1)

Country Link
CN (1) CN110288078B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731612A (zh) * 2012-10-10 2014-04-16 赛默飞世尔科技有限公司 具有正交读出架构的超高速成像阵列
CN107533862A (zh) * 2015-08-07 2018-01-02 慧与发展有限责任合伙企业 用于计算矩阵乘法的交叉阵列
CN108805270A (zh) * 2018-05-08 2018-11-13 华中科技大学 一种基于存储器的卷积神经网络系统
CN109409511A (zh) * 2018-09-25 2019-03-01 西安交通大学 一种用于动态可重构阵列的卷积运算数据流调度方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731612A (zh) * 2012-10-10 2014-04-16 赛默飞世尔科技有限公司 具有正交读出架构的超高速成像阵列
CN107533862A (zh) * 2015-08-07 2018-01-02 慧与发展有限责任合伙企业 用于计算矩阵乘法的交叉阵列
CN108805270A (zh) * 2018-05-08 2018-11-13 华中科技大学 一种基于存储器的卷积神经网络系统
CN109409511A (zh) * 2018-09-25 2019-03-01 西安交通大学 一种用于动态可重构阵列的卷积运算数据流调度方法

Also Published As

Publication number Publication date
CN110288078B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
WO2021115262A1 (zh) 脉冲卷积神经网络算法、集成电路、运算装置及存储介质
Yadav et al. Mitigation of mismatch power losses of PV array under partial shading condition using novel odd even configuration
Mishra et al. Performance enhancement of PV system using proposed array topologies under various shadow patterns
CN106843809A (zh) 一种基于nor flash阵列的卷积运算方法
CN105046325B (zh) 一种基于类mos发光器件模拟生物神经网络的电路
CN109359269A (zh) 进行矩阵向量乘法运算的系统及进行神经网络运算方法
CN109800876A (zh) 一种基于NOR Flash模块的神经网络的数据运算方法
CN109635941A (zh) 一种基于1t1r存储器件的最大池化处理器
CN107368888B (zh) 类脑计算系统及其突触
CN110009102B (zh) 一种基于光电计算阵列的深度残差网络的加速方法
CN106971372A (zh) 一种实现图像卷积的编码型闪存系统和方法
CN110263295A (zh) 一种基于光电计算阵列的矩阵向量乘法器的运算优化方法
CN110276440A (zh) 一种基于光电计算阵列的卷积运算加速器及其方法
Abedin et al. Mr-pipa: An integrated multilevel rram (hfo x)-based processing-in-pixel accelerator
CN109993283A (zh) 基于光电计算阵列的深度卷积生成式对抗网络的加速方法
CN102752560A (zh) 基于像素电荷补偿技术的超宽动态范围图像传感器
CN115390789A (zh) 基于磁隧道结计算单元的模拟域全精度存内计算电路及方法
CN110245324A (zh) 一种基于光电计算阵列的反卷积运算加速器及其方法
Balaji et al. Hybrid algorithm for MPPT tracking using a single current sensor for partially shaded PV systems
CN107544770A (zh) 一种数模混合输入的、电荷域的模拟乘加器电路
CN110263926B (zh) 基于光电计算单元的脉冲神经网络及其系统和运算方法
Bakır Comparative performance analysis of metaheuristic search algorithms in parameter extraction for various solar cell models
CN110288078A (zh) 一种针对GoogLeNet模型的加速器及其方法
CN108154227B (zh) 一种使用模拟计算的神经网络芯片
CN102820313B (zh) Cmos图像传感器

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240409

Address after: 210000 floor 13, building 04, accelerator, No. 18, Jialing Jiangdong Street, Jianye District, Nanjing, Jiangsu Province

Patentee after: NANJING UNIVERSITY 5D TECHNOLOGY Co.,Ltd.

Country or region after: China

Address before: 9/F, Building B, No. 100, Tianjiao Road, Qilin Hi-tech Industrial Development Zone, Jiangning District, Nanjing, Jiangsu, 210000

Patentee before: Nanjing Weixin Photoelectric System Co.,Ltd.

Country or region before: China