【技术实现步骤摘要】
一种基于忆阻器内存计算的CNN处理装置及其工作方法
本专利技术属于非易失性存储和神经网络领域,尤其涉及一种基于忆阻器内存计算的CNN处理装置及其工作方法。
技术介绍
目前,卷积神经网络(ConvolutionalNeuralNetwork,CNN)等神经网络是进行目标识别、图像检测与分割等任务时极为常见的手段,而且图像等输入数据通常都是非负值。但卷积神经网络的实现过程中包含了大量的运算,尤其是卷积运算,因此通过传统的CPU等并行度低的处理器实现CNN的时候,需要花费极高的时间和功耗代价,而通过GPU等并行度高的处理器实现CNN,因为其本身没有对CNN进行专门的设计,因此也会造成资源的利用效率较低。近几年,出现了专用的神经网络处理器,用于对CNN等神经网络进行加速实现,其中通常包含了大量的向量运算模块、乘加运算模块或者卷积运算模块,用于实现大规模并行的乘加运算等,如专利《神经网络处理器和卷积神经网络处理器》、《基于计算阵列的神经网络处理器》和论文《A1.9nJ/pixelEmbeddedDeepNeuralNetwor ...
【技术保护点】
1.一种基于忆阻器内存计算的CNN处理装置,其特征在于:在一块ReRAM的每一个crossbar上添加算术逻辑单元ALU等辅助电路构成一个CNN处理单元,其中ALU用于完成CNN中激励层、池化层、归一化层等层次中的计算任务,包括全加、比较、移位等,整块ReRAM构成一个CNN处理单元阵列,其特征在于,在所述crossbar的每一条位线上均添加一个传输门,每一条位线连接到传输门的输入端,每一个传输门与一条位线一一对应,每一条位线对应的传输门的输出端与其所在crossbar的下侧相邻crossbar的相同位置的位线相连,所述ALU的输入端与其所在的crossbar中所有的传输门的输出端相连。/n
【技术特征摘要】
1.一种基于忆阻器内存计算的CNN处理装置,其特征在于:在一块ReRAM的每一个crossbar上添加算术逻辑单元ALU等辅助电路构成一个CNN处理单元,其中ALU用于完成CNN中激励层、池化层、归一化层等层次中的计算任务,包括全加、比较、移位等,整块ReRAM构成一个CNN处理单元阵列,其特征在于,在所述crossbar的每一条位线上均添加一个传输门,每一条位线连接到传输门的输入端,每一个传输门与一条位线一一对应,每一条位线对应的传输门的输出端与其所在crossbar的下侧相邻crossbar的相同位置的位线相连,所述ALU的输入端与其所在的crossbar中所有的传输门的输出端相连。
2.一种基于忆阻器内存计算的CNN处理装置的工作方法,其特征在于:ReRAM共有a×b个crossbar,构成一个a行b列的阵列,每个crossbar的字线的条数为L,位线的条数为n,CNN的卷积核阵列的大小为h×h,输入层包括c×d个神经元,共c行d列,其特征在于,包括以下步骤:
第一步,将每个crossbar的前m条字线所连接的存储单元构成一个m×n存储阵列,所有的crossbar的存储阵列构成CNN处理单元阵列的内存,内存中共有a×m×b×n个存储单元,其中共有a×m条字线,每条字线均是一行crossbar中相同位置的字线连接而成,构成一个a×m行b×n列的存储阵列,将crossbar中m×n存储阵列之外其他的存储空间作为该CNN处理单元的缓存,将CNN所要处理的输入层c×d个神经元按照其在输入层中的顺序存入CNN处理单元阵列的内存中,在内存中占据了e行f列个存储单元,构成一个e×f神经元阵列,有e条字线和f条位线;
第二步,将卷积核阵列的第一列h1作为输入信号,连接到CNN处理单元阵列中e×f神经元阵列的字线上,具体连接方式为h1的每个权重按照顺序从上到下依次连接到e×f神经元阵列中的一条字线上,即在e×f神经元阵列中的第1行开始到第h行的字线上依次连接h1的权重,第h+1行到第2h行的字线上同样依次连接h1的权重数值信号,依次类推,直至第⌊e÷h⌋×h-h+1行到第⌊e÷h⌋×h行的字线上同样依次连接h1的权重,共需要连接⌊e÷h⌋组h1信号,对应的将e×f神经元阵列分出了⌊e÷h⌋组神经元,记为H1、H2、……、H⌊e÷h⌋,其中H1是第1行到第h行,H2是第h+1行到第2h行,依此类推,直到第⌊e÷h⌋×h行,每组神经元分别连接一组h1,其中⌊e÷h⌋是e÷h向下取整;
第三步,将连接的h1信号激活,即输入h1的权重数值到其连接的字线上,收取激活每一组h1后第1条到第f-h+1条位线上的结果数据,具体方法是,使每个crossbar每次只激活一组h1中的信号,对应其连接的H1、H2、……、H⌊e÷h⌋中的一组神经元,所有的crossbar同时进行激活,若一个crossbar的字线连接了两组及两组以上的h1信号,则依次激活该crossbar连接的各组h1信号并收取结果数据,若上下相邻的两个crossbar连接了同一组h1信号,则两个crossbar之间的传输门打开,使所述两个crossbar共同激活该组h1信号,否则,传输门关闭;
第四步,将激活每一组h1后第1条到第f-h+1条位线上的结果数据,分别依次存储在第2条到第f-h+2条位线在该组h1信号所连接最后一条字线所在crossbar的缓存中,其存储方法是,同一组h1信号的结果数据所在的存储单元由同一条字线相连,即一组h1的f-h+1个结果数据依次存储在地址坐标为(g,2)、(g,3)、(g,4)、……、(g,f-h+2)的一组存储单元上,该组存储单元都由字线g连接,共有⌊e÷h⌋组结果数据,分别对应H1、H2、……、H⌊e÷h⌋;
第五步,将输入信号由h1信号换成卷积核阵列的第二列h2信号,重复第二步的步骤;
第六步,按照第三步的方法将连接的h2信号激活,同时,在激活H1、H2、……、H⌊e÷h⌋中一组神经元所连接的一组h2的同时,将逻辑1信号输入到该组神经元所对应的结果数据所存储在的字线上,收取激活每一组h2后第2条到第f-h+2条位线上的...
【专利技术属性】
技术研发人员:马建国,刘鹏,周绍华,
申请(专利权)人:天津大学青岛海洋技术研究院,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。