一种计算装置及方法制造方法及图纸

技术编号:22187015 阅读:22 留言:0更新日期:2019-09-25 03:52
本申请提供了一种计算装置,该计算装置用于执行网络模型的计算,该网络模型包括神经网络模型和/或非神经网络模型;计算装置包括:用于获取至少一个输入数据、网络模型以及计算指令的存储单元;用于从存储单元提取计算指令,对该计算指令进行译码以得到一个或多个运算指令和将一个或多个运算指令以及至少一个输入数据发送给运算单元的控制器单元;和用于根据一个或多个运算指令对至少一个输入数据执行计算得到计算指令的结果的运算单元。本发明专利技术实施例对参与网络模型计算的数据采用定点数据进行表示,可提升训练运算的处理速度和处理效率。

A Computing Device and Method

【技术实现步骤摘要】
一种计算装置及方法
本申请涉及信息处理
,具体涉及一种计算装置及方法。
技术介绍
随着信息技术的不断发展和人们日益增长的需求,人们对信息及时性的要求越来越高了。目前,终端对信息的获取以及处理均是基于通用处理器获得的。在实践中发现,这种基于通用处理器运行软件程序来处理信息的方式,受限于通用处理器的运行速率,特别是在通用处理器负荷较大的情况下,信息处理效率较低、时延较大,对于信息处理的计算模型例如训练模型来说,训练运算的计算量更大,通用的处理器完成训练运算的时间长,效率低。申请内容本申请实施例提供了一种计算装置及方法,可提升运算的处理速度,提高效率。第一方面,本专利技术实施例提供了在一种计算装置,所述计算装置用于执行网络模型的计算,所述网络模型包括:神经网络模型和/或非神经网络模型;所述计算装置包括:运算单元、控制器单元以及存储单元,所述存储单元包括:数据输入输出单元;所述数据输入输出单元,用于获取至少一个输入数据、网络模型以及计算指令,所述至少一个输入数据为定点数据;所述控制器单元,用于从所述存储单元提取所述计算指令,对该计算指令进行译码以得到一个或多个运算指令;将所述一个或多个运算指令以及所述至少一个输入数据发送给所述运算单元;所述运算单元,用于根据所述一个或多个运算指令对所述至少一个输入数据执行计算得到计算指令的结果,所述计算指令的结果为浮点数据。在一种可行的实施例中,所述存储单元还包括:存储介质,用于存储所述网络模型和所述至少一个输入数据;标量数据存储单元,用于存储标量数据。在一种可行的实施例中,所述控制器单元包括:指令缓存单元,用于存储与所述网络模型关联的计算指令;指令处理单元,用于对所述计算指令对进行译码,以得到所述一个或多个运算指令;存储队列单元,用于存储指令队列,该指令队列包括按该队列的前后顺序待执行的一个或多个运算指令或计算指令。在一种可行的实施例中,所述数据输入输出单元还获取数据转换指令,所述数据转换指令包括操作域和操作码,该操作码用于指示所述数据转换指令的功能,所述数据转换指令的操作域包括输入数据的小数点位置和数据类型的转换方式标识;所述控制器单元还包括:所述指令处理单元,还用于当所述至少一个输入数据为浮点数据时,对所述数据转换指令进行解析,以得到所述输入数据的小数点位置和所述数据类型的转换方式标识;数据转换单元,用于根据所述输入数据的小数点位置和所述数据类型的转换方式标识将所述至少一个输入数据转换为定点数据。在一种可行的实施例中,所述运算单元包括:依赖关系处理单元,用于确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第一运算指令与所述第零运算指令不具有关联关系;其中,所述第一运算指令和所述第零运算指令为所述多个运算指令中的任意两个。在一种可行的实施例中,所述运算单元包括:多个运算模块,所述多个运算模块包用于执行n个流水级的计算;所述运算单元,具体用于对所述至少一个输入数据执行第一流水级的计算得到第一中间结果,将所述第一中间结果输入到第二流水级执行第二流水级的计算得到第二中间结果,…,将第n-1中间结果输入到第n流水级执行第n流水级的计算得到第n中间结果,将所述第n中间结果输入到所述存储单元,所述n为大于或等于3的整数。在一种可行的实施例中,所述控制器单元将所述至少一个输入数据的小数点位置发送至所述运算单元,所述运算单元还包括:推导单元,根据所述至少一个输入数据的小数点位置推导得到一个或者多个中间结果的小数点位置。在一种可行的实施例中,所述运算单元还包括:数据缓存单元,用于缓存所述一个或者多个中间结果。在一种可行的实施例中,所述运算单元包括一个主处理电路、分支处理电路以及多个从处理电路,所述主处理电路,用于将输入数据A分配成多个数据块,将所述多个数据块中的至少一个数据块以及所述输入数据A参与运算的运算指令发送给所述分支处理电路,所述输入数据A为所述至少一个输入数据中的任意一个;所述分支处理电路,用于转发所述主处理电路与所述多个从处理电路之间的数据;所述多个从处理电路,用于依据该运算指令对接收到的数据块执行运算得到至少一个中间结果,并将所述至少一个中间结果传输给所述分支处理电路;所述主处理电路,用于将分支处理电路发送的至少一个中间结果进行处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元;其中,所述至少一个中间结果为浮点数据。在一种可行的实施例中,所述运算单元包括一个主处理电路以及多个从处理电路;所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的K个从处理电路,所述K个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路;所述K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及指令的转发;所述主处理电路,用于将输入数据A分配成多个数据块,将所述多个数据块中的至少一个数据块以及所述输入数据A参与运算的运算指令发送给所述K个从处理电路,所述输入数据A为所述至少一个输入数据中的任意一个;所述K个从处理电路,用于转换所述主处理电路与所述多个从处理电路之间的数据;所述多个从处理电路,用于依据该运算指令对接收到的数据块执行运算得到至少一个中间结果,并将所述至少一个中间结果传输给所述K个从处理电路;所述主处理电路,用于将所述K个从处理电路发送的至少一个中间结果进行处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元;其中,所述至少一个中间结果为浮点数据。在一种可行的实施例中,所述主处理电路,具体用于将多个处理电路发送的中间结果进行组合排序得到该计算指令的结果;或所述主处理电路,具体用于将多个处理电路的发送的中间结果进行组合排序以及激活处理后得到该计算指令的结果。在一种可行的实施例中,所述主处理电路包括:转换处理电路、激活处理电路、加法处理电路中的一种或任意组合;所述转换处理电路,用于将主处理电路接收的数据块或中间结果执行第一数据结构与第二数据结构之间的互换;或将主处理电路接收的数据块或中间结果执行第一数据类型与第二数据类型之间的互换;所述激活处理电路,用于执行主处理电路内数据的激活运算;所述加法处理电路,用于执行加法运算或累加运算。在一种可行的实施例中,所述从处理电路包括:乘法处理电路;所述乘法处理电路,用于对接收到的数据块执行乘积运算得到乘积结果。在一种可行的实施例中,所述从处理电路还包括:累加处理电路,所述累加处理电路,用于对该乘积结果执行累加运算得本文档来自技高网...

【技术保护点】
1.一种计算装置,其特征在于,所述计算装置用于执行网络模型的计算,所述网络模型包括:神经网络模型和/或非神经网络模型;所述计算装置包括:运算单元、控制器单元以及存储单元,所述存储单元包括:数据输入输出单元;所述数据输入输出单元,用于获取至少一个输入数据、网络模型以及计算指令,所述至少一个输入数据为定点数据;所述控制器单元,用于从所述存储单元提取所述计算指令,对该计算指令进行译码以得到一个或多个运算指令;将所述一个或多个运算指令以及所述至少一个输入数据发送给所述运算单元;所述运算单元,用于根据所述一个或多个运算指令对所述至少一个输入数据执行计算得到计算指令的结果,所述计算指令的结果为浮点数据。

【技术特征摘要】
1.一种计算装置,其特征在于,所述计算装置用于执行网络模型的计算,所述网络模型包括:神经网络模型和/或非神经网络模型;所述计算装置包括:运算单元、控制器单元以及存储单元,所述存储单元包括:数据输入输出单元;所述数据输入输出单元,用于获取至少一个输入数据、网络模型以及计算指令,所述至少一个输入数据为定点数据;所述控制器单元,用于从所述存储单元提取所述计算指令,对该计算指令进行译码以得到一个或多个运算指令;将所述一个或多个运算指令以及所述至少一个输入数据发送给所述运算单元;所述运算单元,用于根据所述一个或多个运算指令对所述至少一个输入数据执行计算得到计算指令的结果,所述计算指令的结果为浮点数据。2.根据权利要求1所述的装置,其特征在于,所述存储单元还包括:存储介质,用于存储所述网络模型和所述至少一个输入数据;标量数据存储单元,用于存储标量数据。3.根据权利要求1所述的装置,其特征在于,所述控制器单元包括:指令缓存单元,用于存储与所述网络模型关联的计算指令;指令处理单元,用于对所述计算指令对进行译码,以得到所述一个或多个运算指令;存储队列单元,用于存储指令队列,该指令队列包括按该队列的前后顺序待执行的一个或多个运算指令或计算指令。4.根据权利要求3所述的装置,其特征在于,所述数据输入输出单元还获取数据转换指令,所述数据转换指令包括操作域和操作码,该操作码用于指示所述数据转换指令的功能,所述数据转换指令的操作域包括输入数据的小数点位置和数据类型的转换方式标识;所述控制器单元还包括:所述指令处理单元,还用于当所述至少一个输入数据为浮点数据时,对所述数据转换指令进行解析,以得到所述输入数据的小数点位置和所述数据类型的转换方式标识;数据转换单元,用于根据所述输入数据的小数点位置和所述数据类型的转换方式标识将所述至少一个输入数据转换为定点数据。5.根据权利要求3或4所述的装置,其特征在于,所述运算单元包括:依赖关系处理单元,用于确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第一运算指令与所述第零运算指令不具有关联关系;其中,所述第一运算指令和所述第零运算指令为所述多个运算指令中的任意两个。6.根据权利要求1-3任一项所述的装置,其特征在于,所述运算单元包括:多个运算模块,所述多个运算模块用于执行n个流水级的计算;所述运算单元,具体用于对所述至少一个输入数据执行第一流水级的计算得到第一中间结果,将所述第一中间结果输入到第二流水级执行第二流水级的计算得到第二中间结果,…,将第n-1中间结果输入到第n流水级执行第n流水级的计算得到第n中间结果,将所述第n中间结果输入到所述存储单元,所述n为大于或等于3的整数。7.根据权利要求6所述的装置,其特征在于,所述控制器单元将所述至少一个输入数据的小数点位置发送至所述运算单元,所述运算单元还包括:推导单元,根据所述至少一个输入数据的小数点位置推导得到一个或者多个中间结果的小数点位置。8.根据权利要求7所述的装置,其特征在于,所述运算单元还包括:数据缓存单元,用于缓存所述一个或者多个中间结果。9.根据权利要求1-5任一项所述的装置,其特征在于,所述运算单元包括一个主处理电路、分支处理电路以及多个从处理电路,所述主处理电路,用于将输入数据A分配成多个数据块,将所述多个数据块中的至少一个数据块以及所述输入数据A参与运算的运算指令发送给所述分支处理电路,所述输入数据A为所述至少一个输入数据中的任意一个;所述分支处理电路,用于转发所述主处理电路与所述多个从处理电路之间的数据;所述多个从处理电路,用于依据该运算指令对接收到的数据块执行运算得到至少一个中间结果,并将所述至少一个中间结果传输给所述分支处理电路;所述主处理电路,用于将分支处理电路发送的至少一个中间结果进行处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元;其中,所述至少一个中间结果为浮点数据。10.根据权利要求1-5任一项所述的装置,其特征在于,所述运算单元包括一个主处理电路以及多个从处理电路;所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的K个从处理电路,所述K个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的...

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

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

1