加速深度神经网络算法的加速芯片的运算装置及方法制造方法及图纸

技术编号:14891498 阅读:96 留言:0更新日期:2017-03-29 00:16
本发明专利技术提供一种加速深度神经网络算法的加速芯片的运算装置及方法,所述装置包括:向量加法处理器模块,进行向量的加法或减法、和/或深度神经网络算法中的池化层算法的向量化的运算;向量函数值运算器模块,深度神经网络算法中的非线性求值的向量化运算;向量乘加器模块,进行向量的乘加运算;所述三个模块执行可编程指令,互相交互以计算神经网络输出结果以及代表中间层之间神经元作用强度的突触权重变化量;所述三个模块中均设置有中间值存储区域,并对主存储器进行读取与写入操作。由此,能够减少对主存储器的中间值读取和写入次数,降低加速器芯片的能量消耗,避免数据处理过程中的数据缺失和替换问题。

【技术实现步骤摘要】

本专利技术属于神经网络算法领域和计算机硬件领域。更具体地,本专利技术涉及一种加速深度神经网络算法的加速芯片的运算装置及方法
技术介绍
人工神经网络算法,是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。其具有自主学习功能,可通过训练慢慢学会识别和预测;联想存储功能,具有很高算法健壮性;并行度高,具有高速寻找优化解的能力,可针对大数据复杂问题快速找到优化解;可塑性强,可充分逼近任意复杂的非线性关系;具有很强的信息综合能力,能同时处理定量和定性的信息,适用于多信息融合和多媒体技术。近年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在图像处理、模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多传统计算机方法难以解决的实际问题,表现出了良好的智能特性,推动着信息处理技术和人工智能不断地发展。神经网络虽然已在诸多领域取得广泛的成功,然而现阶段,大部分神经网络算法是在软件算法层次进行优化,在通用CPU或GPU上搭建运行。鉴于通用处理器相对较低的性能功耗比,高效地实现神经网络算法的方式已成为大家的迫切需求。深度神经网络算法通常包括:卷积层、局部响应归一化层(LRN)、池化(pooling)层、全连接层等几大类层。每层中的数据被称为神经元,不同层之间互联组成一个深度神经网络。池化层作为深度神经网络算法中的一部分,其功能可以理解为神经网络中对前一层的数据进行采样。池化层可分为最大池化(maxpooling)层,即每个输出神经元值是输入层中一个小矩形区域中的神经元值的最大值,以及平均池化(averagepooling)层,即每个输出神经元值是输入层中一个小矩形区域中的神经元值的平均值。专利文件1(公开号为CN101527010A)公开了一种人工神经网络算法的硬件实现方法及其系统,和现有的技术相比,克服以往软件实现中的串行方式来完成并行计算的尴尬,取代了软件实现的弊端;又由于进行了算法优化,节省了大量硬件资源,在FPGA平台上实现,成本较低,利用优化的算法,避开了SIGMOID函数用硬件难以实现的困境,又使用了累加方式,节省了硬件资源。但该专利仅仅通过FPGA平台实现人工神经网络算法。在现代处理器设计中,异构多核处理器框架被认为是一种有前途的道路以实现该性能低能源计算的方法。已知的是,神经网络算法运算过程中,将产生一系列的中间值,所述中间值随后一次或多次被用于计算输出层神经元值或者计算突出权重的变化值。采用通用处理器的存储方式将所述中间值存储于主存中,将面临的一个重大问题是大量的中间值被生成并需要存储,从而所需主存空间增加。同时,这样的方法增加了将中间值存储到主存储器或者从主存储器读取中间值次数,芯片功耗增加,不符合前面所述的低功耗加速器芯片设计理念。
技术实现思路
本专利技术的目的在于,提供一种加速深度神经网络算法的加速芯片的运算装置及方法,能够减少对主存储器的中间值读取和写入次数,降低加速器芯片的能量消耗,避免数据处理过程中的数据缺失和替换问题。本专利技术的加速深度神经网络算法的加速芯片的运算装置,包括:向量加法处理器模块,用于进行向量的加法或减法、和/或深度神经网络算法中的池化层算法的向量化的运算;向量函数值运算器模块,用于深度神经网络算法中的非线性求值的向量化运算;向量乘加器模块,用于进行向量的乘加运算;被配置为执行可编程指令的所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块之间互相交互以计算神经网络中间层神经元值和网络输出结果、以及、代表中间层之间神经元作用强度的突触权重变化量;所述加速深度神经网络算法的加速芯片的运算装置对于平均池化层的结果,是先由向量加法处理器模块计算向量输出中每个神经元所对应的输入累加值,然后用向量乘加器模块乘以平均因子求得;所述加速深度神经网络算法的加速芯片的运算装置对于最大池化层的结果,是由向量加法处理器模块计算向量输出中每个神经元所对应的输入最大值求得;所述加速深度神经网络算法的加速芯片的运算装置对于卷积层以及全连接层的结果,是先使用向量加法处理器模块叠加输出神经元对应的部分和以及偏置,然后再由向量函数值运算器模块求得输出神经元值;所述部分和为通过外界处理器求得后通过总线传输给所述运算装置;所述加速深度神经网络算法的加速芯片的运算装置对于局部响应归一化层的结果,则是先用向量函数值运算器模块求得非线性函数值,然后再与输入层神经元通过向量乘加器模块相乘得到;所述加速深度神经网络算法的加速芯片的运算装置对于突触权重的变化量是通过向量乘加器模块将反向传播求得的残差和对应的输入神经元值相乘以及学习率因子相乘获得,所述反向传播求得的残差是通过外界处理器求得后通过总线传输给所述运算装置;所述加速深度神经网络算法的加速芯片的运算装置通过数据总线来与外界处理器进行数据交互;所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块中均设置有中间值存储区域,用于存储依照所述指令所计算的向量化的中间值,并对主存储器进行读取与写入操作。本专利技术的加速深度神经网络算法的加速芯片的运算装置,其中,所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块生成输出值之后,存储于所述中间值存储区域内所述中间值将被丢弃。本专利技术的加速深度神经网络算法的加速芯片的运算装置,其中,所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块的所述中间值存储区域被配置为随机存储器。本专利技术的加速深度神经网络算法的加速芯片的运算装置,其中,所述随机存储器被配置为存储自身产生的来自于每个神经元、突出权重变化量的中间值。本专利技术的加速深度神经网络算法的加速芯片的运算装置,其中,所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块通过一个索引访问所述中间值存储区域。另外,本专利技术还提供一种加速深度神经网络算法的加速芯片的运算方法,该方法使用上述加速深度神经网络算法的加速芯片的运算装置进行运算,包括以下步骤:向量加法处理运算步骤,在向量加法处理器模块依照指令进行向量的加法或减法、和/或深度神经网络算法中的池化层算法的向量化的运算;向量函数值运算步骤,在向量函数值运算器模块依照指令进行深度神经网络算法中的非线性求值的向量化运算;向量乘加运算步骤,在向量乘加器模块依照指令进行向量的乘加运算;所述向量加法处理运算步骤、向量函数值运算步骤、和向量乘加运算步骤互相交互以计算神经网络输出结果以及代表中间层层之间神经元作用强度的突触权重变化量;所述加速深度神经网络算法的加速芯片的运算装置对于平均池化层的结果,是先由向量加法处理运算步骤计算向量输出中每个神经元所对应的输入累加值,然后用向量乘加运算步骤乘以平均因子求得;所述加速深度神经网络算法的加速芯片的运算装置对于最大池化层的结果,是由向量加法处理运算步骤计算向量输出中每个神经元所对应的输入最大值求得;所述加速深度神经网络算法的加速芯片的运算装置对于卷积层以及全连接层的结果,是先使用向量加法处理运算步骤叠加输出神经元对应的部分和以及偏置,然后再由向量函数值运算步骤求得输出神经元值;所述部分和为通过外界处理器求得后通过总线传输给所述运算装置本文档来自技高网
...
加速深度神经网络算法的加速芯片的运算装置及方法

【技术保护点】
一种加速深度神经网络算法的加速芯片的运算装置,其特征在于,包括:向量加法处理器模块,用于进行向量的加法或减法、和/或深度神经网络算法中的池化层算法的向量化的运算;向量函数值运算器模块,用于深度神经网络算法中的非线性求值的向量化运算;向量乘加器模块,用于进行向量的乘加运算;被配置为执行可编程指令的所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块之间互相交互以计算神经网络中间层网络输出结果以及中间层之间神经元作用强度的突触权重变化量;所述加速深度神经网络算法的加速芯片的运算装置对于平均池化层的结果,是先由向量加法处理器模块计算向量输出中每个神经元所对应的输入累加值,然后用向量乘加器模块乘以平均因子求得;所述加速深度神经网络算法的加速芯片的运算装置对于最大池化层的结果,是由向量加法处理器模块计算向量输出中每个神经元所对应的输入最大值求得;所述加速深度神经网络算法的加速芯片的运算装置对于卷积层以及全连接层的结果,是先使用向量加法处理器模块叠加输出神经元对应的部分和以及偏置,然后再由向量函数值运算器模块求得输出神经元值;所述部分和为通过外界处理器求得后通过总线传输给所述运算装置;所述加速深度神经网络算法的加速芯片的运算装置对于局部响应归一化层的结果,则是先用向量函数值运算器模块求得非线性函数值,然后再与输入层神经元通过向量乘加器模块相乘得到;所述加速深度神经网络算法的加速芯片的运算装置对于突触权重的变化量是通过向量乘加器模块将反向传播求得的残差和对应的输入神经元值相乘以及学习率因子相乘获得,所述反向传播求得的残差是通过外界处理器求得后通过总线传输给所述运算装置;所述加速深度神经网络算法的加速芯片的运算装置通过数据总线与外界处理器进行数据交互;所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块中均设置有中间值存储区域,用于存储依照所述指令所计算的向量化的中间值,并对主存储器进行读取与写入操作。...

【技术特征摘要】
2015.11.17 CN 20151079246301.一种加速深度神经网络算法的加速芯片的运算装置,其特征在于,包括:向量加法处理器模块,用于进行向量的加法或减法、和/或深度神经网络算法中的池化层算法的向量化的运算;向量函数值运算器模块,用于深度神经网络算法中的非线性求值的向量化运算;向量乘加器模块,用于进行向量的乘加运算;被配置为执行可编程指令的所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块之间互相交互以计算神经网络中间层网络输出结果以及中间层之间神经元作用强度的突触权重变化量;所述加速深度神经网络算法的加速芯片的运算装置对于平均池化层的结果,是先由向量加法处理器模块计算向量输出中每个神经元所对应的输入累加值,然后用向量乘加器模块乘以平均因子求得;所述加速深度神经网络算法的加速芯片的运算装置对于最大池化层的结果,是由向量加法处理器模块计算向量输出中每个神经元所对应的输入最大值求得;所述加速深度神经网络算法的加速芯片的运算装置对于卷积层以及全连接层的结果,是先使用向量加法处理器模块叠加输出神经元对应的部分和以及偏置,然后再由向量函数值运算器模块求得输出神经元值;所述部分和为通过外界处理器求得后通过总线传输给所述运算装置;所述加速深度神经网络算法的加速芯片的运算装置对于局部响应归一化层的结果,则是先用向量函数值运算器模块求得非线性函数值,然后再与输入层神经元通过向量乘加器模块相乘得到;所述加速深度神经网络算法的加速芯片的运算装置对于突触权重的变化量是通过向量乘加器模块将反向传播求得的残差和对应的输入神经元值相乘以及学习率因子相乘获得,所述反向传播求得的残差是通过外界处理器求得后通过总线传输给所述运算装置;所述加速深度神经网络算法的加速芯片的运算装置通过数据总线与外界处理器进行数据交互;所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块中均设置有中间值存储区域,用于存储依照所述指令所计算的向量化的中间值,并对主存储器进行读取与写入操作。2.根据权利要求1所述的加速深度神经网络算法的加速芯片的运算装置,其特征在于,所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块生成输出值之后,存储于所述中间值存储区域内所述中间值将被丢弃。3.根据权利要求1所述的加速深度神经网络算法的加速芯片的运算装置,其特征在于,所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块的所述中间值存储区域被配置为随机存储器。4.根据权利要求3所述的加速深度神经网络算法的加速芯片的运算装置,其特征在于,所述随机存储器被配置为存储自身产生的来自于每个神经元、突出权重变化量的中间值。5.根据权利要求1所述的加速深度神经网络算法的加速芯片的运算装置,其特征在于,所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块通过一个索引访问所述中间值存储区域。6.一种使用权利要求1-5所述加速深度神经网络算法的加速芯片的运算装置进行运算的方法,其特征在于,包括以下步骤:向...

【专利技术属性】
技术研发人员:李震刘少礼张士锦罗韬钱诚陈云霁陈天石
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1