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

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

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


背景技术:

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

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


技术实现思路

1、本申请提供了一种代码编译方法及相关装置,以期使得开发人员采用传统的并行编程模型编写出的源码能够被编译为可被新型的并行处理器执行的机器码,从而能够利用起新型的并行处理器的优势,以及降低开发难度。

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

3、对采用并行编程模型编写的目标源码执行第一编译操作,得到目标中间指令集;

4、对所述目标中间指令集执行第二编译操作,得到所述目标中间指令集对应的标量矢量混合指令集,所述标量矢量混合指令集包括多个标量指令和多个矢量指令,所述标量指令是指与数据处理无关的指令,所述矢量指令是指与数据处理相关的指令;

5、对所述目标中间指令集对应的标量矢量混合指令集执行第三编译操作,得到目标机器码,所述目标机器码包括可被所述标量指令处理单元执行的目标标量机器码和可被所述矢量指令处理单元组执行的目标矢量机器码。

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

7、第一编译单元,用于对采用并行编程模型编写的目标源码执行第一编译操作,得到目标中间指令集;

8、第二编译单元,用于对所述目标中间指令集执行第二编译操作,得到所述目标中间指令集对应的标量矢量混合指令集,所述标量矢量混合指令集包括多个标量指令和多个矢量指令,所述标量指令是指与数据处理无关的指令,所述矢量指令是指与数据处理相关的指令;

9、第三编译单元,用于对所述目标中间指令集对应的标量矢量混合指令集执行第三编译操作,得到目标机器码,所述目标机器码包括可被所述标量指令处理单元执行的目标标量机器码和可被所述矢量指令处理单元组执行的目标矢量机器码。

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

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

12、可以看出,本申请实施例中,电子设备的中央处理器对采用并行编程模型编写的目标源码执行第一编译操作得到目标中间指令集,再对目标中间指令集执行第二编译操作得到对应的标量矢量混合指令集,最后对标量矢量混合指令集执行第三编译操作,得到可被电子设备中的并行处理器执行的目标机器码。如此,电子设备的中央处理器能够在目标中间指令集转换为目标机器码的过程中,将标量指令与矢量指令区分开来,从而使得并行处理器中不同的处理单元/处理单元组能够正确执行标量/矢量指令,提高处理速度,降低功耗。同时,开发人员在对上述并行处理器进行相关项目开发时,仍旧可以采用传统的并行编程模型进行源码编写,降低了开发难度。



技术特征:

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

2.根据权利要求1所述方法,其特征在于,所述目标中间指令集包括多个目标中间指令,所述对所述目标中间指令集执行第二编译操作,得到所述目标中间指令集对应的标量矢量混合指令集,包括:

3.根据权利要求2所述方法,其特征在于,所述将所述多个目标中间指令转换为标量指令,得到与所述多个目标中间指令对应的多个参考标量指令,包括:

4.根据权利要求2所述方法,其特征在于,所述从所述多个参考标量指令中确定出多个参考矢量指令,得到所述目标中间指令集对应的标量矢量混合指令集,包括:

5.根据权利要求4所述方法,其特征在于,所述根据所述多个第一标量指令从所述多个参考标量指令中确定出多个参考矢量指令,得到所述目标中间指令集对应的标量矢量混合指令集,包括:

6.根据权利要求1所述方法,其特征在于,所述并行编程模型为计算机统一设备架构cuda编程模型。

7.根据权利要求6所述方法,其特征在于,所述对采用并行编程模型编写的目标源码执行第一编译操作,得到目标中间指令集,包括:

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

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

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


技术总结
本申请提供了一种代码编译方法及相关装置,应用于电子设备的中央处理器,电子设备包括中央处理器和并行处理器,并行处理器包括标量指令处理单元和矢量指令处理单元,方法包括:对采用并行编程模型编写的目标源码执行第一编译操作,得到目标中间指令集;对目标中间指令集执行第二编译操作,得到目标中间指令集对应的标量矢量混合指令集;对目标中间指令集对应的标量矢量混合指令集执行第三编译操作,得到目标机器码。如此,能够使得并行处理器中不同的处理单元/处理单元组正确执行标量/矢量指令,提高处理速度,降低功耗。同时,开发人员在对上述并行处理器进行相关项目开发时,仍旧可以采用传统的并行编程模型进行源码编写,降低了开发难度。

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