用于带掩码的向量指令的编译方法、电子设备和介质技术

技术编号:35582485 阅读:22 留言:0更新日期:2022-11-12 16:13
本申请涉及计算机技术领域,特别涉及一种用于带掩码的向量指令的编译方法、电子设备和介质。该方法应用于电子设备,电子设备上安装有编译器;并且方法包括:编译器获取待编译程序;编译器确定待编译程序中包括第一程序代码,且第一程序代码的代码形式符合预设的条件运算符表达式的形式;编译器根据第一程序代码的第一掩码和向量运算表达式生成第一向量指令;编译器确定第一程序代码的运算模式为置零模式,则生成第二向量指令。本申请实施例提供的用于带掩码的向量指令的编译方法,用户不需要在编程时记住并调用与运算模式相关的内置接口,提高了程序代码的通用性以及编程的易用性,编程效率提高。编程效率提高。编程效率提高。

【技术实现步骤摘要】
用于带掩码的向量指令的编译方法、电子设备和介质


[0001]本专利技术涉及计算机
,具体涉及一种用于带掩码的向量指令的编译方法、电子设备和介质。

技术介绍

[0002]电子设备中进行数据处理的过程如图1所示:首先用户将实现数据处理的程序代码输入电子设备10,编译器100会对接收到的程序代码进行编译,得到可执行指令或可执行文件,并将其存储至存储器200。电子设备10的操作系统会将编译后的、处理器300可以执行的可执行指令或可执行文件分配给处理器300,进行数据处理。
[0003]目前编译器100对接收到的包括带掩码的向量指令的程序代码进行编译时,需要通过一系列编译器内置(built

ins)接口实现带掩码的向量指令的编译。例如,对于带掩码的向量op1和向量op2的加法指令,对应的程序代码可以例如:op1=add_m(op1,op2,mask),其中mask为掩码,add_m为函数,用于调用对应合并(merge)模式的built

ins接口,其中,编译器在对该代码进行编译时,在编译后端,会确定该软件架构中,add_m函数对应的编译器内建函数(intrinsic)的编号,并根据该intrinsic编号生成对应的汇编指令或二进制指令,完成对程序代码的编译。
[0004]由于不同公司的编译器的软件架构不同,而不同软件架构中的intrinsic编号对应的函数不同,因此,用户在编程时需要记住不同软件架构中的各种built

ins接口对应的add_m函数,才能实现对该软件架构下对应built

ins接口的调用。用户输入的程序代码在不同软件架构中不具备通用性,导致用户编程效率低。并且为了支持带掩码的向量运算,编译器需要提供特定built

ins接口,包括merge模式的built

ins接口和zero模式的built

ins接口,软件系统开发人员需要大量时间维护这些特定built

ins接口。

技术实现思路

[0005]为解决上述代码不具备通用性、编程效率低的问题,本申请实施例提供了一种用于带掩码的向量指令的编译方法、电子设备和可读存储介质。
[0006]第一方面,本申请实施例提供了一种用于带掩码的向量指令的编译方法,应用于电子设备,所述电子设备上安装有编译器;
[0007]所述方法包括:
[0008]所述编译器获取待编译程序;
[0009]所述编译器确定所述待编译程序中包括第一程序代码,且所述第一程序代码的代码形式符合预设的条件运算符表达式的形式,其中,所述第一程序代码中包括带掩码的向量指令的第一掩码、向量运算表达式和运算模式,并且所述运算模式为合并模式或置零模式;
[0010]所述编译器根据所述第一程序代码的所述第一掩码和所述向量运算表达式生成第一向量指令,所述第一向量指令用于表征所述第一程序代码对应的向量运算;
[0011]所述编译器确定所述第一程序代码的所述运算模式为置零模式,则生成第二向量指令,所述第二向量指令用于表征所述第一程序代码对应的运算模式为所述置零模式。
[0012]本申请实施例提供的用于带掩码的向量指令的编译方法,用户在向编译器输入程序代码时,只需要按照条件运算表达式的形式输入第一程序代码,不需要在编程时记住并调用与运算模式相关的内置接口,用户可以像普通编程那样对向量指令进行编程,提高程序代码的通用性以及编程的易用性,编程效率提高。并且编译器不需要提供关于匹配于向量指令的内置接口,编译器的接口数量减少,对于内置接口的维护成本降低。
[0013]此外,由于本申请实施例中不需要内置接口来进行向量运算,可以不限定向量运算的运算结果对应的变量为参与向量运算的输入变量之一。
[0014]在上述第一方面的一种可能的实现方式中,所述预设的条件运算符表达式中包括第一表达式、第二表达式和第三表达式,所述第二表达式位于所述第一表达式和所述第三表达式之间;
[0015]所述第一表达式对应所述第一程序代码中的所述第一掩码,所述第二表达式对应所述第一程序代码中的所述向量运算表达式,所述第三表达式对应所述第一程序代码中的运算模式。
[0016]在上述第一方面的一种可能的实现方式中,预设的条件运算符表达式中包括第一表达式、第二表达式和第三表达式,所述第二表达式位于所述第一表达式和所述第三表达式之间;
[0017]所述第一表达式对应所述第一程序代码中的所述第一掩码,所述第二表达式对应所述第一程序代码中的所述运算模式,所述第三表达式对应所述第一程序代码中的所述向量运算表达式。
[0018]在上述第一方面的一种可能的实现方式中,上述方法还包括:
[0019]所述编译器对所述第一掩码进行按位取反得到第二掩码;
[0020]所述编译器生成第二程序代码,所述第二程序代码包括所述第二掩码、所述向量运算表达式和所述运算模式;
[0021]所述编译器根据所述第二程序代码的所述第二掩码和所述向量运算表达式,生成第三向量指令。
[0022]在上述第一方面的一种可能的实现方式中,上述方法还包括:
[0023]若所述第一掩码不匹配于布尔向量类型,则确定所述掩码与零向量的比较结果为所述第一表达式对应的第三掩码;
[0024]所述方法还包括:
[0025]所述编译器根据所述第一程序代码的所述第三掩码和所述向量运算表达式生成第四向量指令。
[0026]在上述第一方面的一种可能的实现方式中,所述编译器确定所述第一程序代码的所述运算模式为置零模式,则生成第二向量指令,包括:
[0027]所述编译器确定所述第一程序代码的所述运算模式为置零模式;
[0028]所述编译器生成置零操作指令。
[0029]在上述第一方面的一种可能的实现方式中,上述方法还包括:
[0030]所述编译器确定所述第一向量指令的执行顺序位于所述第二向量指令的执行顺
序之前。
[0031]在上述第一方面的一种可能的实现方式中,上述方法还包括:
[0032]所述编译器确定所述第一程序代码的所述运算模式为归并模式;
[0033]所述编译器确定所述第一程序代码的返回变量与所述运算模式对应的变量不同,所述编译器生成拷贝操作指令。
[0034]在上述第一方面的一种可能的实现方式中,上述方法还包括:
[0035]所述编译器确定所述第一向量指令的执行顺序位于所述拷贝操作指令的执行顺序之后。
[0036]在上述第一方面的一种可能的实现方式中,上述方法还包括:
[0037]所述编译器确定所述待编译程序中包括第三程序代码,并且所述第三程序代码为预拷贝指令的代码或后拷贝指令的代码。
[0038]在上述第一方面的一种可能的实现方式中,所述编译器确定所述第一程序代码的所述运算模式为置零模式,则生成第二向量指令,包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于带掩码的向量指令的编译方法,应用于电子设备,其特征在于,所述电子设备上安装有编译器;所述方法包括:所述编译器获取待编译程序;所述编译器确定所述待编译程序中包括第一程序代码,且所述第一程序代码的代码形式符合预设的条件运算符表达式的形式,其中,所述第一程序代码中包括带掩码的向量指令的第一掩码、向量运算表达式和运算模式,并且所述运算模式为合并模式或置零模式;所述编译器根据所述第一程序代码的所述第一掩码和所述向量运算表达式生成第一向量指令,所述第一向量指令用于表征所述第一程序代码对应的向量运算;所述编译器确定所述第一程序代码的所述运算模式为置零模式,则生成第二向量指令,所述第二向量指令用于表征所述第一程序代码对应的运算模式为所述置零模式。2.根据权利要求1所述的用于带掩码的向量指令的编译方法,其特征在于,所述预设的条件运算符表达式中包括第一表达式、第二表达式和第三表达式,所述第二表达式位于所述第一表达式和所述第三表达式之间;所述第一表达式对应所述第一程序代码中的所述第一掩码,所述第二表达式对应所述第一程序代码中的所述向量运算表达式,所述第三表达式对应所述第一程序代码中的运算模式。3.根据权利要求1所述的用于带掩码的向量指令的编译方法,其特征在于,预设的条件运算符表达式中包括第一表达式、第二表达式和第三表达式,所述第二表达式位于所述第一表达式和所述第三表达式之间;所述第一表达式对应所述第一程序代码中的所述第一掩码,所述第二表达式对应所述第一程序代码中的所述运算模式,所述第三表达式对应所述第一程序代码中的所述向量运算表达式。4.根据权利要求3所述的用于带掩码的向量指令的编译方法,其特征在于,还包括:所述编译器对所述第一掩码进行按位取反得到第二掩码;所述编译器生成第二程序代码,所述第二程序代码包括所述第二掩码、所述向量运算表达式和所述运算模式;所述编译器根据所述第二程序代码的所述第二掩码和所述向量运算表达式,生成第三向量指令。5.根据权利要求2所述的用于带掩码的向量指令的编译方法,其特征在于,还包括:若所述第一掩码不匹配于布尔向量类型,则确定所述掩码与零向量的比较结果为所述第一表达式对应的第三掩码;所述方法还包括:所述编译器根据所述第一程序代码的所述第三掩码和所述向量运算表达式生成第四向量指令。6.根据权利要求1所述的用于带掩码的向量指令的编译方法,其特征在于,所述...

【专利技术属性】
技术研发人员:廖兴龙
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

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

1