运算装置和方法制造方法及图纸

技术编号:20486716 阅读:25 留言:0更新日期:2019-03-02 19:43
本公开提供了一种运算装置,包括:运算模块,用于执行神经网络运算;以及幂次转换模块,与所述运算模块连接,用于将神经网络运算的输入神经元数据和/或输出神经元数据转换为幂次神经元数据。本公开还提供了一种运算方法。本公开运算装置及方法,减小了存储资源和计算资源的开销,提高了运算速度。

Operating devices and methods

The present disclosure provides an arithmetic device, including an arithmetic module for performing neural network operations, and a power conversion module connected with the arithmetic module for converting input neuron data and/or output neuron data of neural network operations into power neuron data. The present disclosure also provides an operation method. The disclosed computing device and method reduces the overhead of storage resources and computing resources, and improves the computing speed.

【技术实现步骤摘要】
运算装置和方法本公开是申请号为201880001242.9中国专利的分案申请,母案专利的内容皆引用于此。
本公开涉及人工智能
,更具体地涉及一种运算装置和方法。
技术介绍
多层神经网络被广泛应用于分类识别等任务,近年来,由于其较高的识别率和较高的可并行性,受到学术界和工业界的广泛关注。目前一些性能较好的神经网络通常都非常庞大,这也意味着这些神经网络需要大量的计算资源和存储资源。大量的计算和存储资源的开销会降低神经网络的运算速度,同时,对硬件的传输带宽以及运算器的要求也大大提高。
技术实现思路
(一)要解决的技术问题本公开提供了一种运算装置和方法,以至少部分解决以上所提出的技术问题。(二)技术方案根据本公开的一个方面,提供了一种神经网络运算装置,包括:运算模块,用于执行神经网络运算;以及幂次转换模块,与所述运算模块连接,用于将神经网络运算的输入数据和/或输出数据转换为幂次数据。在一些实施例中,所述输入数据包括输入神经元数据、输入权值数据,所述输出数据包括输出神经元数据、输出权值数据,所述幂次数据包括幂次神经元数据、幂次权值数据。在一些实施例中,所述幂次转换模块包括:第一幂次转换单元,用于将所述运算模块的输出数据转换为幂次数据;以及第二幂次转换单元,用于将所述运算模块的输入数据转换为幂次数据。在一些实施例中,所述运算模块还包括:第三幂次转换单元,用于将幂次数据转换为非幂次数据。在一些实施例中,所述的神经网络运算装置,还包括:存储模块,用于存储数据和运算指令;控制模块,用于控制数据和运算指令的交互,其接收该存储模块发送的数据和运算指令,并将运算指令译码成运算微指令;其中,所述运算模块包括运算单元,用于接收所述控制模块发送的数据和运算微指令,并根据运算微指令对其接收的权值数据和神经元数据执行神经网络运算。在一些实施例中,所述控制模块包括:运算指令缓存单元、译码单元、输入神经元缓存单元、权值缓存单元以及数据控制单元;其中运算指令缓存单元,与所述数据控制单元连接,用于接收该数据控制单元发送的运算指令;译码单元,与所述运算指令缓存单元连接,用于从运算指令缓存单元中读取运算指令,并将其译码成运算微指令;输入神经元缓存单元,与所述数据控制单元连接,用于从该数据控制单元获取相应的幂次神经元数据;权值缓存单元,与所述数据控制单元连接,用于从数据控制单元获取相应的幂次权值数据;数据控制单元,与所述存储模块连接,用于实现所述存储模块分别与所述运算指令缓存单元、所述权值缓存单元以及所述输入神经元缓存单元之间的数据和运算指令交互;其中,所述运算单元分别与所述译码单元、输入神经元缓存单元及权值缓存单元连接,接收运算微指令、幂次神经元数据、幂次权值数据,根据所述运算微指令对运算单元接收的幂次神经元数据、幂次权值数据执行相应的神经网络运算。在一些实施例中,所述的神经网络运算装置,还包括:输出模块,其包括输出神经元缓存单元,用于接收所述运算模块输出的神经元数据;其中,所述幂次转换模块包括:第一幂次转换单元,与所述输出神经元缓存单元及所述运算单元连接,用于将所述输出神经元缓存单元输出的神经元数据转换为幂次神经元数据以及将运算单元输出的权值数据转换为幂次权值数据;第二幂次转换单元,与所述存储模块连接,用于将输入所述存储模块的神经元数据、权值数据分别转换为幂次神经元数据、幂次权值数据;所述运算模块还包括:第三幂次转换单元,与所述运算单元连接,用于将幂次神经元数据、幂次权值数据分别转换为非幂次神经元数据、非幂次权值数据。在一些实施例中,所述第一幂次转换单元还与所述数据控制单元连接,用于所述运算模块输出的神经元数据、权值数据分别转换为幂次神经元数据、幂次权值数据并发送至所述数据控制单元,以作为下一层神经网络运算的输入数据。在一些实施例中,所述幂次神经元数据包括符号位和幂次位,所述符号位用于表示所述幂次神经元数据的符号,所述幂次位用于表示所述幂次神经元数据的幂次位数据;所述符号位包括一位或多位比特位数据,所述幂次位包括m位比特位数据,m为大于1的正整数;所述幂次权值数据表示权值数据的数值采用其幂指数值形式表示,其中,所述幂次权值数据包括符号位和幂次位,符号位采用一位或多位比特位表示权值数据的符号,幂次位采用m位比特位表示权值数据的幂次位数据,m为大于1的正整数。在一些实施例中,所述神经网络运算装置还包括存储模块,该存储模块预存有编码表,该编码表包括幂次位数据以及指数数值,所述编码表用于通过幂次神经元数据、幂次权值数据的每个幂次位数据获取与幂次位数据对应的指数数值。在一些实施例中,所述编码表还包括一个或多个置零幂次位数据,所述置零幂次位数据对应的幂次神经元数据、幂次权值数据为0。在一些实施例中,最大的幂次位数据对应幂次神经元数据、幂次权值数据为0,或最小的幂次位数据对应幂次神经元数据、幂次权值数据为0。在一些实施例中,所述编码表的对应关系为幂次位数据最高位代表置零位,幂次位数据的其他m-1位对应指数数值。在一些实施例中,所述编码表的对应关系为正相关关系,存储模块预存一个整数值x和一个正整数值y,最小的幂次位数据对应指数数值为x;其中,x表示偏置值,y表示步长。在一些实施例中,最小的幂次位数据对应指数数值为x,最大的幂次位数据对应幂次神经元数据、幂次权值数据为0,最小和最大的幂次位数据之外的其他的幂次位数据对应指数数值为(幂次位数据+x)*y。在一些实施例中,y=1,x的数值=-2m-1。在一些实施例中,所述编码表的对应关系为负相关关系,存储模块预存一个整数值x和一个正整数值y,最大的幂次位数据对应指数数值为x;其中,x表示偏置值,y表示步长。在一些实施例中,最大的幂次位数据对应指数数值为x,最小的幂次位数据对应幂次神经元数据、幂次权值数据为0,最小和最大的幂次位数据之外的其他的幂次位数据对应指数数值为(幂次位数据-x)*y。在一些实施例中,y=1,x的数值等于2m-1。在一些实施例中,将神经元数据、权值数据分别转换成幂次神经元数据、幂次权值数据包括:sout=sin其中,din为幂次转换单元的输入数据,dout为幂次转换单元的输出数据,sin为输入数据的符号,sout为输出数据的符号,din+为输入数据的正数部分,din+=din×sin,dout+为输出数据的正数部分,dout+=dout×sout,表示对数据x做取下整操作;或,sout=sin其中,din为幂次转换单元的输入数据,dout为幂次转换单元的输出数据,sin为输入数据的符号,sout为输出数据的符号,din+为输入数据的正数部分,din+=din×sin,dout+为输出数据的正数部分,dout+=dout×sout,表示对数据x做取上整操作;或,sout=sindout+=[log2(din+)]其中,din为幂次转换单元的输入数据,dout为幂次转换单元的输出数据;sin为输入数据的符号,sout为输出数据的符号;din+为输入数据的正数部分,din+=din×sin,dout+为输出数据的正数部分,dout+=dout×sout;[x]表示对数据x做四舍五入操作。根据本公开的另一个方面,提供了一种神经网络运算方法,包括:执行神经网络运算;以及在执行神经网络运算之前本文档来自技高网...

【技术保护点】
1.一种神经网络运算装置,包括:运算模块,用于执行神经网络运算;以及幂次转换模块,与所述运算模块连接,用于将神经网络运算的输入数据和/或输出数据转换为幂次数据。

【技术特征摘要】
2017.04.06 CN 2017102222325;2017.04.07 CN 201710221.一种神经网络运算装置,包括:运算模块,用于执行神经网络运算;以及幂次转换模块,与所述运算模块连接,用于将神经网络运算的输入数据和/或输出数据转换为幂次数据。2.根据权利要求1所述的神经网络运算装置,其中,所述输入数据包括输入神经元数据、输入权值数据,所述输出数据包括输出神经元数据、输出权值数据,所述幂次数据包括幂次神经元数据、幂次权值数据。3.根据权利要求1或2所述的神经网络运算装置,其中,所述幂次转换模块包括:第一幂次转换单元,用于将所述运算模块的输出数据转换为幂次数据;以及第二幂次转换单元,用于将所述运算模块的输入数据转换为幂次数据。4.根据权利要求3所述的神经网络运算装置,其中,所述运算模块还包括:第三幂次转换单元,用于将幂次数据转换为非幂次数据。5.根据权利要求1至4中任一项所述的神经网络运算装置,还包括:存储模块,用于存储数据和运算指令;控制模块,用于控制数据和运算指令的交互,其接收该存储模块发送的数据和运算指令,并将运算指令译码成运算微指令;其中,所述运算模块包括运算单元,用于接收所述控制模块发送的数据和运算微指令,并根据运算微指令对其接收的权值数据和神经元数据执行神经网络运算。6.根据权利要求5所述的神经网络运算装置,其中,所述控制模块包括:运算指令缓存单元、译码单元、输入神经元缓存单元、权值缓存单元以及数据控制单元;其中运算指令缓存单元,与所述数据控制单元连接,用于接收该数据控制单元发送的运算指令;译码单元,与所述运算指令缓存单元连接,用于从运算指令缓存单元中读取运算指令,并将其译码成运算微指令;输入神经元缓存单元,与所述数据控制单元连接,用于从该数据控制单元获取相应的幂次神经元数据;权值缓存单元,与所述数据控制单元连接,用于从数据控制单元获取相应的幂次权值数据;数据控制单元,与所述存储模块连接,用于实现所述存储模块分别与所述运算指令缓存单元、所述权值缓存单元以及所述输入神经元缓存单元之间的数据和运算指令交互;其中,所述运算单元分别与所述译码单元、输入神经元缓存单元及权值缓存单元连接,接收运算微指令、幂次神经元数据、幂次权值数据,根据所述运算微指令对运算单元接收的幂次神经元数据、幂次权值数据执行相应的神经网络运算。7.根据权利要求6所述的神经网络运算装置,还包括:输出模块,其包括输出神经元缓存单元,用于接收所述运算模块输出的神经元数据;其中,所述幂次转换模块包括:第一幂次转换单元,与所述输出神经元缓存单元及所述运算单元连接,用于将所述输出神经元缓存单元输出的神经元数据转换为幂次神经元数据以及将运算单元输出的权值数据转换为幂次权值数据;第二幂次转换单元,与所述存储模块连接,用于将输入所述存储模块的神经元数据、权值数据分别转换为幂次神经元数据、幂次权值数据;所述运算模块还包括:第三幂次转换单元,与所述运算单元连接,用于将幂次神经元数据、幂次权值数据分别转换为非幂次神经元数据、非幂次权值数据。8.根据权利要求6或7所述的神经网络运算装置,其中,所述第一幂次转换单元还与所述数据控制单元连接,用于所述运算模块输出的神经元数据、权值数据分别转换为幂次神经元数据、幂次权值数据并发送至所述数据控制单元,以作为下一层神经网络运算的输入数据。9.根据权利要求2至8中任一项所述的神经网络运算装置,其中,所述幂次神经元数据包括符号位和幂次位,所述符号位用于表示所述幂次神经元数据的符号,所述幂次位用于表示所述幂次神经元数据的幂次位数据;所述符号位包括一位或多位比特位数据,所述幂次位包括m位比特位数据,m为大于1的正整数;所述幂次权值数据表示权值数据的数值采用其幂指数值形式表示,其中,所述幂次权值数据包括符号位和幂次位,符号位采用一位或多位比特位表示权值数据的符号,幂次位采用m位比特位表示权值数据的幂次位数据,m为大于1的正整数。10.根据权利要求1至9中任一项所述的神经网络运算装置,还包括:存储模块,该存储模块预存有编码表,该编码表包括幂次位数据以及指数数值,所述编码表用于通过幂次神经元数据、幂次权值数据的每个幂次位数据获取与幂次位数据对应的指数数值。11.根据权利要求10所述的神经网络运算装置,其中,所述编码表还包括一个或多个置零幂次位数据,所述置零幂次位数据对应的幂次神经元数据、幂次权值数据为0。12.根据权利要求10或11所述的神经网络运算装置,其中,最大的幂次位数据对应幂次神经元数据、幂次权值数据为0,或最小的幂次位数据对应幂次神经元数据、幂次权值数据为0。13.根据权利要求10至12中任一项所述...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1