计算装置、操作方法和机器可读存储介质制造方法及图纸

技术编号:35601138 阅读:15 留言:0更新日期:2022-11-16 15:21
本发明专利技术提供一种计算装置、操作方法和机器可读存储介质。在根据本发明专利技术的实施例中,该操作方法包括:检查目前指令自带的数据类型信息,其中数据类型信息表示目前指令所对应的目标运算数的数据类型;当数据类型信息表示目标运算数的数据类型为自适应数据类型时,读取目标运算数所对应的元数据,以从元数据获知目标运算数的实际数据类型;以及基于元数据所记载目标运算数的实际数据类型,执行目前指令以处理目标运算数。理目标运算数。理目标运算数。

【技术实现步骤摘要】
计算装置、操作方法和机器可读存储介质


[0001]本专利技术涉及一种指令集,且特别涉及一种计算装置、操作方法和机器可读存储介质。

技术介绍

[0002]一般而言,在编写计算程序(program)时,编写者是知道运算数(或称操作数、operand)的数据类型,因此编写者可以将带有“指定(固定)数据类型”信息的指令编写至计算程序中,然后使用编译器(compiler)对计算程序进行编译。举例来说,计算程序可能包括自带有信息“32位的浮点数”(固定数据类型)的加载指令,用以将数据类型为“32位浮点数”的一个运算数从内存加载至运算核(例如张量核,tensor core)。或者,计算程序可能包括自带有信息“32位的浮点数”(固定数据类型)的矩阵乘和累加(matrix multiply and accumulation,MMA)指令,用以使运算核对已被加载的“32位浮点数”的两个运算数进行矩阵乘计算。无论如何,在有一些情况下运算数的数据类型可能在编译时是不确定的(数据类型为未知)。举例来说,卷积神经网络(Convolutional Neural Network,CNN)运算程序的隐藏层(Hidden layer)的计算结果的数据类型可能在实际执行计算后才会被动态决定。然而,目前的指令集并没有支持“不确定数据类型”。

技术实现思路

[0003]本专利技术提供一种计算装置及其操作方法,以及机器可读存储介质,以支持自适应数据类型(adaptive data type)。自适应数据类型意为,数据类型在编译(compile)时为未知。
[0004]在根据本专利技术的实施例中,所述操作方法包括:检查目前指令自带的数据类型信息,其中数据类型信息表示目前指令所对应的目标运算数(operand)的数据类型;当数据类型信息表示目标运算数的数据类型为自适应数据类型时,读取目标运算数所对应的元数据(meta data),以从元数据获知目标运算数的实际数据类型,或者直接获取所述目标运算数的所述实际数据类型;以及基于元数据所记载目标运算数的实际数据类型,执行目前指令以处理目标运算数。
[0005]在根据本专利技术的实施例中,所述机器可读存储介质用于存储非暂时性机器可读指令。当所述非暂时性机器可读指令由计算机执行时,可以实现所述计算装置的操作方法。
[0006]在根据本专利技术的实施例中,所述计算装置包括内存以及运算核。内存用以存放目标运算数。运算核耦接至内存。运算核检查目前指令自带的数据类型信息,其中数据类型信息表示目前指令所对应的目标运算数的数据类型。当数据类型信息表示目标运算数的数据类型为自适应数据类型时,运算核读取目标运算数所对应的元数据,以从所述元数据获知目标运算数的实际数据类型,或者直接获取所述目标运算数的所述实际数据类型。基于元数据所记载目标运算数的实际数据类型,运算核执行目前指令以处理目标运算数。
[0007]基于上述,运算核可以检查目前指令自带的数据类型信息来判断目前指令所对应
的目标运算数的数据类型是固定(指定)数据类型还是自适应数据类型。所述固定数据类型意指,目标运算数的数据类型在编译时为已知。所述自适应数据类型意指,目标运算数的数据类型在编译时为未知,而在执行程序时被动态决定。在执行程序时目标运算数的实际数据类型被记录于目标运算数所对应的元数据。在运算核执行目前指令前,运算核检查目前指令的目标运算数的数据类型。当目标运算数的数据类型为自适应数据类型时,运算核可以从目标运算数所对应的元数据获知目标运算数的实际数据类型,或者直接获取所述目标运算数的所述实际数据类型。基于元数据所记载目标运算数的实际数据类型,运算核可以正确执行目前指令以处理目标运算数。
附图说明
[0008]图1是依照本专利技术的一实施例的一种计算装置的电路方块(circuit block)示意图。
[0009]图2是依照本专利技术的一实施例的一种计算装置的操作方法的流程示意图。
[0010]图3是依照本专利技术的一实施例所绘示,运算核的电路方块示意图。
[0011]图4是依照本专利技术的另一实施例所绘示,运算核的电路方块示意图。
[0012]附图标记说明
[0013]100:计算装置
[0014]110:内存
[0015]120:运算核
[0016]121:运算电路
[0017]122、126:运算数缓冲器
[0018]123:转换单元
[0019]124:加载单元
[0020]125:状态寄存器
[0021]Dconv:运算数
[0022]Dm:元数据
[0023]Dorig:计算结果
[0024]S210~S250:步骤
[0025]ST:统计结果
具体实施方式
[0026]现将详细地参考本专利技术的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在附图和描述中用来表示相同或相似部分。
[0027]在本案说明书全文(包括权利要求)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以透过其他装置或某种连接手段而间接地连接至该第二装置。本案说明书全文(包括权利要求)中提及的“第一”、“第二”等用语是用以命名组件(element)的名称,而并非用来限制组件数量的上限或下限,亦非用来限制组件的次序。另外,凡可能之处,在附图及实施方式中使用相同标号的组件/
构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的组件/构件/步骤可以相互参照相关说明。
[0028]图1是依照本专利技术的一实施例的一种计算装置100的电路方块(circuit block)示意图。图1所示计算装置100包括内存110以及运算核120。内存110用以存放运算数(operand)。本实施利并不限制运算数的具体数据结构。举例来说,在神经网络的应用中,运算数可以是矢量(vector)、张量(tensor)或是其他数据。基于实际设计,运算数可以是一个矩阵(matrix),也可以是一个矩阵被分切后的多个块中的任一个。所述矩阵的大小与所述块的大小可以依照实际设计来决定。举例来说,在一些应用例中,一个块(运算数)的大小可以是32*32、64*64或是其他尺寸。
[0029]运算核120耦接至内存110。在不同的应用范例中,所述运算核120包括张量核(tensor core)、通用矩阵乘(general matrix multiply,GEMM)核、算术逻辑单元(arithmetic logic unit,ALU)以及/或是其他运算单元。依照不同的设计需求,在一些实施例中,上述运算核120的实现方式可以是硬件(hardware)电路。在另一些实施例中,运算核120的实现方式可以是固件(firmware)、软件(software,即程序)或是前述二者的组合形式。在又一些实施例中,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算装置的操作方法,其特征在于,所述操作方法包括:检查目前指令自带的数据类型信息,其中所述数据类型信息表示所述目前指令所对应的目标运算数的数据类型;当所述数据类型信息表示所述目标运算数的数据类型为自适应数据类型时,读取所述目标运算数所对应的元数据,以从所述元数据获知所述目标运算数的实际数据类型,或者直接获取所述目标运算数的所述实际数据类型;以及基于所述元数据所记载所述目标运算数的所述实际数据类型,执行所述目前指令以处理所述目标运算数。2.根据权利要求1所述的操作方法,其特征在于,所述自适应数据类型表示所述目标运算数的数据类型在编译时为未知而在执行时被动态决定。3.根据权利要求1所述的操作方法,其特征在于,所述操作方法还包括:当所述数据类型信息表示所述目标运算数的数据类型为固定数据类型时,基于所述固定数据类型,执行所述目前指令以处理所述目标运算数。4.根据权利要求3所述的操作方法,其特征在于,所述固定数据类型包括4位有符号整数、8位有符号整数、8位无符号整数、8位浮点数、8位脑浮点数、16位有符号整数、标准16位浮点数、16位脑浮点数、标准32位浮点数、32位快速浮点数或是32位以上浮点数。5.根据权利要求4所述的操作方法,其特征在于,当所述数据类型信息为第一值时表示所述固定数据类型为4位有符号整数s4,当所述数据类型信息为第二值时表示所述固定数据类型为8位有符号整数s8,当所述数据类型信息为第三值时表示所述固定数据类型为8位无符号整数u8,当所述数据类型信息为第四值时表示所述固定数据类型为标准16位浮点数f16,当所述数据类型信息为第五值时表示所述固定数据类型为标准32位浮点数f32,当所述数据类型信息为第六值时表示所述固定数据类型为16位脑浮点数bf16,当所述数据类型信息为第七值时表示所述固定数据类型为带有4位指数的8位浮点数f8,当所述数据类型信息为第八值时表示所述固定数据类型为带有5位指数的8位脑浮点数bf8,以及当所述数据类型信息为第九值时表示所述目标运算数的数据类型为所述自适应数据类型。6.根据权利要求1所述的操作方法,其特征在于,所述目前指令包括加载指令,所述操作方法还包括:当所述加载指令自带的所述数据类型信息表示所述目标运算数的数据类型为所述自适应数据类型时,从内存读取所述目标运算数所对应的所述元数据,以从所述元数据获知所述目标运算数的所述实际数据类型;将所述元数据以及所述元数据所记载的所述实际数据类型存放在运算核的状态寄存器;基于所述元数据所记载所述目标运算数的所述实际数据类型,从所述内存读取所述目标运算数;以及将所述目标运算数存放在所述运算核的运算数缓冲器。7.根据权利要求6所述的操作方法,其特征在于,所述运算核包括张量核、通用矩阵乘核或算术逻辑单元。8.根据权利要求1所述的操作方法,其特征在于,所述目前指令包括矩阵乘和累加指令,所述目标运算数包括第一运算数与第二运算数,所述元数据包括第一元数据与第二元
数据,所述第一元数据对应于所述第一运算数,所述第二元数据对应于所述第二运算数,所述操作方法还包括:当所述矩阵乘和累加指令自带的所述数据类型信息表示所述第一运算数的数据类型为所述自适应数据类型时,从运算核的状态寄存器直接获取所述第一运算数的所述实际数据类型;当所述矩阵乘和累加指令自带的所述数据类型信息表示所述第二运算数的数据类型为所述自适应数据类型时,从所述运算核的所述状态寄存器直接获取所述第二运算数的所述实际数据类型;基于所述第一运算数的所述实际数据类型与所述第二运算数的所述实际数据类型,从所述运算核的运算数缓冲器读取所述第一运算数与所述第二运算数;以及对所述第一运算数与所述第二运算数进行矩阵乘计算。9.根据权利要求1所述的操作方法,其特征在于,所述元数据包括实际数据类型字段,用以记载所述元数据所对应的所述目标运算数的所述实际数据类型。10.根据权利要求9所述的操作方法,其特征在于,所述实际数据类型字段所记载的所述实际数据类型包括具有第一结构的8位浮点数、具有第二结构的8位浮点数或是具有第三结构的16位浮点数。11.根据权利要求10所述的操作方法,其特征在于,所述第一结构为“1位符号、5位指数以及2位尾数”,所述第二结构为“1位符号、4位指数以及3位尾数”,所述第三结构为“1位符号、5位指数以及10位尾数”。12.根据权利要求9所述的操作方法,其特征在于,所述元数据还包括缩放因子字段,用以记载所述目标运算数的指数的移动量。13.根据权利要求1所述的操作方法,其特征在于,所述操作方法还包括:通过运算核生成计算结果;通过所述运算核统计所述计算结果的数值特征而生成统计结果;通过所述运算核基于所述统计结果将所述计算结果转换为所述目标运算数与所述元数据;以及将所述目标运算数与所述元数据存放在内存。14.一种机器可读存储介质,用于存储非暂时性机器可读指令,当所述非暂时性机器可读指令由计算机执行时可以实现权利要求1

13任一项所述的计算装置的操作方法。15.一种计算装置,其特征在于,所述计算装置包括:内存,用以存放目标运算数;以及运算核,耦接至所述内存,其中,所述运算核检查目前指令自带的数据类型信息,所述数据类型信息表示所...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海壁仞智能科技有限公司
类型:发明
国别省市:

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

1