人工神经网络处理系统及其数据处理方法技术方案

技术编号:24171291 阅读:46 留言:0更新日期:2020-05-16 03:02
本申请公开了一种人工神经网络处理系统及其数据处理方法。所述系统包括:控制模块、运算模块和存储模块;控制模块包括缓存控制单元,缓存控制单元被配置为执行人工神经网络运算缓存的控制;运算模块包括一个或多个主运算单元,主运算单元被配置对人工神经网络结构中的各网络层执行运算;存储模块包括融合存储单元,融合存储单元被配置为执行人工神经网络各网络层运算数据的加载和运算结果的缓存;其中,融合存储单元包括片上存储器和片外存储器,片上存储器的缓存地址和片外存储器的缓存地址被统一编码形成统一地址值。上述方案能够保证人工神经网络运算的并行度、兼容性、可扩展性,且在保证高性能同时降低了系统的功耗水平。

Artificial neural network processing system and its data processing method

【技术实现步骤摘要】
人工神经网络处理系统及其数据处理方法
本申请涉及人工智能
,具体涉及一种人工神经网络处理系统及其数据处理方法、电子设备和可读存储介质。
技术介绍
近年来,基于人工神经网络的智能解决方案越来越丰富,英伟达公司围绕GPU搭建人工智能生态;赛灵思公司基于FPGA搭建了AI架构的处理设备和开发套件;谷歌公司于2016年推出的TPU可实现深度学习卷积神经网络的完整推理工作。在各大公司的边缘计算设备(边缘计算设备是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,可就近提供最近端服务)中,存储模块在整个体系结构中至关重要,GPU使用外部存储器GDDR(GraphicsDoubleDataRate)为人工神经网络的训练和推理提供高速带宽,TPU使用全片上存储资源为AI算法推理提供高并行的数据缓存。在现有的人工神经网络的存储模块方案中,GPU在训练和推理过程中都使用外部存储器GDDR作为缓存,高速的时钟频率带来了可观的运算速度,但也带来了巨大的功耗,很难用于小型化AI设备和云服务器等设备中。TPU使用全片上存储资源进行人工神经网络推理过程中的缓存,虽然降低了整体功耗,然而由于片上存储资源有限可能会发生溢出,并且该存储结构对新功能层的兼容性不足。申请内容鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种人工神经网络处理系统及其数据处理方法。依据本申请的一个方面,提供了一种人工神经网络处理系统,包括:控制模块、运算模块和存储模块;所述控制模块包括缓存控制单元,所述缓存控制单元被配置为执行人工神经网络运算缓存的控制;所述运算模块包括一个或多个主运算单元,所述主运算单元被配置对人工神经网络结构中的各网络层执行运算;所述存储模块包括融合存储单元,所述融合存储单元被配置为执行人工神经网络各网络层运算数据的加载和运算结果的缓存;其中,所述融合存储单元包括片上存储器和片外存储器,所述片上存储器的缓存地址和所述片外存储器的缓存地址被统一编码形成统一地址值。可选的,所述片上存储器、所述缓存控制单元和所述主运算单元被配置在同一芯片上。可选的,所述片上存储器的存储区域包括片上缓存一区和片上缓存二区,所述片外存储器的存储区域包括片外缓存一区、片外缓存二区,且所述片上缓存一区、片外缓存一区、片上缓存二区、片外缓存二区依次被统一编码形成统一地址值。可选的,所述片上存储器包括两列对称设置的静态RAM缓存矩阵,分别由若干个静态RAM和控制器组成。可选的,所述控制模块还包括主控制器,所述主控制器被配置为执行如下的至少一种操作:人工神经网络的运算指令收发,人工神经网络的运算流程调度,人工神经网络功能决策;和/或,所述运算模块还包括辅助运算单元,所述辅助运算单元被配置为对人工神经网络运算数据进行预处理和/或对运算结果进行采集;和/或,所述存储模块还包括辅助存储单元,所述辅助存储单元被配置为人工神经网络各网络层的运算加载权重参数;其中,所述主控制器和所述辅助运算单元通过CPU实现;所述辅助存储单元通过CPU内存实现。可选的,所述系统还包括配置在所述芯片上的控制通路模块,所述控制通路模块为所述主控制器与所述运算单元和所述缓存控制单元的通信提供缓存,包括缓存指令RAM、权重指令RAM以及权重数据RAM。依据本申请的另一个方面,提供了一种数据处理方法,该方法应用于如上任一项所述的人工神经网络处理系统,所述方法包括:将所述统一地址值进行区域划分,所述区域至少包括缓存一区和缓存二区;将所述神经网络各网络层的运算结果数据从所述主运算单元返回后交替写入所述缓存一区或缓存二区,并从所述缓存一区或缓存二区读取该网络层的运算结果数据并写入所述主运算单元进行该网络层的下一网络层的运算。可选的,所述缓存一区由连续统一地址值的片上缓存一区和片外缓存一区组成,所述缓存二区由连续统一地址值的片上缓存二区和片外缓存二区组成,且优先选择从所述片上缓存区写入或读取数据。可选的,所述缓存一区或缓存二区读取或写入包括:判断目标网络层是否为原始数据层、结果数据层、溢出层或备份层,根据各网络层的运算特点以及数据统一地址值与片上缓存区最大地址值的关系,确定读取或写入的目标缓存区。可选的,所述判断目标网络层是否为原始数据层、结果数据层、溢出层或备份层,根据各网络层的运算特点以及数据统一地址值与片上缓存区最大地址值的关系,确定读取或写入的目标缓存区包括:若目标网络层非跨层的备份层,且非原始数据层,且非结果数据层,且非溢出层;或者,目标网络层为溢出层,且非备份层,且本次读取或写入结束后统一地址值小于等于该片上缓存区的最大地址值,则只需读取或写入片上缓存区中的数据;若目标网络层为跨层号的备份层,或非原始数据层,或非结果数据层,且非溢出层;或者,目标网络层为溢出层,且非备份层,且本次读取或写入开始前统一地址值大于该片上缓存区的最大地址值,则只需读取或写入片外缓存区中的数据;若目标读取网络层为溢出层,且非备份层,且本次读取开始前统一地址值小于该片上缓存区的最大地址值,且本次读取或写入结束后统一地址值大于该片上缓存区的最大地址值,则需要先读取或写入片上缓存区的数据,再读取片外缓存区中的数据。可选的,所述判断目标网络层是否为原始数据层、结果数据层、溢出层或备份层,根据各网络层的计算特点以及数据统一地址值与片上缓存区最大地址值的关系,确定目标写入缓存区还包括:若目标写入层为备份层,则同时写入片上缓存区和片外缓存区。可选的,所述将所述神经网络各网络层的运算结果数据从所述主运算单元返回后交替写入所述缓存一区或缓存二区,并从所述缓存一区或缓存二区读取该网络层的运算结果数据并写入所述主运算单元进行该网络层的下一网络层的运算包括:基于当前请求所处网络层的层号和通道数量,确定各通道基地址和各通道的缓存区划分,然后基于所述通道基地址以猝发方式读取或写入各所述通道的数据。可选的,所述将所述神经网络各网络层的运算结果数据从所述主运算单元返回后交替写入所述缓存一区或缓存二区包括:接收外部指令后解析出写入指令,通知写数据FIFO组准备接收待缓存数据;根据片上缓存区和片外缓存区的数据位宽比例,分别调整写入FIFO的数量比例和读出FIFO的数量比例;根据写入FIFO的数量与读出FIFO数量之间的关系调整读操作和写操作的次数,从而使得所述写数据FIFO组对多通道并行输入的数据进行暂存并以猝发方式读出,并减少读操作和写操作总次数。可选的,所述将所述神经网络中各网络层从所述运算单元返回的运算结果数据交替写入至所述缓存一区或缓存二区包括:若目标写入层是溢出层,则首先连续写入片上缓存区,然后先写入片上缓存区后写入在片外缓存区,再连续写入片外缓存区,且在写入片外缓存区时,在直接内存存取中设置多个写入FIFO并行工作。可选的,所述区域还包括原始数据缓存区本文档来自技高网...

【技术保护点】
1.一种人工神经网络处理系统,其特征在于,包括:控制模块、运算模块和存储模块;/n所述控制模块包括缓存控制单元,所述缓存控制单元被配置为执行人工神经网络运算缓存的控制;/n所述运算模块包括一个或多个主运算单元,所述主运算单元被配置对人工神经网络结构中的各网络层执行运算;/n所述存储模块包括融合存储单元,所述融合存储单元被配置为执行人工神经网络各网络层运算数据的加载和运算结果的缓存;其中,所述融合存储单元包括片上存储器和片外存储器,所述片上存储器的缓存地址和所述片外存储器的缓存地址被统一编码形成统一地址值。/n

【技术特征摘要】
1.一种人工神经网络处理系统,其特征在于,包括:控制模块、运算模块和存储模块;
所述控制模块包括缓存控制单元,所述缓存控制单元被配置为执行人工神经网络运算缓存的控制;
所述运算模块包括一个或多个主运算单元,所述主运算单元被配置对人工神经网络结构中的各网络层执行运算;
所述存储模块包括融合存储单元,所述融合存储单元被配置为执行人工神经网络各网络层运算数据的加载和运算结果的缓存;其中,所述融合存储单元包括片上存储器和片外存储器,所述片上存储器的缓存地址和所述片外存储器的缓存地址被统一编码形成统一地址值。


2.如权利要求1所述的人工神经网络处理系统,其特征在于,所述片上存储器、所述缓存控制单元和所述主运算单元被配置在同一芯片上。


3.如权利要求1所述的人工神经网络处理系统,其特征在于,所述片上存储器的存储区域包括片上缓存一区和片上缓存二区,所述片外存储器的存储区域包括片外缓存一区、片外缓存二区,且所述片上缓存一区、片外缓存一区、片上缓存二区、片外缓存二区依次被统一编码形成统一地址值。


4.如权利要求1所述的系统,其特征在于,所述片上存储器包括两列对称设置的静态RAM缓存矩阵,分别由若干个静态RAM和控制器组成。


5.如权利要求2所述的系统,其特征在于,所述控制模块还包括主控制器,所述主控制器被配置为执行如下的至少一种操作:人工神经网络的运算指令收发,人工神经网络的运算流程调度,人工神经网络功能决策;和/或,
所述运算模块还包括辅助运算单元,所述辅助运算单元被配置为对人工神经网络运算数据进行预处理和/或对运算结果进行采集;和/或,
所述存储模块还包括辅助存储单元,所述辅助存储单元被配置为人工神经网络各网络层的运算加载权重参数;
其中,所述主控制器、所述辅助运算单元通过CPU实现;所述辅助存储单元通过CPU内存实现。


6.如权利要求5所述的系统,其特征在于,所述系统还包括配置在所述芯片上的控制通路模块,所述控制通路模块为所述主控制器与所述运算单元和所述缓存控制单元的通信提供缓存,包括缓存指令RAM、权重指令RAM以及权重数据RAM。


7.一种数据处理方法,该方法应用于如权利要求1-6任一项所述的神经网络处理系统,其特征在于,所述方法包括:
将所述统一地址值进行区域划分,所述区域至少包括缓存一区和缓存二区;
将所述神经网络各网络层的运算结果数据从所述主运算单元返回后交替写入所述缓存一区或缓存二区,并从所述缓存一区或缓存二区读取该网络层的运算结果数据并写入所述主运算单元进行该网络层的下一网络层的运算。


8.如权利要求7所述的方法,其特征在于,所述缓存一区由连续统一地址值的片上缓存一区和片外缓存一区组成,所述缓存二区由连续统一地址值的片上缓存二区和片外缓存二区组成,且优先选择从所述片上缓存区写入或读取数据。


9.如权利要求8所述的方法,其特征在于,所述缓存一区或缓存二区读取或写入包括:
判断目标网络层是否为原始数据层、结果数据层、溢出层或备份层,根据各网络层的运算特点以及数据统一地址值与片上缓存区最大地址值的关系,确定读取或写入的目标缓存区。


10.如权利要求9所述的方法,其特征在于,所述判断目标网络层是否为原始数据层、结果数据层、溢出层或备份层,根据各网络层的运算特点以及数据统一地址值与片上缓存区最大地址值的关系,确定读取...

【专利技术属性】
技术研发人员:陕天龙
申请(专利权)人:北京三快在线科技有限公司
类型:发明
国别省市:北京;11

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

1