运算方法、装置、芯片、电子设备及存储介质制造方法及图纸

技术编号:34530531 阅读:11 留言:0更新日期:2022-08-13 21:23
本公开提供了一种运算方法、装置、芯片、电子设备及存储介质,涉及计算机技术领域,尤其涉及芯片技术领域、人工智能领域。实现方案为:基于输入到运算装置中的第一向量的多个第一浮点数和第二向量的多个第二浮点数,获取与多个第一浮点数相应的多个第一定点数和多个第一阶码,以及与多个第二浮点数相应的多个第二定点数和多个第二阶码;获取多个第一定点数中的每个第一定点数和与其对应的第二定点数的定点乘积值及相应的定点乘积阶码;基于多个定点乘积值中的每个定点乘积值相应的定点乘积阶码,获取第一向量与第二向量的定点内积计算结果;以及基于定点内积计算结果,获取定点内积计算结果对应的浮点数据格式的浮点内积计算结果。算结果。算结果。

【技术实现步骤摘要】
运算方法、装置、芯片、电子设备及存储介质


[0001]本公开涉及计算机
,尤其涉及芯片
、人工智能领域,具体涉及一种运算方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。

技术介绍

[0002]随着人工智能技术的发展,越来越多的应用基于人工智能技术取得了远超过传统算法的效果;深度学习是目前人工智能技术的核心技术。深度学习是数据密集型算法和计算密集型算法,也是快速迭代发展的算法。
[0003]传统的CPU、GPU、DSP等通用处理设备针对通用计算任务设计,在处理深度学习应用时,存在计算性能低、效能低等弊端,无法有效支持深度学习算法在数据中心等场景的大规模部署。基于ASIC/FPGA的深度学习专用加速设备,针对深度学习的计算特点,深度定制硬件结构,相对于传统的CPU、GPU、DSP等设备,可以实现更高的计算性能和计算效能。
[0004]在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。

技术实现思路

[0005]本公开提供了一种运算方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。
[0006]根据本公开的一方面,提供了一种运算装置执行的运算方法,包括:基于输入到运算装置中的第一向量的多个第一浮点数和第二向量的多个第二浮点数,获取与多个第一浮点数相应的二进制表示的多个第一定点数和多个第一阶码,以及与多个第二浮点数相应的二进制表示的多个第二定点数和多个第二阶码,其中,多个第一浮点数与多个第二浮点数一一对应,多个第一定点数和多个第二定点数中的每个定点数分别包括符号位以及第一预设数量的定点数值位;获取多个第一定点数中的每个第一定点数和与该第一定点数对应的第二定点数的定点乘积值及相应的定点乘积阶码;基于多个第一定点数分别相应的多个定点乘积值中的每个定点乘积值相应的定点乘积阶码,获取第一向量与第二向量的定点内积计算结果;以及基于定点内积计算结果,获取定点内积计算结果对应的浮点数据格式的浮点内积计算结果。
[0007]根据本公开的另一方面,提供了一种运算装置执行的运算方法,包括:获取第一矩阵和第二矩阵,其中,第一矩阵包括第一数量的行向量,第二矩阵包括第二数量的列向量,并且行向量与列向量的向量长度相同;根据上述用于计算向量内积的运算装置执行的运算方法,分别获取第一矩阵中的每个行向量与第二矩阵中的每个列向量的内积结果,以获取第一矩阵和第二矩阵的内积结果矩阵。
[0008]根据本公开的另一方面,提供了一种运算装置,包括:第一获取单元,被配置为基于输入到运算装置中的第一向量的多个第一浮点数和第二向量的多个第二浮点数,获取与
多个第一浮点数相应的二进制表示的多个第一定点数和多个第一阶码,以及与多个第二浮点数相应的二进制表示的多个第二定点数和多个第二阶码,其中,多个第一浮点数与多个第二浮点数一一对应,多个第一定点数和多个第二定点数中的每个定点数分别包括符号位以及第一预设数量的定点数值位;乘法器,被配置为获取多个第一定点数中的每个第一定点数和与该第一定点数对应的第二定点数的定点乘积值及相应的定点乘积阶码;第二获取单元,被配置为基于多个第一定点数分别相应的多个定点乘积值中的每个定点乘积值相应的定点乘积阶码,获取第一向量与第二向量的定点内积计算结果;以及第三获取单元,被配置为基于定点内积计算结果,获取定点内积计算结果对应的浮点数据格式的浮点内积计算结果。
[0009]根据本公开的另一方面,提供了一种运算装置,包括:第四获取单元,被配置为获取第一矩阵和第二矩阵,其中,第一矩阵包括第一数量的行向量,第二矩阵包括第二数量的列向量,并且行向量与列向量的向量长度相同;第五获取单元,被配置为根据上述用于计算向量内积的运算装置执行的运算方法,分别获取第一矩阵中的每个行向量与第二矩阵中的每个列向量的内积结果,以获取第一矩阵和第二矩阵的内积结果矩阵。
[0010]根据本公开的另一方面,提供了一种芯片,包括以下装置中的至少其中之一:上述计算向量内积的运算装置,以及上述计算矩阵内积的运算装置。
[0011]根据本公开的另一方面,提供了一种电子设备,包括上述的芯片。
[0012]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述计算向量内积的运算方法或上述计算矩阵内积的运算方法。
[0013]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述计算向量内积的运算方法或上述计算矩阵内积的运算方法。
[0014]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现上述计算向量内积的运算方法或上述计算矩阵内积的运算方法。
[0015]根据本公开的一个或多个实施例,能够通过运算装置内部的运算,将输入到运算装置中的浮点数据转化为定点数据,并基于定点数据完成相关运算,实现浮点数据转化定点数据的无感化操作,节省人工成本及计算资源。
[0016]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0017]附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
[0018]图1示出了根据本公开的实施例的运算装置执行的运算方法的流程图;
[0019]图2示出了根据本公开的实施例的向量乘法装置的结构框图;
[0020]图3示出了根据本公开的实施例的获取多个第一定点数和多个第一阶码以及多个第二定点数和多个第二阶码的流程图;
[0021]图4示出了根据本公开的实施例的获取多个第一定点数相应的定点乘积值及相应的定点乘积阶码的流程图;
[0022]图5示出了根据本公开的另一个实施例的向量乘法装置的结构框图;
[0023]图6示出了根据本公开的实施例的用于计算矩阵乘法的运算装置执行的运算方法的流程图;
[0024]图7示出了本公开的实施例的矩阵乘法装置的结构框图;
[0025]图8示出了根据本公开的实施例的用于计算向量内积的运算装置的结构框图;
[0026]图9示出了根据本公开的实施例的用于计算矩阵乘法的运算装置的结构框图;
[0027]图10示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
[0028]以下结合附图对本公开的示范性实施例做出说本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种运算装置执行的运算方法,所述方法包括:基于输入到所述运算装置中的第一向量的多个第一浮点数和第二向量的多个第二浮点数,获取与所述多个第一浮点数相应的二进制表示的多个第一定点数和多个第一阶码,以及与所述多个第二浮点数相应的二进制表示的多个第二定点数和多个第二阶码,其中,所述多个第一浮点数与所述多个第二浮点数一一对应,所述多个第一定点数和所述多个第二定点数中的每个定点数分别包括符号位以及第一预设数量的定点数值位;获取所述多个第一定点数中的每个第一定点数和与该第一定点数对应的第二定点数的定点乘积值及相应的定点乘积阶码;基于所述多个第一定点数分别相应的多个定点乘积值中的每个定点乘积值相应的定点乘积阶码,获取所述第一向量与所述第二向量的定点内积计算结果;以及基于所述定点内积计算结果,获取所述定点内积计算结果对应的浮点数据格式的浮点内积计算结果。2.根据权利要求1所述的方法,其中,所述基于所述多个第一定点数分别相应的多个定点乘积值中的每个定点乘积值相应的定点乘积阶码,获取所述第一向量与所述第二向量的定点内积计算结果包括:基于所述多个第一定点数分别相应的多个定点乘积值中的每个定点乘积值相应的定点乘积阶码,对该定点乘积值进行算术移位;以及对所述多个第一定点数相应的多个经过算术移位后的定点乘积值进行求和,以获取所述第一向量与所述第二向量的定点内积计算结果。3.根据权利要求2所述的方法,其中,所述基于所述多个第一定点数分别相应的多个定点乘积值中的每个定点乘积值相应的定点乘积阶码,对该定点乘积值进行算术移位包括:在所述多个第一定点数相应的多个定点乘积阶码中确定第一定点乘积阶码;基于所述多个定点乘积阶码中的每个定点乘积阶码与所述第一定点乘积阶码,获取所述多个定点乘积值中的每个定点乘积值相应的算术移位值;以及基于所述多个定点乘积值中的每个定点乘积值相应的算术移位值,对该定点乘积值进行算术移位。4.根据权利要求3所述的方法,其中,所述在所述多个第一定点数相应的多个定点乘积阶码中确定第一定点乘积阶码包括:获取所述多个第一定点数相应的多个定点乘积阶码中的数值最大的定点乘积阶码,作为第一定点乘积阶码;并且其中,所述基于所述多个定点乘积阶码中的每个定点乘积阶码与所述第一定点乘积阶码,获取所述多个定点乘积值中的每个定点乘积值相应的算术移位值包括:计算所述第一定点乘积阶码与所述多个定点乘积阶码中的每个定点乘积阶码之间的差值,以作为该定点乘积阶码对应的定点乘积值的相应的算术移位值。5.根据权利要求1至4中任一项所述的方法,其中,所述获取与所述多个第一浮点数相应的二进制表示的多个第一定点数和多个第一阶码,以及与所述多个第二浮点数相应的二进制表示的多个第二定点数和多个第二阶码包括:对所述多个第一浮点数和所述多个第二浮点数中的每个浮点数,执行下述操作:提取该浮点数中的符号位、阶码位和浮点数值位,其中,该浮点数通过二进制表示;
提取所述浮点数值位中的最高位的所述第二预设数量的高位数值位;基于所述高位数值位,确定该浮点数对应的定点数;以及基于该浮点数的阶码位,确定该浮点数对应的阶码。6.根据权利要求5所述的方法,其中,所述获取所述多个第一定点数中的每个第一定点数和与该第一定点数对应的第二定点数的定点乘积值及相应的定点乘积阶码包括:基于所述多个第一定点数分别相应的多个第一浮点数的符号位以及所述多个第二定点数分别相应的多个第二浮点数的符号位,获取所述多个第一定点数相应的多个第一补码以及所述多个第二定点数相应的多个第二补码;计算所述多个第一补码中的每个第一补码和与该第一补码对应的第二补码的乘积,以获取所述定点乘积值;以及计算所述多个第一定点数中的每个第一定点数相应的第一阶码和与该第一定点数对应的第二定点数相应的第二阶码的总和,以获取所述定点乘积阶码。7.根据权利要求1至6中任一项所述的方法,其中,所述运算装置在一个运算周期内能够计算两个第一预定长度的向量的内积,对于向量长度相同并且均大于所述第一预定长度的第三向量和第四向量,所述方法还包括:基于所述第一预定长度,将第三向量和第四向量分别划分为多个第一向量和多个第二向量,其中,所述多个第一向量和所述多个第二向量一一对应;分别计算多组相对应的第一向量和第二向量的浮点内积计算结果;以及计算所述多组相对应的第一向量和第二向量的浮点内积计算结果的总和,以获取所述第三向量和所述第四向量的内积计算结果。8.一种运算装置执行的运算方法,所述方法包括:获取第一矩阵和第二矩阵,其中,所述第一矩阵包括第一数量的行向量,所述第二矩阵包括第二数量的列向量,并且所述行向量与所述列向量的向量长度相同;根据权利要求1

7中任一项所述的方法,分别获取所述第一矩阵中的每个行向量与所述第二矩阵中的每个列向量的内积结果,以获取所述第一矩阵和所述第二矩阵的内积结果矩阵。9.一种运算装置,所述装置包括:第一获取单元,被配置为基于输入到所述运算装置中的第一向量的多个第一浮点数和第二向量的多个第二浮点数,获取与所述多个第一浮点数相应的二进制表示的多个第一定点数和多个第一阶码,以及与所述多个第二浮点数相应的二进制表示的多个第二定点数和多个第二阶码,其中,所述多个第一浮点数与所...

【专利技术属性】
技术研发人员:吴鹏欧阳剑
申请(专利权)人:昆仑芯北京科技有限公司
类型:发明
国别省市:

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

1
相关领域技术
  • 暂无相关专利