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

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

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


背景技术:

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

2、目前,存在一种新型的并行处理器,包含能够分别执行标量指令和矢量指令的处理单元,以实现对数据更快速、更低功耗的并行处理。但由于硬件架构的差异性,导致针对传统的并行处理器的编译器系统无法适用于该新型的并行处理器。

3、传统的编译器系统例如llvm(low level virtual machine,底层虚拟机)编译器系统,是将源代码编译成中间表示(intermediate representation,ir)代码,例如llvmir,再将中间表示代码编译成并行处理器可执行的机器码。但是,llvm ir是一种很复杂的机器抽象级的语言,对于开发者而言,使用这种类型的中间代码在对上述新型的并行处理器进行相关开发工作时具有很大的工作难度。因此,需要一种中间代码简单、且能够将简单的中间代码转换成可被上述新型的并行处理器执行的指令集的编译方案。


技术实现思路

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

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

3、获取待编译的目标中间代码,所述目标中间代码的代码类型为目标类型,所述目标类型用于指示代码格式与预设的汇编语言集合中的任意一种汇编语言对应的代码格式相同的中间代码;

4、将所述目标中间代码编译为可被所述并行处理器执行的目标指令集,所述目标指令集包括目标标量指令集和目标矢量指令集,所述目标标量指令集包括可被所述标量指令处理单元执行的多个标量指令,所述标量指令是指与数据处理无关的指令,所述目标矢量指令集包括可被所述矢量指令处理单元组执行的多个矢量指令,所述矢量指令是指与数据处理相关的指令。

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

6、获取单元,用于获取待编译的目标中间代码,所述目标中间代码的代码类型为目标类型,所述目标类型用于指示代码格式与预设的汇编语言集合中的任意一种汇编语言对应的代码格式相同的中间代码;

7、编译单元,用于将所述目标中间代码编译为可被所述并行处理器执行的目标指令集,所述目标指令集包括目标标量指令集和目标矢量指令集,所述目标标量指令集包括可被所述标量指令处理单元执行的多个标量指令,所述标量指令是指与数据处理无关的指令,所述目标矢量指令集包括可被所述矢量指令处理单元组执行的多个矢量指令,所述矢量指令是指与数据处理相关的指令。

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

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

10、可以看出,本申请实施例中,电子设备的中央处理器首先获取待编译的代码类型为目标类型的目标中间代码,所述目标类型用于指示代码格式与预设的汇编语言集合中的任意一种汇编语言对应的代码格式相同的中间代码,然后将目标中间代码编译为可被并行处理器执行的目标指令集。如此,开发者在从事对上述并行处理器的相关开发工作时,可以采用简单易懂的中间代码类型作为编译过程的中间表示,降低了开发难度,促使软件应用在上述并行处理器上的开发,以实现处理速度更快、功耗更低的并行处理过程。



技术特征:

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

2.根据权利要求1所述方法,其特征在于,所述目标中间代码的代码格式不符合静态单赋值格式,所述将所述目标中间代码编译为可被所述并行处理器执行的目标指令集,包括:

3.根据权利要求2所述方法,其特征在于,所述将所述标准中间代码编译为所述目标指令集,包括:

4.根据权利要求3所述方法,其特征在于,所述将所述待优化的标量矢量混合指令集编译为所述目标指令集,包括:

5.根据权利要求4所述方法,其特征在于,所述根据所述标量指令处理单元对应的标量物理寄存器对所述待优化的标量指令集中的多个待优化的标量指令执行寄存器分配操作,得到参考标量指令集,包括:

6.根据权利要求1所述方法,其特征在于,所述目标中间代码为用户在所述电子设备上直接输入的代码类型为所述目标类型的中间代码。

7.根据权利要求1所述方法,其特征在于,所述目标中间代码为用户在所述电子设备上直接输入的源代码经过编译后得到的代码类型为所述目标类型的中间代码。

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

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

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


技术总结
本申请提供了一种代码编译方法及相关装置,应用于电子设备的中央处理器,电子设备包括中央处理器和并行处理器,并行处理器包括标量指令处理单元和矢量指令处理单元,方法包括:获取待编译的目标中间代码,目标中间代码的代码类型为目标类型,目标类型用于指示代码格式与预设的汇编语言集合中的任意一种汇编语言对应的代码格式相同的中间代码;将目标中间代码编译为可被并行处理器执行的目标指令集。如此,开发者在从事对上述并行处理器的相关开发工作时,可以采用简单易懂的中间代码类型作为编译过程的中间表示,降低了开发难度,促使软件应用在上述并行处理器上的开发,以实现处理速度更快、功耗更低的并行处理过程。

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