技术新讯 > 计算推算,计数设备的制造及其应用技术 > 程序处理方法、编译器、片上系统、电子设备及存储介质与流程  >  正文

程序处理方法、编译器、片上系统、电子设备及存储介质与流程

  • 国知局
  • 2024-08-30 14:30:48

本申请涉及处理器领域,具体而言,涉及一种程序处理方法、编译器、片上系统、电子设备及存储介质。

背景技术:

1、目前,一般编译器产品采用的对齐策略为编译器静态分析加上一定程度的符号分类,具体来说,一般会将符号分类为函数地址、循环起始地址、跳转目标地址。然后,编译器会进行静态分析,例如,分析循环次数,并设定一个条件作为阈值,达到该阈值时选择对齐,这种对齐策略是为了权衡代码大小和性能之间的关系。如果多个符号可以按照一定的子节对齐,则程序大小会增大很多;如果多个符号不对齐,则由于处理器架构的分支预测器等策略要求,性能会变差,因此,符号对齐的策略是一个代码大小和性能之间的权衡考量。目前一般编译器产品采用的对齐策略分类的颗粒度较粗,而且静态分析有一定的局限性,效果不是很好,导致程序的执行效率较低。

2、针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

1、本申请实施例提供了一种程序处理方法、编译器、片上系统、电子设备及存储介质,以至少解决相关技术中编译器难以对符号进行合理调整,从而导致程序的执行效率较低的技术问题。

2、根据本申请实施例的一个方面,提供了一种程序处理方法,应用于编译器,包括:在程序被编译器编译完成且开始运行的情况下,获取收集工具收集到的程序的性能数据,其中,程序由多个函数的指令序列构成,收集工具由编译器在对程序进行编译过程中插入程序;基于性能数据从程序包含的多个符号中确定至少一个目标符号,其中,不同符号用于表征程序中的不同函数或不同变量,至少一个目标符号的访问频率大于预设频率;将至少一个目标符号与处理器的多个缓存行的起始地址进行对齐,确定至少一个目标符号对应的目标缓存行起始地址;对至少一个目标符号在内存中的空间布局进行调整,确定至少一个目标符号在内存中的目标空间布局。

3、根据本申请实施例的一个方面,提供了一种程序处理方法,应用于编译器,包括:在图形处理程序被编译器编译完成且开始运行的情况下,获取收集工具收集到的图形处理程序的性能数据,其中,图形处理程序由多个函数的指令序列构成,收集工具由编译器在对图形处理程序进行编译过程中插入图形处理程序;基于性能数据从图形处理程序包含的多个符号中确定至少一个目标符号,其中,不同符号用于表征程序中的不同函数或不同变量,至少一个目标符号用于表征图形数据结构和渲染函数;将至少一个目标符号与处理器的多个缓存行的起始地址进行对齐,确定至少一个目标符号对应的目标缓存行起始地址;对至少一个目标符号在内存中的空间布局进行调整,确定至少一个目标符号在内存中的目标空间布局。

4、根据本申请实施例的一个方面,提供了一种程序处理方法,应用于编译器,包括:在程序被编译器编译完成且开始运行的情况下,获取收集工具收集到的程序的性能数据,其中,程序由多个函数的指令序列构成,收集工具由编译器在对程序进行编译过程中插入程序;基于性能数据从程序包含的多个符号中确定至少一个目标符号,其中,不同符号用于表征程序中的不同函数或不同变量,至少一个目标符号的访问频率大于预设频率;将至少一个目标符号与处理器的多个缓存行的起始地址进行对齐,确定至少一个目标符号对应的目标缓存行起始地址;对至少一个目标符号在内存中的空间布局进行调整,确定至少一个目标符号在内存中的目标空间布局;基于至少一个目标符号对应的目标缓存行起始地址和目标空间布局,对程序进行重新编译。

5、根据本申请实施例的一个方面,提供了一种编译器,包括:收集工具,用于在程序被编译器编译完成且开始运行的情况下,收集程序的性能数据,其中,收集工具是在对程序进行编译过程中插入程序中的,程序由多个函数的指令序列构成;符号对齐模块,用于基于性能数据从程序包含的多个符号中确定至少一个目标符号,将至少一个目标符号与处理器的多个缓存行的起始地址进行对齐,确定至少一个目标符号对应的目标缓存行起始地址,并对至少一个目标符号在内存中的空间布局进行调整,确定至少一个目标符号在内存中的目标空间布局,其中,不同符号用于表征程序中的不同函数或不同变量,至少一个目标符号的访问频率大于预设频率。

6、根据本申请实施例的一个方面,提供了一种片上系统,包括:上述实施例中的编译器。

7、根据本申请实施例的一个方面,提供了一种电子设备,包括:存储器,存储有可执行程序;处理器,用于运行程序,其中,程序运行时执行上述实施例中任意一项的方法。

8、根据本申请实施例的另一方面,还提供了一种计算机终端,包括:存储器,存储有可执行程序;处理器,用于运行程序,其中,程序运行时执行本申请各个实施例中的方法。

9、根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的可执行程序,其中,在可执行程序运行时控制计算机可读存储介质所在设备执行本申请各个实施例中的方法。

10、根据本申请实施例的另一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本申请各个实施例中的方法。

11、根据本申请实施例的另一方面,还提供了一种计算机程序产品,包括非易失性计算机可读存储介质,非易失性计算机可读存储介质存储计算机程序,计算机程序被处理器执行时实现本申请各个实施例中的方法。

12、根据本申请实施例的另一方面,还提供了一种计算机程序,计算机程序被处理器执行时实现本申请各个实施例中的方法。

13、在本申请实施例中,在程序被编译器编译完成且开始运行的情况下,获取收集工具收集到的程序的性能数据,其中,程序由多个函数的指令序列构成,收集工具由编译器在对程序进行编译过程中插入程序;基于性能数据从程序包含的多个符号中确定至少一个目标符号,其中,不同符号用于表征程序中的不同函数或不同变量,至少一个目标符号的访问频率大于预设频率;将至少一个目标符号与处理器的多个缓存行的起始地址进行对齐,确定至少一个目标符号对应的目标缓存行起始地址;对至少一个目标符号在内存中的空间布局进行调整,确定至少一个目标符号在内存中的目标空间布局,实现了提高程序的执行效率的目的。容易注意到的是,可以通过收集工具收集到的程序的性能数据来确定出访问频率较高且较为重要的至少一个目标符号,可以通过对多个符号进行筛选来减少需要执行对齐操作的符号的数量,将重点的至少一个目标符号与多个缓存行的起始地址进行对齐,以减少缓存行的冲突,并通过对至少一个目标符号在内存中的空间布局进行调整,来减少对程序的访问延迟,从而实现对程序的改进,进而解决了相关技术中编译器难以对符号进行合理调整,从而导致程序的执行效率较低的技术问题。

14、容易注意到的是,上面的通用描述和后面的详细描述仅仅是为了对本申请进行举例和解释,并不构成对本申请的限定。

技术特征:

1.一种程序处理方法,其特征在于,应用于编译器,包括:

2.根据权利要求1所述的方法,其特征在于,所述基于所述性能数据从所述程序包含的多个符号中确定至少一个目标符号,包括:

3.根据权利要求1所述的方法,其特征在于,所述将所述至少一个目标符号与处理器的多个缓存行的起始地址进行对齐,确定所述至少一个目标符号对应的目标缓存行起始地址,包括:

4.根据权利要求3所述的方法,其特征在于,所述基于所述任意一个符号的执行次数和所述多个基本块包含的指令数量,对所述程序进行指令提取,确定所述至少一个目标符号对应的目标指令序列,包括:

5.根据权利要求4所述的方法,其特征在于,所述基于所述任意一个符号的执行次数和所述多个基本块包含的指令数量,确定所述任意一个函数的动态执行指令数量,包括:

6.根据权利要求4所述的方法,其特征在于,所述基于所述任意一个函数的动态执行指令数量,从所述多个函数的指令序列中提取出满足预设条件的指令序列,得到所述至少一个目标符号对应的目标指令序列,包括:

7.根据权利要求1所述的方法,其特征在于,所述对所述至少一个目标符号在内存中的空间布局进行调整,确定所述至少一个目标符号在所述内存中的目标空间布局,包括:

8.根据权利要求7所述的方法,其特征在于,所述基于所述任意一个符号的执行次数和所述多个基本块包含的指令数量,对所述程序进行基本块提取,确定所述至少一个目标符号对应的目标基本块,包括:

9.一种程序处理方法,其特征在于,应用于编译器,包括:

10.一种程序处理方法,其特征在于,应用于编译器,包括:

11.一种编译器,其特征在于,包括:

12.根据权利要求11所述的编译器,其特征在于,还包括:

13.一种片上系统,其特征在于,包括:权利要求11或12所述的编译器。

14.一种电子设备,其特征在于,包括:

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的可执行程序,其中,在所述可执行程序运行时控制所述存储介质所在设备执行权利要求1至10中任意一项所述的方法。

16.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至10中任意一项所述的方法。

技术总结本申请公开了一种程序处理方法、编译器、片上系统、电子设备及存储介质。其中,该方法包括:在程序被编译器编译完成且开始运行的情况下,获取收集工具收集到的程序的性能数据,其中,程序由多个函数的指令序列构成,收集工具由编译器在对程序进行编译过程中插入程序;基于性能数据从程序包含的多个符号中确定至少一个目标符号;将至少一个目标符号与处理器的多个缓存行的起始地址进行对齐,确定至少一个目标符号对应的目标缓存行起始地址;对至少一个目标符号在内存中的空间布局进行调整,确定至少一个目标符号在内存中的目标空间布局。本申请解决了相关技术中编译器难以对符号进行合理调整,从而导致程序的执行效率较低的技术问题。技术研发人员:瞿仙淼受保护的技术使用者:阿里巴巴达摩院(杭州)科技有限公司技术研发日:技术公布日:2024/8/27

本文地址:https://www.jishuxx.com/zhuanli/20240830/282393.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。