一种高能效的神经网络处理器、加速系统及方法技术方案

技术编号:20844188 阅读:16 留言:0更新日期:2019-04-13 08:54
本发明专利技术公开了一种高能效的神经网络处理器、加速系统及方法,属于神经网络处理装置,要解决的技术问题为:如何减小对乘法器以及数据存储器的读写次数,加速神经网络的计算;其结构包为包含ARM核的主控芯片,包括处理器单元和逻辑计算单元,逻辑计算单元通过总线接口与处理器单元电连接。该系统包括上述主控芯片和存储模块。其方法包括:对权重数据进行选择排序;以数据复用的方式获取输入数据,根据多个PE计算子单元并行计算的方式对权重数据和输入数据进行卷积运算和池化运算;获取上述每个PE计算子单元的输出数据并进行加法运算得到最终数据,并将最终数据存储于存储模块。本发明专利技术可减少卷积次数以及对外部存储的读写次数。

【技术实现步骤摘要】
一种高能效的神经网络处理器、加速系统及方法
本专利技术涉及神经网络处理装置领域,具体地说是一种高能效的神经网络处理器、加速系统及方法。
技术介绍
深度学习技术是人工智能技术发展的助推器,深度学习采用深度神经网络的拓扑结构进行训练、优化及推理。卷积神经网络是深度学习的基础,在卷积运算在整个算法中计算量大,需要大量的乘法器单元,是影响性能的一个瓶颈。目前采用的方法是;并行地做乘法再做累加,形成若干乘法器的输出接入到一颗加法树的结构。现有的系统以及方法在并行地做乘法再做累加时,需要多次读取权重数据以及相关数据,对存储单元以及乘法器的损耗较大,且计算速度慢。如何减小对乘法器以及数据存储器的读写次数,加速神经网络的计算,是需要解决的技术问题。
技术实现思路
本专利技术的技术任务是针对以上不足,提供一种高能效的神经网络处理器、加速系统及方法,来解决如何减小对乘法器以及数据存储器的读写次数,加速神经网络的计算的问题。第一方面,本专利技术实施例提供一种高能效的神经网络处理器,为包含ARM核的主控芯片,包括:处理器单元,用于获取输入数据、权重数据并根据神经网络的模型生成指令数据;逻辑计算单元,其通过总线接口与处理器单元电连接,包括指令FIFO子单元、数据FIFO子单元、排序子单元、加法子单元以及多个PE计算子单元,其中:指令FIFO子单元,用于实现指令数据的FIFO,并根据指令数据激活适量个数的PE计算子单元以及PE计算子单元的资源;数据FIFO子单元,用于实现权重数据和输入数据的FIFO;排序子模块,用于基于为正数的权重数据优先输出、为负数的权重数据后输出、为零的权重数据不输出的原则,依序输出权重数据和输入数据;PE计算子单元,用于对权重数据和输入数据进行卷积运算和池化运算,并用于判断是否自动终止卷积运算;上述PE计算子单元共多个,其以数据复用的方式获取输入数据,并通过并行计算的方式对权重数据和输入数据进行卷积运算和池化运算;加法子单元,用于对上述多个PE计算子单元输出的数据进行加法运算。本实施方式中,对权重数据按照正数优先输出、负数后输出、零不输出的原则进行排序,在PE计算子单元进行卷积运算时,可减少卷积运算次数,对每个PE计算子单元的输入数据复用,可进一步减少从外部存储模块读写频次,从而降低了外部存储器的外部读写,也降低了内部卷积运算相关单元的使用资源。优选的,PE计算子单元包括:多个卷积计算微单元,用于以数据复用的方式获取输入数据,通过串行计算的方式对权重数据和输入数据进行卷积运算;激活函数,配置为relu函数,用于判断是否终止卷积计算微单元内的卷积运算,判断原则为:如果卷积计算微单元内对当前M个权重数据和相关的输入数据的卷积运算为负数,则自动终止卷积计算微单元内的卷积运算并输出零;否则,对N个权重数据和相关的输入数据进行卷积运算并输出为正数的卷积数据;其中,M<N,N为位于卷积计算微单元内的权重数据的总数;池化层,用于对每个卷积计算微单元的输出数据进行池化操作。该优选实施方式中,卷积计算微单元之间复用输入数据和权重数据,即每个PE计算子单元内部卷积计算时,每个卷积计算微单元将输入的数据输出到下个卷积计算微单元进行卷积计算,从而不需要重复从外部或内部存储区读写,降低了外部存储器或内部存储区的读写频次,从而降低了功耗;根据激活函数的特性,在通过卷积计算微单元进行卷积计算时,如果前几项卷积结果已经为负值,那么剩下的卷积计算可以省略,从而减少了卷积计算微单元的利用。优选的,逻辑计算单元还包括:压缩/解压单元,用于按照神经网络的层次并根据游程编码压缩算法对权重数据进行压缩,或者对压缩后的权重数据进行无损解压。该优选实施方式中,通过压缩/解压单元实现对权重数据的压缩,将压缩后的权重数据存储在外部存储器中或者内部缓存区,可简约存储空间;对权重数据进行了无损压缩,相当于减少了外部存储的读写次数,因此降低了能耗。优选的,逻辑计算单元还包括:缓存子单元,用于暂存权重数据、输入数据以及指令数据。优选的,总线接口为AXI接口,其支持DMA数据传输方式。优选的,所述主控芯片为zynq芯片,zynq芯片的PS端作为处理器单元,zynq芯片的PL端作为逻辑计算单元。第二方面,本专利技术实施例提供一种高能效的神经网络加速系统,包括:如第一方面的一种高能效的神经网络处理器;和存储模块,与主控芯片电连接,用于存储权重数据以及加法单元的输出数据。该实施例一种高能效的神经网络加速系统用于进行神经网络加速计算。第三方面,本专利技术实施例提供一种高能效的神经网络加速方法,包括:将权重数据存储于存储模块中;获取权重数据和输入数据,并根据神经网络的模型生成指令数据;以FIFO的方式获取指令数据,并根据指令数据激活适量个数的PE计算子单元以及PE计算子单元的资源;以FIFO的方式获取输入数据和权重数据,并基于为正数的权重数据优先输出、为负数的权重数据后输出、为零的权重数据不输出的原则,对权重数据和输入数据进行选择排序;以数据复用的方式获取输入数据,以多个PE计算子单元并行计算的方式对权重数据和输入数据进行卷积运算和池化运算,并在卷积运算过程中根据卷积运算的结果判断是否终止卷积运算;获取上述每个PE计算子单元的输出数据并进行加法运算得到最终数据,并将最终数据存储于存储模块。优选的,PE计算子单元对权重数据和相关的输入数据进行卷积运算和池化运算,包括:以数据复用的方式获取输入数据,以多个卷积计算微单元串行计算的方式对权重数据和相关的输入数据进行卷积运算;在卷积计算微单元内进行卷积运算过程中,通过激活函数判断是否终止当前卷积计算微单元内的卷积运算,包括:如果卷积计算微单元内对当前M个权重数据和相关的输入数据的卷积运算为负数,则自动终止卷积计算微单元内的卷积运算并输出零;否则,对N个权重数据和相关的输入数据进行卷积运算并输出为正数的卷积数据;其中,M<N,N为位于卷积计算微单元内的权重数据的总数;对每个卷积计算微单元的输出数据进行池化运算。优选的,将权重数据存储于外置的存储模块中之前,按照神经网络的层次并根据游程编码压缩算法对权重数据进行压缩,将压缩后的权重数据存储于外置的存储模块中;对权重数据和输入数据进行选择排序之前,对压缩后的权重数据进行无损解压。本专利技术提供的一种高能效的神经网络处理器、加速系统及方法具有以下优点:1、通过排序子模块对权重数据和输入数据进行排序,便于后续PE计算子单元内优先对为正数的权重数据和相关的输入数据进行卷积运算,后对为负数的权重数据和相关的输入数据进行卷积运算,在卷运算过程中可根据卷积运算结果判断是否自动终止卷积运算,从而可减少卷积计算相关单元的使用,并加快计算速度;2、PE计算子单元之间以数据复用的方式获取输入数据,同时,PE计算子单元内卷积计算微单元之间通过数据复用的方式获取输入数据,可减少对外部存储的读写,降低了功耗,提高了输入数据的利用率,并提高了计算速度;3、对权重数据进行压缩存储,降低了对存储空间的占用。附图说明为了更清除地说明本专利技术实施例中的技术方案,下面将对实施例中描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本文档来自技高网...

【技术保护点】
1.一种高能效的神经网络处理器,其特征在于为包含ARM核的主控芯片,包括:处理器单元,用于获取输入数据、权重数据并根据神经网络的模型生成指令数据;逻辑计算单元,其通过总线接口与处理器单元电连接,包括指令FIFO子单元、数据FIFO子单元、排序子单元、加法子单元以及多个PE计算子单元,其中:指令FIFO子单元,用于实现指令数据的FIFO,并根据指令数据激活适量个数的PE计算子单元以及PE计算子单元的资源;数据FIFO子单元,用于实现权重数据和输入数据的FIFO;排序子模块,用于基于为正数的权重数据优先输出、为负数的权重数据后输出、为零的权重数据不输出的原则,依序输出权重数据和输入数据;PE计算子单元,用于对权重数据和输入数据进行卷积运算和池化运算,并用于判断是否自动终止卷积运算;上述PE计算子单元共多个,其以数据复用的方式获取输入数据,并通过并行计算的方式对权重数据和输入数据进行卷积运算和池化运算;加法子单元,用于对上述多个PE计算子单元输出的数据进行加法运算。

【技术特征摘要】
1.一种高能效的神经网络处理器,其特征在于为包含ARM核的主控芯片,包括:处理器单元,用于获取输入数据、权重数据并根据神经网络的模型生成指令数据;逻辑计算单元,其通过总线接口与处理器单元电连接,包括指令FIFO子单元、数据FIFO子单元、排序子单元、加法子单元以及多个PE计算子单元,其中:指令FIFO子单元,用于实现指令数据的FIFO,并根据指令数据激活适量个数的PE计算子单元以及PE计算子单元的资源;数据FIFO子单元,用于实现权重数据和输入数据的FIFO;排序子模块,用于基于为正数的权重数据优先输出、为负数的权重数据后输出、为零的权重数据不输出的原则,依序输出权重数据和输入数据;PE计算子单元,用于对权重数据和输入数据进行卷积运算和池化运算,并用于判断是否自动终止卷积运算;上述PE计算子单元共多个,其以数据复用的方式获取输入数据,并通过并行计算的方式对权重数据和输入数据进行卷积运算和池化运算;加法子单元,用于对上述多个PE计算子单元输出的数据进行加法运算。2.根据权利要求1所述的一种高能效的神经网络处理器,其特征在于PE计算子单元包括:多个卷积计算微单元,用于以数据复用的方式获取输入数据,通过串行计算的方式对权重数据和输入数据进行卷积运算;激活函数,配置为relu函数,用于判断是否终止卷积计算微单元内的卷积运算,判断原则为:如果卷积计算微单元内对当前M个权重数据和相关的输入数据的卷积运算为负数,则自动终止卷积计算微单元内的卷积运算并输出零;否则,对N个权重数据和相关的输入数据进行卷积运算并输出为正数的卷积数据;其中,M<N,N为位于卷积计算微单元内的权重数据的总数;池化层,用于对每个卷积计算微单元的输出数据进行池化操作。3.根据权利要求1或2所述的一种高能效的神经网络处理器,其特征在于逻辑计算单元还包括:压缩/解压单元,用于按照神经网络的层次并根据游程编码压缩算法对权重数据进行压缩,或者对压缩后的权重数据进行无损解压。4.根据权利要求1或2所述的一种高能效的神经网络处理器,其特征在于逻辑计算单元还包括:缓存子单元,用于暂存权重数据、输入数据以及指令数据。5.根据权利要求1或2所述的一种高能效的神经网络处理器,其特征在于总线接口为AXI接口,其支持DMA数据传输方...

【专利技术属性】
技术研发人员:秦刚姜凯李朋
申请(专利权)人:济南浪潮高新科技投资发展有限公司
类型:发明
国别省市:山东,37

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

1