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

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

【技术实现步骤摘要】

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

【技术保护点】
一种加速深度神经网络算法的加速芯片的运算装置,其特征在于,包括:向量加法处理器模块,用于进行向量的加法或减法、和/或深度神经网络算法中的pooling层算法的向量化的运算;向量函数值运算器模块,用于深度神经网络算法中的非线性求值的向量化运算;向量乘加器模块,用于进行向量的乘加运算;被配置为执行可编程指令的所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块之间互相交互以计算神经网络的神经元值和网络输出结果、以及、代表输入层神经元对输出层神经元作用强度的突触权重变化量;所述向量加法处理器模块、向量函数值运算器模块、和向量乘加器模块中均设置有中间值存储区域,用于存储依照所述指令所计算的向量化的中间值,并对主存储器进行读取与写入操作。

【技术特征摘要】

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

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

1