【技术实现步骤摘要】
运算方法、装置及相关产品
本公开涉及计算机
,尤其涉及一种数据处理装置、方法及相关产品。
技术介绍
随着科技的不断发展,机器学习,尤其是神经网络算法的使用越来越广泛。其在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。但由于神经网络算法的复杂度越来越高,所涉及的数据运算种类和数量不断增大,对如运算器的数量等硬件的要求也不断提高。相关技术中,通过减少或降低数据访存量、计算量的方式降低硬件需求,但会对计算的精度造成损失。如何在保证精度的前提下,降低数据访存量、计算量是亟待解决的问题。
技术实现思路
有鉴于此,本公开提供了一种数据处理装置、方法及相关产品,以解决保证计算精度与降低数据访存量、计算量无法同时满足的问题。根据本公开的第一方面,提供了一种数据处理装置,所述装置用于执行机器学习计算,所述装置包括控制模块和处理模块,所述处理模块包括数据传递子模块和累加子模块:所述控制模块用于获取计算指令,并获取执行所述计算指令所需的输入数据;所述数据传递子模块用于根据所述计算指令对所述输入数据进行处理,得到多个中间结果,并将所述多个中间结果依次发送至所述累加子模块;所述累加子模块用于对所述多个中间结果进行循环累加运算,得到所述计算指令的计算结果。根据本公开的第二方面,提供了一种机器学习运算装置,所述装置包括:一个或多个上述第一方面所述的数据处理装置,用于从其他处理装置中获取输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给 ...
【技术保护点】
1.一种数据处理装置,其特征在于,所述装置用于执行机器学习计算,所述装置包括控制模块和处理模块,所述处理模块包括数据传递子模块和累加子模块:/n所述控制模块用于获取计算指令,并获取执行所述计算指令所需的输入数据;/n所述数据传递子模块用于根据所述计算指令对所述输入数据进行处理,得到多个中间结果,并将所述多个中间结果依次发送至所述累加子模块;/n所述累加子模块用于对所述多个中间结果进行循环累加运算,得到所述计算指令的计算结果。/n
【技术特征摘要】
1.一种数据处理装置,其特征在于,所述装置用于执行机器学习计算,所述装置包括控制模块和处理模块,所述处理模块包括数据传递子模块和累加子模块:
所述控制模块用于获取计算指令,并获取执行所述计算指令所需的输入数据;
所述数据传递子模块用于根据所述计算指令对所述输入数据进行处理,得到多个中间结果,并将所述多个中间结果依次发送至所述累加子模块;
所述累加子模块用于对所述多个中间结果进行循环累加运算,得到所述计算指令的计算结果。
2.根据权利要求1所述的装置,其特征在于,所述累加子模块对所述多个中间结果进行循环累加运算,包括:
在接收到中间结果的第一运算周期,将所述中间结果与第一运算周期的第一中间数据相加,得到第一累加结果;
将所述第一累加结果存储为下一个运算周期的第一中间数据;
在未接收到中间结果的第二运算周期,将第二运算周期的第一中间数据确定为所述计算结果,
其中,初始运算周期的第一中间数据的值为零。
3.根据权利要求1所述的装置,其特征在于,所述累加子模块对所述多个中间结果进行循环累加运算,包括:
在接收到中间结果的第三运算周期,将所述中间结果与第三运算周期的第三中间数据相加,得到第二累加结果;
将第三运算周期的第二中间数据存储为下一个运算周期的第三中间数据,并将所述第二累加结果存储为下一个运算周期的第二中间数据;
在未接收到中间结果的第四运算周期,将第四运算周期的第二中间数据与第四运算周期的第三中间数据相加,得到所述计算结果,
其中,初始运算周期的第二中间数据及第三中间数据的值为零。
4.根据权利要求1-3任一项所述的装置,其特征在于,所述机器学习计算包括:人工神经网络运算,所述输入数据包括:输入神经元数据和权值数据;所述计算结果为输出神经元数据。
5.根据权利要求4所述的装置,其特征在于,所述输入数据的数据类型包括指数型和动态定点型中的至少一项,所述输入神经元数据和所述权值数据的数据类型不同,
其中,所述数据传递子模块用于根据所述计算指令对所述输入数据进行处理,得到多个中间结果,包括:
所述数据传递子模块用于根据所述计算指令对权值数据或所述输入神经元数据进行移位运算,得到中间结果,
其中,所述指数型的输入数据包括指数位,以指定值为底数、指数位存储的数据为指数进行计算所得到的数据表示所述指数型的输入数据的数值,
所述动态定点型的输入数据包括小数点位和整数位,所述小数点位所存储数据用于标记所述动态定点型的输入数据的小数点在所述整数位所存储数据中的位置,以区分所述整数位的数据中的整数部分和小数部分,
其中,所述指数型的输入数据所对应的指定值与所述输入数据的进位制相同。
6.根据权利要求1所述的装置,其特征在于,所述处理模块包括主处理子模块和多个从处理子模块,所述主处理子模块包括所述数据传递子模块和所述累加子模块,
所述控制模块,还用于解析所述计算指令得到多个运算指令,并将所述输入数据以及所述多个运算指令发送至所述主处理子模块;
所述主处理子模块,用于对所述输入数据执行前序处理,以及与所述多个从处理子模块进行数据和运算指令的传输;
所述多个从处理子模块,用于根据从所述主处理子模块传输的数据和运算指令并行执行中间运算得到多个中间结果,并将所述多个中间结果传输给所述主处理子模块;
所述主处理子模块,还用于对所述多个中间结果执行后续处理,得到所述计算指令的计算结果。
7.根据权利要求1所述的装置,其特征在于,
所述装置还包括:存储模块,用于存储所述输入数据;
其中,所述控制模块,包括:
指令存储子模块,用于存储所述计算指令;
指令处理子模块,用于对所述计算指令进行解析,得到所述计算指令的多个运算指令;
队列存储子模块,用于存储指令队列,所述指令队列包括按照执行顺序依次排列的多个待执行指令,所述多个待执行指令包括所述多个运算指令;
其中,所述控制模块,还包括:
依赖关系处理子模块,用于在确定所述多个待执行指令中的第一待执行指令与所述第一待执行指令之前的第零待执行指令存在关联关系时,将所述第一待执行指令缓存在所述指令存储子模块中,在所述第零待执行指令执行完毕后,从所述指令存储子模块中提取所述第一待执行指令发送至所述处理模块,
其中,所述第一待执行指令与所述第一待执行指令之前的第零待执行指令存在关联关系包括:
存储所述第一待执行指令所需数据的第一存储地址区间与存储所述第零待执行指令所需数据的第零存储地址区间具有重叠的区域。
8.一种机器学习运算装置,其特征在于,所述装置包括:
一个或多个如权利要求1-7任一项所述的数据处理装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据处理装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的...
【专利技术属性】
技术研发人员:不公告发明人,
申请(专利权)人:上海寒武纪信息科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。