一种计算方法及相关产品技术

技术编号:17912293 阅读:23 留言:0更新日期:2018-05-10 18:12
本公开提供了一种信息处理方法,所述方法应用于计算装置内,所述计算装置包括:存储介质、寄存器单元和矩阵计算单元;所述方法包括如下步骤:所述计算装置控制所述矩阵计算单元获取第一运算指令,所述第一运算指令包括执行所述指令所需的向量读取指示;所述计算装置控制所述运算单元依据所述向量读取指示向所述存储介质发送读取命令;所述计算装置控制所述运算单元依据采用批量读取方式读取所述向量读取指示对应的向量,对该向量执行所述第一运算指令。本申请提供的技术方案具有计算速度快,效率高的优点。

【技术实现步骤摘要】
一种计算方法及相关产品
本申请涉及数据处理
,具体涉及一种计算方法及相关产品。
技术介绍
数据处理是大部分算法需要经过的步骤或阶段,在计算机引入数据处理领域后,越来越多的数据处理通过计算机来实现,现有的算法中有计算设备在进行矩阵数据的计算时速度慢,效率低。申请内容本申请实施例提供了一种计算方法及相关产品,可提升计算装置的处理速度,提高效率。第一方面,提供一种计算方法,应用于计算装置内,所述计算装置包括存储介质、寄存器单元和矩阵运算单元,所述方法包括:所述计算装置控制所述矩阵运算单元获取第一运算指令,所述第一运算指令用于实现向量与矩阵之间的运算,所述第一运算指令包括执行所述指令所需的向量读取指示,所述所需的向量为至少一个向量,所述至少一个向量为长度相同或长度不同的向量;所述计算装置控制所述矩阵运算单元依据所述向量读取指示向所述存储介质发送读取命令;所述计算装置控制所述矩阵运算单元采用批量读取方式从所述存储介质中读取所述向量读取指示所对应的向量,并对所述向量执行所述第一运算指令。在一些可能的实施例中,所述对所述向量执行所述第一运算指令包括:所述计算装置控制所述矩阵运算单元采用多级流水级的计算方式,对所述向量执行所述第一运算指令。在一些可能的实施例中,所述多级流水级中每个流水级中包括有预先设置的固定运算器,每个流水级中的固定运算器不相同;所述计算装置控制所述矩阵运算单元采用多级流水级的计算方式,对所述向量执行所述第一运算指令包括:所述计算装置控制所述矩阵运算单元根据所述第一运算指令对应的计算网络拓扑,利用第K1级流水级中的选择运算器对所述向量进行计算得到第一结果,再将所述第一结果输入到第K2级流水级中的选择运算器执行计算得到第二结果,以此类推,直至将第i-1个结果输入到第Kj级流水级中的选择运算器执行计算得到第i个结果;将所述第i个结果输入至所述存储介质进行存储;其中,Kj属于i个流水级中的任一流水级,j小于等于i,且j和i均为正整数,所述多级流水级的数量i、所述多级流水级被选择的执行顺序Kj以及所述第Kj级流水级中的选择运算器均是根据所述第一运算指令的计算拓扑结构确定的,所述选择运算器是所述固定运算器中的运算器。在一些可能的实施例中,所述多级流水级中的每个流水级所包括的固定运算器以及所述固定运算器的数量是由用户侧或所述计算装置侧自定义设置的。在一些可能的实施例中,所述多级流水级中每个流水级中的运算器包括以下中的任一项或多项的组合:矩阵加法运算器、矩阵乘法运算器、矩阵标量乘法运算器、非线性运算器以及矩阵比较运算器。在一些可能的实施例中,所述第一运算指令包括以下中的任一项:向量求导指令VDIER、向量生成对角阵指令VDIAG、向量乘转置矩阵指令VMULT。在一些可能的实施例中,所述第一运算指令的指令格式包括操作码和至少一个操作域,操作码用于指示该运算指令的功能,运算单元通过识别该操作码可进行不同的向量运算,操作域用于指示该运算指令的数据信息,其中,数据信息可以是立即数或寄存器号,例如,要获取一个向量时,根据寄存器号可以在相应的寄存器中获取向量起始地址和向量长度,再根据向量起始地址和向量长度在存储介质中获取相应地址存放的向量。可选地,可在相应寄存器中获取以下中信息中的任一项或多项的组合:所述指令所需向量的行数、列数、数据类型、标识、存储地址(首地址)以及维数长度,所述维数长度是指向量行的长度和/或向量列的长度。在一些可能的实施例中,所述多级流水级为三级流水级,第一级流水级中包括预先设置的矩阵乘法运算器,第二级流水级中包括预先设置的矩阵加法运算器和矩阵比较运算器,第三级流水级中包括预先设置的非线性运算器和矩阵标量乘法运算器;所述第一运算指令为向量求导指令VDIER,所述计算装置控制所述矩阵运算单元采用多级流水级的计算方式,对所述向量执行所述第一运算指令包括:所述计算装置控制所述矩阵运算单元将所述向量输入至第三级流水级中的非线性运算器对所述矩阵进行矩阵元素偏导计算得到第一结果;将所述第二结果输入至所述存储介质进行存储。在一些可能的实施例中,所述多级流水级为三级流水级,第一级流水级中包括预先设置的矩阵乘法运算器,第二级流水级中包括预先设置的矩阵加法运算器和矩阵比较运算器,第三级流水级中包括预先设置的非线性运算器和矩阵标量乘法运算器;所述第一运算指令为向量生成对角阵指令VDIAG,所述计算装置控制所述矩阵运算单元采用多级流水级的计算方式,对所述向量执行所述第一运算指令包括:所述计算装置控制所述矩阵运算单元将所述向量输入至第二级流水级中的矩阵比较运算器进行矩阵元素地址比较以及每间隔n+1位置写入对应向量元素得到第一结果;将所述第一结果输入至所述存储介质进行存储。在一些可能的实施例中,所述多级流水级为三级流水级,第一级流水级中包括预先设置的矩阵乘法运算器,第二级流水级中包括预先设置的矩阵加法运算器和矩阵比较运算器,第三级流水级中包括预先设置的非线性运算器和矩阵标量乘法运算器;所述第一运算指令为向量乘转置矩阵指令VMULT,所述计算装置控制所述矩阵运算单元采用多级流水级的计算方式,对所述向量执行所述第一运算指令包括:所述计算装置控制所述矩阵运算单元将所述向量输入至第一级流水级中的矩阵乘法运算器进行向量乘计算得到第一结果;将所述第一结果输入至所述存储介质进行存储。在一些可能的实施例中,所述向量读取指示包括:所述指令所需的向量的存储地址或所述指令所需向量的标识。在一些可能的实施例中,当所述向量读取指示为所述指令所需向量的标识时,所述计算装置控制所述矩阵运算单元依据所述向量读取指示向所述存储介质发送读取命令包括:所述计算装置控制所述矩阵运算单元依据所述标识从所述寄存器单元中采用单位读取方式读取所述标识对应的存储地址;所述计算装置控制所述矩阵运算单元向所述存储介质发送读取所述存储地址的读取命令并采用批量读取方式获取所述向量。在一些可能的实施例中,所述计算装置还包括:缓存单元,所述方法还包括:所述计算装置将待执行的运算指令缓存于所述缓存单元内。在一些可能的实施例中,在所述计算装置控制所述矩阵运算单元获取第一运算指令之前,所述方法还包括:所述计算装置确定所述第一运算指令与所述第一运算指令之前的第二运算指令是否存在关联关系,如果所述第一运算指令与所述第二运算指令存在关联关系,则将所述第一运算指令缓存于所述缓存单元内,在所述第二运算指令执行完毕后,从所述缓存单元提取所述第一运算指令传输至所述运算单元;所述确定该第一运算指令与第一运算指令之前的第二运算指令是否存在关联关系包括:依据所述第一运算指令提取所述第一运算指令中所需向量的第一存储地址区间,依据所述第二运算指令提取所述第二运算指令中所需向量的第二存储地址区间,如果所述第一存储地址区间与所述第二存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第二运算指令具有关联关系,如果所述第一存储地址区间与所述第二存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第二运算指令不具有关联关系。第二方面,提供一种计算装置,所述计算装置包括用于执行上述第一方面的方法的功能单元。第三方面,提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序本文档来自技高网...
一种计算方法及相关产品

【技术保护点】
一种计算方法,其特征在于,应用于计算装置内,所述计算装置包括存储介质、寄存器单元和矩阵运算单元,所述方法包括:所述计算装置控制所述矩阵运算单元获取第一运算指令,所述第一运算指令用于实现向量与矩阵之间的运算,所述第一运算指令包括执行所述指令所需的向量读取指示,所述所需的向量为至少一个向量,所述至少一个向量为长度相同或长度不同的向量;所述计算装置控制所述矩阵运算单元依据所述向量读取指示向所述存储介质发送读取命令;所述计算装置控制所述矩阵运算单元采用批量读取方式从所述存储介质中读取所述向量读取指示所对应的向量,并采用多级流水级的计算方式,对所述向量执行所述第一运算指令。

【技术特征摘要】
1.一种计算方法,其特征在于,应用于计算装置内,所述计算装置包括存储介质、寄存器单元和矩阵运算单元,所述方法包括:所述计算装置控制所述矩阵运算单元获取第一运算指令,所述第一运算指令用于实现向量与矩阵之间的运算,所述第一运算指令包括执行所述指令所需的向量读取指示,所述所需的向量为至少一个向量,所述至少一个向量为长度相同或长度不同的向量;所述计算装置控制所述矩阵运算单元依据所述向量读取指示向所述存储介质发送读取命令;所述计算装置控制所述矩阵运算单元采用批量读取方式从所述存储介质中读取所述向量读取指示所对应的向量,并采用多级流水级的计算方式,对所述向量执行所述第一运算指令。2.根据权利要求1所述的方法,其特征在于,所述多级流水级中每个流水级中包括有预先设置的固定运算器,每个流水级中的固定运算器不相同;所述采用多级流水级的计算方式,对所述向量执行所述第一运算指令包括:所述计算装置控制所述矩阵运算单元根据所述第一运算指令对应的计算网络拓扑,利用第K1级流水级中的选择运算器对所述向量进行计算得到第一结果,再将所述第一结果输入到第K2级流水级中的选择运算器执行计算得到第二结果,以此类推,直至将第i-1个结果输入到第Kj级流水级中的选择运算器执行计算得到第i个结果;将所述第i个结果输入至所述存储介质进行存储;其中,Kj属于i个流水级中的任一流水级,j小于等于i,且j和i均为正整数,所述多级流水级的数量i、所述多级流水级被选择的执行顺序Kj以及所述第Kj级流水级中的选择运算器均是根据所述第一运算指令的计算拓扑结构确定的,所述选择运算器是所述固定运算器中的运算器。3.根据权利要求1所述的方法,其特征在于,所述多级流水级中的每个流水级所包括的固定运算器以及所述固定运算器的数量是由用户侧或所述计算装置侧自定义设置的;或者,所述多级流水级中每个流水级中的固定运算器包括以下中的任一项或多项的组合:矩阵加法运算器、矩阵乘法运算器、矩阵标量乘法运算器、非线性运算器以及矩阵比较运算器。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一运算指令包括以下中的任一项:向量求导指令VDIER、向量生成对角阵指令VDIAG、向量乘转置矩阵指令VMULT;所述第一运算指令的指令格式包括至少一个操作码和至少一个操作域,所述至少一个操作码用于指示所述第一运算指令的功能,所述至少一个操作域用于指示所述第一运算指令的数据信息,所述数据信息包括立即数或寄存器号,用于存储所述矩阵读取指示以及所述矩阵的长度;其中,所述至少一个操...

【专利技术属性】
技术研发人员:胡帅刘恩赫张尧孟小甫
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1