[发明专利]运算方法、装置及相关产品有效
申请号: | 201811455806.4 | 申请日: | 2018-11-30 |
公开(公告)号: | CN109558565B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 请求不公布姓名 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F17/15 | 分类号: | G06F17/15;G06F9/30;G06N3/0464;G06N3/06 |
代理公司: | 北京林达刘知识产权代理事务所(普通合伙) 11277 | 代理人: | 刘新宇 |
地址: | 200120 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算 方法 装置 相关 产品 | ||
本公开涉及运算方法、装置及相关产品,所述方法包括:根据分段信息将矩阵加算法的数据分段,得到所述数据的分段数据,所述数据包括所述矩阵加算法的输入数据和输出数据;根据所述数据的分段数据确定所述数据的第一中间表达;根据所述数据的中间表达和所述矩阵加算法算子的第一中间表达,生成所述矩阵加算法的第一中间表达。本公开实施例通过数据的第一中间表达和算子的第一中间表达得到算法的第一中间表达,不同的算法在不同的片上系统实现时,不需要设置特定的接口,提高了算法和片上系统之间的兼容性,降低了算法开发的难度。
技术领域
本公开涉及信息处理技术领域,尤其涉及一种运算方法、装置及相关产品。
背景技术
不同的片上系统可以设置不同的语言表达,即设置不同的可用于在片上系统执行的代码。而神经网络算法自身的复杂度高,一个算法可能需要拆分后在片上系统执行。用于实现神经网络算法的编程语言也复杂多变。当使用不同编程语言实现的神经网络算法,在不同类型的片上系统上执行时,需要为特定语言的算法和特定的片上系统设置特定的接口,使得神经网络算法在片上系统实现时的复杂度高。
发明内容
有鉴于此,本公开提出了一种运算方法、装置及相关产品,用以降低神经网络算法在芯片上实现的开发复杂度。
根据本公开的一方面,提供了一种运算方法,所述方法包括:
根据分段信息将矩阵加算法的数据分段,得到所述数据的分段数据,所述数据包括所述矩阵加算法的输入数据和输出数据;
根据所述数据的分段数据确定所述数据的第一中间表达;
根据所述数据的中间表达和所述矩阵加算法算子的第一中间表达,生成所述矩阵加算法的第一中间表达。
在一种可能的实现方式中,所述方法还包括:
根据所述矩阵加算法的第一中间表达生成所述矩阵加算法的第一可执行指令。
在一种可能的实现方式中,所述分段信息根据片上缓存的大小确定。
在一种可能的实现方式中,所述矩阵加算法的输入数据包括N行C列的第三矩阵数据和N行C列的第四矩阵数据,根据分段信息将矩阵加算法的数据分段,得到所述数据的分段数据,包括:
根据分段信息将第三矩阵数据和第四矩阵数据分别分为N段,得到第三矩阵数据的分段数据和第四矩阵数据的分段数据,其中,第三矩阵数据的分段数据每段长度为C,第四矩阵数据的分段数据每段长度为C。
根据本公开的一方面,提供了一种运算装置,所述装置包括:
分段数据获取模块,用于根据分段信息将矩阵加算法的数据分段,得到所述数据的分段数据,所述数据包括所述矩阵加算法的输入数据和输出数据;
数据中间表达确定模块,用于根据所述数据的分段数据确定所述数据的第一中间表达;
算法中间表达确定模块,用于根据所述数据的中间表达和所述矩阵加算法算子的第一中间表达,生成所述矩阵加算法的第一中间表达。
在一种可能的实现方式中,所述装置还包括:
第一可执行指令生成模块,用于根据所述矩阵加算法的第一中间表达生成所述矩阵加算法的第一可执行指令。
在一种可能的实现方式中,所述分段信息根据片上缓存的大小确定。
在一种可能的实现方式中,所述矩阵加算法的输入数据包括N行C列的第三矩阵数据和N行C列的第四矩阵数据,根据分段信息将矩阵加算法的数据分段,得到所述数据的分段数据,包括:
根据分段信息将第三矩阵数据和第四矩阵数据分别分为N段,得到第三矩阵数据的分段数据和第四矩阵数据的分段数据,其中,第三矩阵数据的分段数据每段长度为C,第四矩阵数据的分段数据每段长度为C。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811455806.4/2.html,转载请声明来源钻瓜专利网。