[发明专利]运算方法、装置及相关产品有效
申请号: | 201811456735.X | 申请日: | 2018-11-30 |
公开(公告)号: | CN111258641B | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06N3/06 |
代理公司: | 北京林达刘知识产权代理事务所(普通合伙) 11277 | 代理人: | 刘新宇 |
地址: | 200120 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算 方法 装置 相关 产品 | ||
1.一种数据处理装置,其特征在于,所述装置用于执行机器学习计算,所述装置包括控制模块和处理模块,所述处理模块包括数据传递子模块和累加子模块:
所述控制模块用于获取计算指令,并获取执行所述计算指令所需的输入数据;
所述数据传递子模块用于根据所述计算指令对所述输入数据进行处理,得到多个中间结果,并将所述多个中间结果依次发送至所述累加子模块;
所述累加子模块用于对所述多个中间结果进行循环累加运算,得到所述计算指令的计算结果;
其中,所述累加子模块对所述多个中间结果进行循环累加运算,包括:在接收到中间结果的第一运算周期,将所述中间结果与第一运算周期的第一中间数据相加,得到第一累加结果;将所述第一累加结果存储为下一个运算周期的第一中间数据;在未接收到中间结果的第二运算周期,将第二运算周期的第一中间数据确定为所述计算结果,其中,初始运算周期的第一中间数据的值为零;或者,
所述累加子模块对所述多个中间结果进行循环累加运算,包括:在接收到中间结果的第三运算周期,将所述中间结果与第三运算周期的第三中间数据相加,得到第二累加结果;将第三运算周期的第二中间数据存储为下一个运算周期的第三中间数据,并将所述第二累加结果存储为下一个运算周期的第二中间数据;在未接收到中间结果的第四运算周期,将第四运算周期的第二中间数据与第四运算周期的第三中间数据相加,得到所述计算结果,其中,初始运算周期的第二中间数据及第三中间数据的值为零。
2.根据权利要求1所述的装置,其特征在于,所述机器学习计算包括:人工神经网络运算,所述输入数据包括:输入神经元数据和权值数据;所述计算结果为输出神经元数据。
3.根据权利要求2所述的装置,其特征在于,所述输入数据的数据类型包括指数型和动态定点型中的至少一项,所述输入神经元数据和所述权值数据的数据类型不同,
其中,所述数据传递子模块用于根据所述计算指令对所述输入数据进行处理,得到多个中间结果,包括:
所述数据传递子模块用于根据所述计算指令对权值数据或所述输入神经元数据进行移位运算,得到中间结果,
其中,所述指数型的输入数据包括指数位,以指定值为底数、指数位存储的数据为指数进行计算所得到的数据表示所述指数型的输入数据的数值,
所述动态定点型的输入数据包括小数点位和整数位,所述小数点位所存储数据用于标记所述动态定点型的输入数据的小数点在所述整数位所存储数据中的位置,以区分所述整数位的数据中的整数部分和小数部分,
其中,所述指数型的输入数据所对应的指定值与所述输入数据的进位制相同。
4.根据权利要求1所述的装置,其特征在于,所述处理模块包括主处理子模块和多个从处理子模块,所述主处理子模块包括所述数据传递子模块和所述累加子模块,
所述控制模块,还用于解析所述计算指令得到多个运算指令,并将所述输入数据以及所述多个运算指令发送至所述主处理子模块;
所述主处理子模块,用于对所述输入数据执行前序处理,以及与所述多个从处理子模块进行数据和运算指令的传输;
所述多个从处理子模块,用于根据从所述主处理子模块传输的数据和运算指令并行执行中间运算得到多个中间结果,并将所述多个中间结果传输给所述主处理子模块;
所述主处理子模块,还用于对所述多个中间结果执行后续处理,得到所述计算指令的计算结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811456735.X/1.html,转载请声明来源钻瓜专利网。