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

技术编号:20726200 阅读:31 留言:0更新日期:2019-03-30 17:58
本公开涉及运算方法、装置及相关产品,所述方法包括:根据分段信息将算法的数据分段,得到所述数据的分段数据;根据所述数据的分段数据生成所述数据的第一中间表达;根据所述数据的第一中间表达和所述算法算子的第一中间表达,生成所述算法的第一中间表达。本公开实施例通过数据的第一中间表达和算子的第一中间表达得到算法的第一中间表达,不同的算法在不同的片上系统实现时,不需要设置特定的接口,提高了算法和片上系统之间的兼容性,降低了算法开发的难度。

【技术实现步骤摘要】
运算方法、装置及相关产品
本公开涉及信息处理
,尤其涉及一种运算方法、装置及相关产品。
技术介绍
不同的片上系统可以设置不同的语言表达,即设置不同的可用于在片上系统执行的代码。而神经网络算法自身的复杂度高,一个算法可能需要拆分后在片上系统执行。用于实现神经网络算法的编程语言也复杂多变。当使用不同编程语言实现的神经网络算法,在不同类型的片上系统上执行时,需要为特定语言的算法和特定的片上系统设置特定的接口,使得神经网络算法在片上系统实现时的复杂度高。
技术实现思路
有鉴于此,本公开提出了一种运算方法、装置及相关产品,用以降低神经网络算法在芯片上实现的开发复杂度。根据本公开的一方面,提供了一种运算方法,所述方法包括:根据分段信息将算法的数据分段,得到所述数据的分段数据,所述数据包括所述算法的输入数据和输出数据;根据所述数据的分段数据生成所述数据的第一中间表达;根据所述数据的第一中间表达和所述算法算子的第一中间表达,生成所述算法的第一中间表达。在一种可能的实现方式中,所述数据为多维数据,根据分段信息将算法的数据分段,得到所述数据的分段数据,包括:根据分段信息将各维度数据分别进行分段,得到各维度数据的维度分段数据;根据所述数据的各维度数据的维度分段数据,得到所述数据的分段数据。在一种可能的实现方式中,根据所述数据的第一中间表达和所述算法算子的第一中间表达,生成所述算法的第一中间表达,包括:确定数据的第一中间表达在片上缓存中对应的存储空间;根据所述存储空间生成所述数据的第二中间表达;根据所述数据的第二中间表达和所述算法算子的第二中间表达,生成所述算法的第二中间表达。在一种可能的实现方式中,所述方法还包括:根据所述算法的第一中间表达生成所述算法的第一可执行指令,或根据所述算法的第二中间表达生成所述算法的第二可执行指令。在一种可能的实现方式中,所述分段信息根据片上缓存的大小确定。在一种可能的实现方式中,所述算法包括卷积算法、池化算法、矩阵乘算法和矩阵加算法中的其中一种或任意组合。在一种可能的实现方式中,所述卷积算法的输入数据包括输入神经元、权值、偏置,所述卷积算法的输出数据包括卷积输出神经元。在一种可能的实现方式中,所述输入神经元的各维度数据包括:特征输入通道、输入特征图高度和输入特征图宽度;所述卷积输出神经元的各维度数据包括:卷积通道、卷积特征图高度和卷积特征图宽度;所述权值的各维度数据包括:特征输入通道、卷积通道、特征图高度卷积核和特征图宽度卷积核;所述偏置的各维度数据包括:卷积通道。在一种可能的实现方式中,所述池化算法的输入数据包括卷积输出神经元,所述池化算法的输出数据包括池化输出神经元。在一种可能的实现方式中,所述卷积输出神经元的各维度数据包括:卷积通道、卷积特征图高度和卷积特征图宽度;所述池化输出神经元的各维度数据包括:卷积通道、池化特征图高度和池化特征图宽度。在一种可能的实现方式中,所述矩阵乘算法的输入数据包括N行C列的第一矩阵数据,所述矩阵乘算法的输出数据包括N行M列的第二矩阵数据,根据分段信息将算法的数据分段,得到所述数据的分段数据,包括:根据分段信息将第一矩阵数据和第二矩阵数据分别分为N段,得到第一矩阵数据的分段数据和第二矩阵数据的分段数据,其中,第一矩阵数据的分段数据每段长度为C,第二矩阵数据的分段数据每段长度为M。在一种可能的实现方式中,所述矩阵加算法的输入数据包括N行C列的第三矩阵数据和N行C列的第四矩阵数据,根据分段信息将算法的数据分段,得到所述数据的分段数据,包括:根据分段信息将第三矩阵数据和第四矩阵数据分别分为N段,得到第三矩阵数据的分段数据和第四矩阵数据的分段数据,其中,第三矩阵数据的分段数据每段长度为C,第四矩阵数据的分段数据每段长度为C。根据本公开的一方面,提供了一种运算装置,所述装置包括:分段数据获取模块,用于根据分段信息将算法的数据分段,得到所述数据的分段数据,所述数据包括所述算法的输入数据和输出数据;数据中间表达确定模块,用于根据所述数据的分段数据生成所述数据的第一中间表达;算法中间表达确定模块,用于根据所述数据的第一中间表达和所述算法算子的第一中间表达,生成所述算法的第一中间表达。在一种可能的实现方式中,所述数据为多维数据,所述分段数据获取模块,包括:维度分段数据获取子模块,用于根据分段信息将各维度数据分别进行分段,得到各维度数据的维度分段数据;分段数据获取子模块,用于根据所述数据的各维度数据的维度分段数据,得到所述数据的分段数据。在一种可能的实现方式中,所述算法中间表达确定模块,包括:存储空间确定子模块,用于确定数据的第一中间表达在片上缓存中对应的存储空间;第二中间表达确定子模块,用于根据所述存储空间生成所述数据的第二中间表达;算法中间表达确定子模块,用于根据所述数据的第二中间表达和所述算法算子的第二中间表达,生成所述算法的第二中间表达。在一种可能的实现方式中,所述装置还包括:第一可执行指令生成模块,用于根据所述算法的第一中间表达生成所述算法的第一可执行指令,或第二可执行指令生成模块,用于根据所述算法的第二中间表达生成所述算法的第二可执行指令。在一种可能的实现方式中,所述分段信息根据片上缓存的大小确定。在一种可能的实现方式中,所述算法包括卷积算法、池化算法、矩阵乘算法和矩阵加算法中的其中一种或任意组合。在一种可能的实现方式中,所述卷积算法的输入数据包括输入神经元、权值、偏置,所述卷积算法的输出数据包括卷积输出神经元。在一种可能的实现方式中,所述输入神经元的各维度数据包括:特征输入通道、输入特征图高度和输入特征图宽度;所述卷积输出神经元的各维度数据包括:卷积通道、卷积特征图高度和卷积特征图宽度;所述权值的各维度数据包括:特征输入通道、卷积通道、特征图高度卷积核和特征图宽度卷积核;所述偏置的各维度数据包括:卷积通道。在一种可能的实现方式中,所述池化算法的输入数据包括卷积输出神经元,所述池化算法的输出数据包括池化输出神经元。在一种可能的实现方式中,所述卷积输出神经元的各维度数据包括:卷积通道、卷积特征图高度和卷积特征图宽度;所述池化输出神经元的各维度数据包括:卷积通道、池化特征图高度和池化特征图宽度。在一种可能的实现方式中,所述矩阵乘算法的输入数据包括N行C列的第一矩阵数据,所述矩阵乘算法的输出数据包括N行M列的第二矩阵数据,所述分段数据获取模块,包括:矩阵乘分段数据获取子模块,用于根据分段信息将第一矩阵数据和第二矩阵数据分别分为N段,得到第一矩阵数据的分段数据和第二矩阵数据的分段数据,其中,第一矩阵数据的分段数据每段长度为C,第二矩阵数据的分段数据每段长度为M。在一种可能的实现方式中,所述矩阵加算法的输入数据包括N行C列的第三矩阵数据和N行C列的第四矩阵数据,所述分段数据获取模块,包括:矩阵加分段数据获取子模块,用于根据分段信息将第三矩阵数据和第四矩阵数据分别分为N段,得到第三矩阵数据的分段数据和第四矩阵数据的分段数据,其中,第三矩阵数据的分段数据每段长度为C,第四矩阵数据的分段数据每段长度为C。根据本公开的一方面,提供了一种神经网络运算装置,所述神经网络运算装置包括一个或多个上述任一项所述的运算装置,所述神经网络运算装置用于完成设定的神经网络运算。根据本公开本文档来自技高网...

【技术保护点】
1.一种运算方法,其特征在于,所述方法包括:根据分段信息将算法的数据分段,得到所述数据的分段数据,所述数据包括所述算法的输入数据和输出数据;根据所述数据的分段数据生成所述数据的第一中间表达;根据所述数据的第一中间表达和所述算法算子的第一中间表达,生成所述算法的第一中间表达。

【技术特征摘要】
1.一种运算方法,其特征在于,所述方法包括:根据分段信息将算法的数据分段,得到所述数据的分段数据,所述数据包括所述算法的输入数据和输出数据;根据所述数据的分段数据生成所述数据的第一中间表达;根据所述数据的第一中间表达和所述算法算子的第一中间表达,生成所述算法的第一中间表达。2.根据权利要求1所述的方法,其特征在于,所述数据为多维数据,根据分段信息将算法的数据分段,得到所述数据的分段数据,包括:根据分段信息将各维度数据分别进行分段,得到各维度数据的维度分段数据;根据所述数据的各维度数据的维度分段数据,得到所述数据的分段数据。3.根据权利要求1所述的方法,其特征在于,根据所述数据的第一中间表达和所述算法算子的第一中间表达,生成所述算法的第一中间表达,包括:确定数据的第一中间表达在片上缓存中对应的存储空间;根据所述存储空间生成所述数据的第二中间表达;根据所述数据的第二中间表达和所述算法算子的第二中间表达,生成所述算法的第二中间表达。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述算法的第一中间表达生成所述算法的第一可执行指令,或根据所述算法的第二中间表达生成所述算法的第二可执行指令。5.根据权利要求1所述的方法,其特征在于,所述分段信息根据片上缓存的大小确定。6.根据权利要求1所述的方法,其特征在于,所述算法包括卷积算法、池化算法、矩阵乘算法和矩阵加算法中的其中一种或任意组合。7.根据权利要求6所述的方法,其特征在于,所述卷积算法的输入数据包括输入神经元、权值、偏置,所述卷积算法的输出数据包括卷积输出神经元。8.根据权利要求7所述的方法,其特征在于,所述输入神经元的各维度数据包括:特征输入通道、输入特征图高度和输入特征图宽度;所述卷积输出神经元的各维度数据包括:卷积通道、卷积特征图高度和卷积特征图宽度;所述权值的各维度数据包括:特征输入通道、卷积通道、特征图高度卷积核和特征图宽度卷积核;所述偏置的各维度数据包括:卷积通道。9.根据权利要求6所述的方法,其特征在于,所述池化算法的输入数据包括卷积输出神经元,所述池化算法的输出数据包括池化输出神经元。10.根据权利要求9所述的方法,其特征在于,所述卷积输出神经元的各维度数据包括:卷积通道、卷积特征图高度和卷积特征图宽度;所述池化输出神经元的各维度数据包括:卷积通道、池化特征图高度和池化特征图宽度。11.根据权利要求6所述的方法,其特征在于,所述矩阵乘算法的输入数据包括N行C列的第一矩阵数据,所述矩阵乘算法的输出数据包括N行M列的第二矩阵数据,根据分段信息将算法的数据分段,得到所述数据的分段数据,包括:根据分段信息将第一矩阵数据和第二矩阵数据分别分为N段,得到第一矩阵数据的分段数据和第二矩阵数据的分段数据,其中,第一矩阵数据的分段数据每段长度为C,第二矩阵数据的分段数据每段长度为M。12.根据权利要求6所述的方法,其特征在于,所述矩阵加算法的输入数据包括N行C列的第三矩阵数据和N行C列的第四矩阵数据,根据分段信息将算法的数据分段,得到所述数据的分段数据,包括:根据分段信息将第三矩阵数据和第四矩阵数据分别分为N段,得到第三矩阵数据的分段数据和第四矩阵数据的分段数据,其中,第三矩阵数据的分段数据每段长度为C,第四矩阵数据的分段数据每段长度为C。13.一种运算装置,其特征在于,所述装置包括:分段数据获取模块,用于根据分段信息将算法的数据分段,得到所述数据的分段数据,所述数据包括所述算法的输入数据和输出数据;数据中间表达确定模块,用于根据所述数据的分段数据生成所述数据的第一中间表达;算法中间表达确定模块,用于根据所述数据的第一中间表达和所述算法算子的第一中间表达,生成所述算法的第一中间表达。14.根据权利要求13所述的装置,其特征在于,所述数据为多维数据,所述分段数据获取模块,包括:维度分段数据获取子模块,用于根据分段信...

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

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

1