生成表达向量运算的中间表示指令的设备及方法技术

技术编号:37815514 阅读:18 留言:0更新日期:2023-06-09 09:45
本披露涉及生成表达向量运算的中间表示指令的设备及方法,其中本披露的编译器,包括类型生成元件与暂存器指派元件。类型生成元件用以在中间表示指令中生成运算域,运算域记载数据类型为向量;暂存器指派元件用以在中间表示指令中生成数据域,数据域记载被指派的暂存器的地址,暂存器存储向量运算的输入向量与输出向量。出向量。出向量。

【技术实现步骤摘要】
生成表达向量运算的中间表示指令的设备及方法


[0001]本披露一般地涉及计算机领域。更具体地,本披露涉及生成表达向量运算的中间表示指令的编译器、集成电路装置、板卡、方法、计算机可读存储介质、计算机程序产品及计算机装置。

技术介绍

[0002]向量计算在目前计算机领域的需求十分庞大,常见的处理方式是利用单指令多数据的向量化,例如x86处理器上的单指令多数据流扩展(streaming SIMD extensions,SSE)、高级矢量扩展(advanced vector extensions,AVX)与AVX512F向量指令集,或是ARM处理器的ADVSIMD与可伸缩矢量扩展(scalable vector extension,SVE)向量指令集等,可以看出随着体系结构的发展,处理器向量宽度正在逐步加宽并变得更加灵活可用。
[0003]上述这些向量处理方式通常需要人工将指令导入高级程序设计语言编写的程序中,一方面部分系统不开源,另一方面使用串行加单线程的计算模式来实现向量计算的资源利用率低。因此一种加速向量运算的方案是迫切需要的。

技术实现思路

[0004]为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了生成表达向量运算的中间表示指令的编译器、集成电路装置、板卡、方法、计算机可读存储介质、计算机程序产品及计算机装置。
[0005]在第一方面中,本披露提供一种生成表达向量运算的中间表示指令的编译器,包括类型生成元件及暂存器指派元件。类型生成元件用以在中间表示指令中生成运算域,运算域记载数据类型为向量;暂存器指派元件用以在中间表示指令中生成数据域,数据域记载被指派的暂存器的地址,暂存器存储向量运算的输入向量与输出向量。
[0006]在第二方面中,本披露提供一种集成电路装置,包括上述的编译器。本披露还提供一种板卡,包括上述的集成电路装置。
[0007]在第三方面中,本披露提供一种生成表达向量运算的中间表示指令的方法,包括:在中间表示指令中生成运算域,运算域记载数据类型为向量;在中间表示指令中生成数据域,数据域记载被指派的暂存器的地址,暂存器存储向量运算的输入向量与输出向量。
[0008]在第四方面中,本披露提供一种计算机可读存储介质,其上存储有生成表达向量运算的中间表示指令的计算机程序代码,当计算机程序代码由处理装置运行时,执行上述的方法。
[0009]在第五方面中,本披露提供一种计算机程序产品,包括生成表达向量运算的中间表示指令的计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
[0010]在第六方面中,本披露提供一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序,处理器执行计算机程序以实现上述方法的步骤。
[0011]通过直接将标量程序向量化,生成标示有向量信息的中间表示指令,在编译后形
成机器代码,计算机基于这样的机器代码直接处理向量运算,在无需改动硬件的前提下,大幅提升了向量运行效率和性能。
附图说明
[0012]通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0013]图1是示出本披露实施例的板卡的结构图;
[0014]图2是示出本披露实施例的集成电路装置的结构图;
[0015]图3是示出本披露实施例进行编译时的流程图;
[0016]图4是示例性地示出表达式x=a+b的抽象语法树;
[0017]图5是示例性地示出带注释的表达式x=a+b的抽象语法树;
[0018]图6是示出本披露实施例的编译器的示意图;
[0019]图7是示出本披露另一个实施例的编译器的示意图;
[0020]图8是示出本披露另一个实施例的流程图。
具体实施方式
[0021]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0022]应当理解,本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0023]还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0024]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
[0025]下面结合附图来详细描述本披露的具体实施方式。
[0026]图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和大量的计算能力。
[0027]芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
[0028]板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
[0029]图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和存储装置204。
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种生成表达向量运算的中间表示指令的编译器,其特征在于,包括:类型生成元件,用以在所述中间表示指令中生成运算域,所述运算域记载数据类型为向量;暂存器指派元件,用以在所述中间表示指令中生成数据域,所述数据域记载被指派的暂存器的地址,所述暂存器存储所述向量运算的输入向量与输出向量。2.根据权利要求1所述的编译器,其中所述运算域还记载所述数据类型为浮点数或定点数。3.根据权利要求1所述的编译器,其中所述数据域包括输入数据域及输出数据域,所述输入数据域记载被指派的输入暂存器的地址,所述输入暂存器存储所述向量运算的输入向量,所述输出数据域记载被指派的输出暂存器的地址,所述输出暂存器存储所述向量运算的输出向量。4.根据权利要求1所述的编译器,其中所述数据域包括谓词域,所述谓词域记载被指派的谓词暂存器的地址,所述谓词暂存器存储所述向量运算是否执行的数值。5.根据权利要求4所述的编译器,其中所述数值对应至所述向量运算的掩码操作,当所述数值为真时,所述中间表示指令被执行,当所述数值为假时,所述中间表示指令不被执行。6.根据权利要求5所述的编译器,还包括:标量优化元件,用以删除冗余的中间表示指令。7.根据权利要求6所述的编译器,其中所述标量优化元件将冗余的中间表示指令的所述谓词暂存器的数值设定为假。8.根据权利要求1所述的编译器,还包括:窥孔优化元件,用以合并...

【专利技术属性】
技术研发人员:郭继腾刘子悦杜伟健
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:

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

1