代码编译方法及相关装置与流程

文档序号:35410334发布日期:2023-09-09 21:41阅读:20来源:国知局
代码编译方法及相关装置与流程

本发明涉及新一代信息技术产业的一般编码、译码或代码转换,具体涉及一种代码编译方法及相关装置。


背景技术:

1、在对数据进行并行处理的过程中,并行处理器所执行的指令集既存在与数据处理相关的矢量指令,也存在与数据处理无关的标量指令,对于传统的并行处理器(如图形处理器gpu)而言,其遵循单指令多线程(single instruction multiple thread,simt)架构同等对待执行每一条指令,而不会去区分指令中的矢量指令和标量指令。这样一来,标量指令也会在多线程中重复运行,而由于标量指令与数据处理无关,所以标量指令的重复运行是毫无意义的,导致传统的并行处理器存在浪费运行时间和功耗的问题。

2、目前,存在一种新型的并行处理器,能够分别执行矢量指令和标量指令,以实现更快速、更低功耗的运行。但是,在针对该新型的并行处理器进行相关的开发工作时,由于编写习惯等因素,开发人员仍具有采用传统的并行编程模型进行编写源代码的需求,但是采用传统的并行编程模型所编写出的源代码可能存在与该新型的并行处理器不适配的问题。


技术实现思路

1、本发明实施例提供了一种代码编译方法及相关装置,以期降低开发者对新型的并行处理器的开发难度,使得电子设备能够实现处理速度更快、功耗更低的并行处理过程。

2、第一方面,本发明实施例提供了一种代码编译方法,应用于电子设备的中央处理器,所述电子设备包括所述中央处理器和并行处理器,所述并行处理器包括标量指令处理单元和矢量指令处理单元组,所述方法包括:

3、获取待编译的目标中间代码;

4、解析所述目标中间代码中的函数体外函数调用信息,得到多个函数体外函数;

5、根据所述目标中间代码中的多个函数调用指令对应的函数名以及实参的数据类型,以及所述多个函数体外函数,确定多个被调用的函数的目标副本,其中,所述被调用的函数的目标副本中标识有形参的矢量属性,所述被调用的函数与所述函数名以及所述实参的数据类型对应;

6、根据所述多个被调用的函数的目标副本得到可被所述并行处理器执行的目标指令集,所述目标指令集包括目标标量指令集和目标矢量指令集,所述目标标量指令集包括可被所述标量指令处理单元执行的多个标量指令,所述标量指令是指与数据处理无关的指令,所述目标矢量指令集包括可被所述矢量指令处理单元组执行的多个矢量指令,所述矢量指令是指与数据处理相关的指令。

7、第二方面,本发明实施例提供了一种代码编译装置,应用于电子设备的中央处理器,所述电子设备包括所述中央处理器和并行处理器,所述并行处理器包括标量指令处理单元和矢量指令处理单元组,所述装置包括:

8、获取模块,用于获取待编译的目标中间代码;

9、解析模块,用于解析所述目标中间代码中的函数体外函数调用信息,得到多个函数体外函数;

10、确定模块,用于根据所述目标中间代码中的多个函数调用指令对应的函数名以及实参的数据类型,以及所述多个函数体外函数,确定多个被调用的函数的目标副本,其中,所述被调用的函数的目标副本中标识有形参的矢量属性,所述被调用的函数与所述函数名以及所述实参的数据类型对应;

11、生成模块,用于根据所述多个被调用的函数的目标副本得到可被所述并行处理器执行的目标指令集,所述目标指令集包括目标标量指令集和目标矢量指令集,所述目标标量指令集包括可被所述标量指令处理单元执行的多个标量指令,所述标量指令是指与数据处理无关的指令,所述目标矢量指令集包括可被所述矢量指令处理单元组执行的多个矢量指令,所述矢量指令是指与数据处理相关的指令。

12、第三方面,本申请实施例提供了一种电子设备,包括中央处理器、并行处理器、存储器以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述中央处理器执行,所述程序包括用于执行如本申请实施例第一方面中的步骤的指令。

13、第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序/指令,所述计算机程序/指令被中央处理器执行时实现本申请实施例第一方面中的步骤。

14、可以看出,本申请实施例中,电子设备的中央处理器通过解析待编译的目标中间代码中的函数体外函数调用信息,得到多个函数体外函数,然后,根据所述目标中间代码中的多个函数调用指令对应的函数名以及实参的数据类型,以及所述多个函数体外函数,确定多个被调用的函数的目标副本,其中,所述被调用的函数的目标副本中标识有形参的矢量属性,进而根据所述多个被调用的函数的目标副本得到可被所述并行处理器执行的目标指令集。如此,电子设备的中央处理器能够基于目标中间代码将标量指令与矢量指令区分开来,从而使得并行处理器中不同的处理单元/处理单元组能够正确执行标量/矢量指令,提高处理速度,降低功耗。同时,开发人员在对上述并行处理器进行相关项目开发时,仍旧可以采用传统的并行编程模型进行源码编写,降低了开发难度。



技术特征:

1.一种代码编译方法,其特征在于,应用于电子设备的中央处理器,所述电子设备包括所述中央处理器和并行处理器,所述并行处理器包括标量指令处理单元和矢量指令处理单元组,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述解析所述目标中间代码中的函数体外函数调用信息,得到多个函数体外函数,包括:

3.根据权利要求2所述的方法,其特征在于,所述对所述多个第一函数分别进行解析,直到所述多个第一函数中存在调用关系的外部函数均解析完,得到多个第二函数,包括:

4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述目标中间代码中的多个函数调用指令对应的函数名以及实参的数据类型,以及所述多个函数体外函数,确定多个被调用的函数的目标副本,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述多个函数体对应的函数被调用时的实参的矢量属性,得到多个被调用的函数的目标副本,包括:

6.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述目标中间代码中的多个函数调用指令对应的函数名以及实参的数据类型,以及所述多个函数体外函数,确定多个被调用的函数的目标副本,包括:

7.根据权利要求1所述的方法,其特征在于,所述待编译的目标中间代码是通过对采用并行编程模型编写的目标源码执行编译操作得到的。

8.一种代码编译装置,其特征在于,应用于电子设备的中央处理器,所述电子设备包括所述中央处理器和并行处理器,所述并行处理器包括标量指令处理单元和矢量指令处理单元组,所述装置包括:

9.一种电子设备,其特征在于,包括中央处理器、并行处理器、存储器以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述中央处理器执行,所述程序包括用于执行如权利要求1-7任一项所述方法中的步骤的指令。

10.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,所述计算机程序/指令被中央处理器执行时实现权利要求1-7任一项所述方法的步骤。


技术总结
本发明实施例公开一种代码编译方法及相关装置,所述方法包括:获取待编译的目标中间代码;解析所述目标中间代码中的函数体外函数调用信息,得到多个函数体外函数;根据所述目标中间代码中的多个函数调用指令对应的函数名以及实参的数据类型,以及所述多个函数体外函数,确定多个被调用的函数的目标副本,其中,所述被调用的函数的目标副本中标识有形参的矢量属性;根据所述多个被调用的函数的目标副本得到可被并行处理器执行的目标指令集。这样,电子设备的中央处理器能够基于目标中间代码将标量指令与矢量指令区分开来,从而使得并行处理器中不同的处理单元/处理单元组能够正确执行标量/矢量指令,提高处理速度,降低功耗。

技术研发人员:贾昆猛,李原,朱建斌,付尧,雷宇
受保护的技术使用者:珠海市芯动力科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1