运算方法、装置及相关产品制造方法及图纸

技术编号:24459089 阅读:27 留言:0更新日期:2020-06-10 16:27
本公开涉及运算方法、装置及相关产品。机器学习装置包括一个或多个指令处理装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;当机器学习运算装置包含多个指令处理装置时,多个指令处理装置间可以通过特定的结构进行连接并传输数据。其中,多个指令处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据;多个指令处理装置共享同一控制系统或拥有各自的控制系统、且共享内存或者拥有各自的内存;多个指令处理装置的互联方式是任意互联拓扑。本公开实施例所提供的运算方法、装置及相关产品能够在保证计算精度无损的同时,降低数据访存量和计算量。

Calculation method, device and related products

【技术实现步骤摘要】
运算方法、装置及相关产品
本公开涉及计算机
,尤其涉及一种数据处理装置、方法及相关产品。
技术介绍
随着科技的不断发展,机器学习,尤其是神经网络算法的使用越来越广泛。其在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。但由于神经网络算法的复杂度越来越高,所涉及的数据运算种类和数量不断增大,对如运算器的数量等硬件的要求也不断提高。相关技术中,通过减少或降低数据访存量、计算量的方式降低硬件需求,但会对计算的精度造成损失。如何在保证精度的前提下,降低数据访存量、计算量是亟待解决的问题。
技术实现思路
有鉴于此,本公开提供了一种数据处理装置、方法及相关产品,以解决保证计算精度与降低数据访存量、计算量无法同时满足的问题。根据本公开的第一方面,提供了一种数据处理装置,所述装置用于执行机器学习计算,所述装置包括:控制模块,用于获取输入数据和计算指令;处理模块,用于根据所述计算指令对所述输入数据进行机器学习计算,得到所述计算指令的计算结果,其中,所述输入数据的数据类型包括指数型和动态定点型中的至少一项,所述指数型的输入数据包括指数位,所述指数位用于存储所述指数型的输入数据的指数,所述动态定点型的输入数据包括小数点位和整数位,所述整数位用于存储所述动态定点型的输入数据整数部分数据和小数部分数据,所述小数点位中存储的数据用于标记小数点在所述整数位所存储数据中的位置,对所述输入数据进行机器学习计算包括:对所述输入数据进行移位运算。根据本公开的第二方面,提供了一种机器学习运算装置,所述装置包括:一个或多个上述第一方面所述的数据处理装置,用于从其他处理装置中获取输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行连接并传输数据;其中,多个所述数据处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。根据本公开的第三方面,提供了一种组合处理装置,所述装置包括:上述第二方面所述的机器学习运算装置、通用互联接口和其他处理装置;所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。根据本公开的第四方面,提供了一种机器学习芯片,所述机器学习芯片包括上述第二方面所述的机器学习络运算装置或上述第三方面所述的组合处理装置。根据本公开的第五方面,提供了一种机器学习芯片封装结构,该机器学习芯片封装结构包括上述第四方面所述的机器学习芯片。根据本公开的第六方面,提供了一种板卡,该板卡包括上述第五方面所述的机器学习芯片封装结构。根据本公开的第七方面,提供了一种电子设备,所述电子设备包括上述第四方面所述的机器学习芯片或上述第六方面所述的板卡。根据本公开的第八方面,提供了一种数据处理方法,所述方法应用于数据处理装置,所述数据处理装置用于执行机器学习计算,所述方法包括:获取输入数据和计算指令;根据所述计算指令对所述输入数据进行机器学习计算,得到所述计算指令的计算结果,其中,所述输入数据的数据类型包括指数型和动态定点型中的至少一项,所述指数型的输入数据包括指数位,所述指数位用于存储所述指数型的输入数据的指数,所述动态定点型的输入数据包括小数点位和整数位,所述整数位用于存储所述动态定点型的输入数据整数部分数据和小数部分数据,所述小数点位中存储的数据用于标记小数点在所述整数位所存储数据中的位置,对所述输入数据进行机器学习计算包括:对所述输入数据进行移位运算。本公开实施例所提供的数据处理装置、方法及相关产品,该装置包括:控制模块用于获取输入数据和计算指令。处理模块用于根据计算指令对输入数据进行机器学习计算,得到计算指令的计算结果。其中,输入数据的数据类型可以包括指数型和动态定点型中的至少一项,指数型的输入数据包括指数位,指数位用于存储指数型的输入数据的指数,动态定点型的输入数据包括小数点位和整数位,整数位用于存储动态定点型的输入数据整数部分数据和小数部分数据,小数点位中存储的数据用于标记小数点在整数位所存储数据中的位置。对输入数据进行机器学习计算包括:对输入数据进行移位运算。本公开实施例所提供的数据处理装置、方法及相关产品,能够在保证计算精度无损的同时,降低数据访存量和计算量,且能够有效提高数据处理速度。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。图1示出根据本公开一实施例的数据处理装置的框图。图2示出根据本公开一实施例的数据处理装置的框图。图3a-图3d示出根据本公开一实施例的数据处理装置中处理模块的框图。图4示出根据本公开一实施例的数据处理装置的应用场景的示意图。图5a、图5b示出根据本公开一实施例的组合处理装置的框图。图6示出根据本公开一实施例的板卡的结构示意图。图7示出根据本公开一实施例的数据处理方法的流程图。具体实施方式以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。图1示出根据本公开一实施例的数据处理装置的框图。该装置用于执行机器学习计算。如图1所示,该装置包括控制模块11和处理模块12。控制模块11用于获取输入数据和计算指令。处理模块12用于根据计算指令对输入数据进行机器学习计算,得到计算指令的计算结果。其中,输入数据的数据类型可以包括指数型和动态定点型中的至少一项,指数型的输入数据包括指数位,指数位用于存储指数型的输入数据的指数,动态定点型的输入数据包括小数点位和整数位,整数位用于存储动态定点型的输入数据整数部分数据和小数部分数据,小数点位中存储的数据用于标记小数点在整数位所存储数据中的位置。对输入数据进行机器学习计算可以包括:对输入数据进行移位运算。在本实施例中,输入数据的进位制可以是二进制、十进制、十六进制等,本公开对此不作限制。在本实本文档来自技高网...

【技术保护点】
1.一种数据处理装置,其特征在于,所述装置用于执行机器学习计算,所述装置包括:/n控制模块,用于获取输入数据和计算指令;/n处理模块,用于根据所述计算指令对所述输入数据进行机器学习计算,得到所述计算指令的计算结果,/n其中,所述输入数据的数据类型包括指数型和动态定点型中的至少一项,所述指数型的输入数据包括指数位,所述指数位用于存储所述指数型的输入数据的指数,所述动态定点型的输入数据包括小数点位和整数位,所述整数位用于存储所述动态定点型的输入数据整数部分数据和小数部分数据,所述小数点位中存储的数据用于标记小数点在所述整数位所存储数据中的位置,/n对所述输入数据进行机器学习计算包括:对所述输入数据进行移位运算。/n

【技术特征摘要】
1.一种数据处理装置,其特征在于,所述装置用于执行机器学习计算,所述装置包括:
控制模块,用于获取输入数据和计算指令;
处理模块,用于根据所述计算指令对所述输入数据进行机器学习计算,得到所述计算指令的计算结果,
其中,所述输入数据的数据类型包括指数型和动态定点型中的至少一项,所述指数型的输入数据包括指数位,所述指数位用于存储所述指数型的输入数据的指数,所述动态定点型的输入数据包括小数点位和整数位,所述整数位用于存储所述动态定点型的输入数据整数部分数据和小数部分数据,所述小数点位中存储的数据用于标记小数点在所述整数位所存储数据中的位置,
对所述输入数据进行机器学习计算包括:对所述输入数据进行移位运算。


2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
第一类型转换模块,用于将接收到的待处理数据转换为以指定值为底数的第一数据,并根据所述第一数据的指数,生成所述指数型的输入数据,
其中,所述指数型的输入数据的指数位用于存储所述指数。


3.根据权利要求2所述的装置,其特征在于,所述指数型的输入数据所对应的指定值与所述输入数据的进位制相对应。


4.根据权利要求1所述的装置,其特征在于,所述装置还包括:
第二类型转换模块,用于对接收到的待处理数据进行转换,得到分别表征所述待处理数据的整数部分的数值的第二数据和表征小数部分的数值的第三数据,并根据所述第二数据、所述第三数据、以及所述待处理数据的小数点位置,生成所述动态定点型的输入数据,
其中,所述动态定点型的输入数据的整数位用于存储所述第二数据和所述第三数据,所述动态定点型的输入数据的小数点位所存储的数据用于标记所述待处理数据的小数点在所述整数位所存储数据中的位置。


5.根据权利要求1所述的装置,其特征在于,所述机器学习计算包括:人工神经网络运算,所述输入数据包括:输入神经元数据和权值数据;所述计算结果为输出神经元数据,所述输入神经元数据与所述权值数据的数据类型不同。


6.根据权利要求1所述的装置,其特征在于,所述处理模块包括主处理子模块和多个从处理子模块,
所述控制模块,还用于解析所述计算指令得到多个运算指令,并将所述输入数据以及所述多个运算指令发送至所述主处理子模块;
所述主处理子模块,用于对所述输入数据执行前序处理,以及与所述多个从处理子模块进行数据和运算指令的传输;
所述多个从处理子模块,用于根据从所述主处理子模块传输的数据和运算指令并行执行中间运算得到多个中间结果,并将所述多个中间结果传输给所述主处理子模块;
所述主处理子模块,还用于对所述多个中间结果执行后续处理,得到所述计算指令的计算结果。


7.根据权利要求1所述的装置,其特征在于,
所述装置还包括:存储模块,用于存储所述输入数据;
其中,所述控制模块,包括:
指令存储子模块,用于存储所述计算指令;
指令处理子模块,用于对所述计算指令进行解析,得到所述计算指令的多个运算指令;
队列存储子模块,用于存储指令队列,所述指令队列包括按照执行顺序依次排列的多个待执行指令,所述多个待执行指令包括所述多个运算指令;
其中,所述控制模块,还包括:
依赖关系处理子模块,用于在确定所述多个待执行指令中的第一待执行指令与所述第一待执行指令之前的第零待执行指令存在关联关系时,将所述第一待执行指令缓存在所述指令存储子模块中,在所述第零待执行指令执行完毕后,从所述指令存储子模块中提取所述第一待执行指令发送至所述处理模块,
其中,所述第一待执行指令与所述第一待执行指令之前的第零待执行指令存在关联关系包括:
存储所述第一待执行指令所需数据的第一存储地址区间与存储所述第零待执行指令所需数据的第零存储地址区间具有重叠的区域。


8.一种机器学习运算装置,其特征在于,所述装置包括:
一个或多个如权利要求1-7任一项所述的数据处理装置,用于从其他处理装置中获取输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。


9.一种组合处理装置,其特征在于,所述组合处...

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

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

1