一种编译方法、装置、编译器、计算设备及存储介质制造方法及图纸

技术编号:39327788 阅读:8 留言:0更新日期:2023-11-12 16:05
本说明书公开了一种编译方法、装置、编译器、计算设备及存储介质,其中,所述编译方法以结构体特征为输入,获取人工智能模型输出的结构体优化信息,实现对中间代码的结构体布局优化,在该过程中,通过人工智能模型对中间代码进行结构体布局优化,突破了人工设计结构体布局优化方法时局限于特定特征的限制,可以在结构体布局优化过程中对结构体特征进行全面考量,有利于优化结构体布局优化效果。具体地,输入给人工智能模型的结构体特征无需局限于数学模型设计时考虑的结构体显示特征,其还可以包括结构体隐式特征,使得人工智能模型可以捕捉各类结构体特征,实现综合考量结构体特征进行结构体布局优化,以优化结构体布局优化效果的目的。的目的。的目的。

【技术实现步骤摘要】
一种编译方法、装置、编译器、计算设备及存储介质


[0001]本说明书涉及计算机应用
,具体地说,涉及计算机应用
下的编译技术,更具体地说,涉及一种编译方法、装置、编译器、计算设备及存储介质。

技术介绍

[0002]编译(Compilation)是指将高级语言编写的源代码转化为计算机能够理解的机器语言,从而提高程序的执行效率的过程。在编译过程中,可以对源代码进行语法和语义的检查,也可以对源代码转换而来的中间代码进行各种优化转换,以改进程序性能。
[0003]例如,结构体布局优化(Structure Data Layout Optimization)是一种经典的编译优化方法,结构体布局优化被广泛用于提高项目的空间局部性,即对项目结构体(Struct)类型的布局进行改造,使其更符合访问模式,减少程序运行时缓存未命中(Cache Miss),另外,结构体布局优化还可减小数据在内存中的占用空间。总之,结构体布局优化是一种针对结构体使用的优化技术,旨在减小结构体的内存占用和提高内存访问效率。
[0004]但目前的结构体布局优化方法存在优化效果不佳的问题。

技术实现思路

[0005]为解决上述技术问题,本申请提供了一种编译方法、装置、编译器、计算设备及存储介质,通过人工智能模型对中间代码进行结构体布局优化,突破了人工设计结构体布局优化方法时局限于特定特征的限制,可以在结构体布局优化过程中对结构体特征进行全面考量,有利于优化结构体布局优化效果。
[0006]为实现上述技术目的,本申请实施例提供了如下技术方案:
[0007]第一方面,本说明书的一个实施方式提供一种编译方法,包括:以结构体特征为输入,获取目标模型输出的结构体优化信息;所述结构体特征用于描述中间代码中的结构体;所述目标模型包括人工智能模型;所述结构体优化信息用于描述经过结构体布局优化后的所述结构体;根据所述结构体优化信息和所述中间代码,获得优化后的中间代码,并基于优化后的所述中间代码,获得目标代码。在一些实施方式中,所述目标模型包括聚类模型;
[0008]所述聚类模型,用于根据所述结构体特征,对所述结构体中的结构体成员进行聚类,以获得至少一个簇,所述簇中包括至少一个所述结构体成员,每个所述簇对应一个经过结构体剥离优化后的结构体;所述结构体成员为所述结构体中的一个变量。
[0009]在一些实施方式中,所述聚类模型具体用于:根据所述结构体特征,确定所述结构体成员在空间中的分布;若起始成员的领域范围内的结构体成员数量小于预设数量,则将所述起始成员标记为边界点或噪声点;所述起始成员为未标记的所述结构体成员;若所述起始成员的所述领域范围内的结构体成员数量大于或等于所述预设数量,
则将所述起始成员标记为核心点,为所述核心点分配簇标签;访问所述核心点的候选成员,以对所述候选成员进行标记;所述候选成员为在所述核心点的所述领域范围内的所述结构体成员;
[0010]所述访问所述核心点的候选成员包括:当所述核心点的候选成员未被分配所述簇标签时,为所述候选成员分配与所述核心点相同的所述簇标签;若所述候选成员的所述领域范围内的结构体成员数量大于或等于所述预设数量,则将所述候选成员标记为核心点,并对所述核心点进行访问。在一些实施方式中,所述目标模型包括预先训练的深度学习模型;
[0011]所述深度学习模型,用于根据所述结构体特征,输出经过结构体重排、结构体剥离或结构体拆分优化后的结构体序列;所述结构体序列用于描述所述结构体在内存中的存储信息。在一些实施方式中,所述深度学习模型包括第一深度学习模型;
[0012]所述第一深度学习模型,用于根据所述结构体特征,输出经过结构体重排或结构体剥离优化后的第一结构体序列。
[0013]在一些实施方式中,所述第一深度学习模型具体用于:根据所述结构体特征,获取成员序列,所述成员序列中的元素用于描述所述结构体中的结构体成员;利用门控循环单元获取所述成员序列的位置信息,以获得携带有所述位置信息的成员序列;所述位置信息包括所述成员序列中各元素在前向和后向上的位置信息;以携带有所述位置信息的成员序列为输入,利用多头注意力机制捕捉各所述结构体成员之间的联系,以输出所述第一结构体序列。
[0014]在一些实施方式中,所述以携带有所述位置信息的成员序列为输入,利用多头注意力机制捕捉各所述结构体成员之间的联系,以输出所述第一结构体序列包括:将所述多头注意力机制的查询Q、键K和与键关联的值V均设置为携带有所述位置信息的成员序列,以获得所述多头注意力机制输出的所述第一结构体序列。在一些实施方式中,所述目标模型包括第二深度学习模型;
[0015]所述第二深度学习模型,用于根据所述结构体特征,输出经过结构体拆分优化后的第二结构体序列;所述第二结构体序列包括结构体指针,所述结构体指针指向分拆出的结构体。
[0016]在一些实施方式中,所述第二深度学习模型,具体用于:利用基于自注意力机制的时序模型,对所述结构体特征进行解码和编码处理,以获得所述第二结构体序列。
[0017]在一些实施方式中,所述深度学习模型的训练样本包括目标结构体特征和与所述目标结构体特征对应的标签;所述目标结构体特征包括从目标中间代码中提取的结构体特征;所述标签包括基于启发式方法和结构体访问文件对所述目标中间代码进行结构体布局优化后的结构体序列;所述结构体访问文件包括所述目标结构体特征中的结构体成员的访问信息。
[0018]第二方面,本说明书实施方式提供了一种编译装置,包括:优化模块,用于以结构体特征为输入,获取目标模型输出的结构体优化信息;所述
结构体特征用于描述中间代码中的结构体;所述目标模型包括人工智能模型;所述结构体优化信息用于描述经过结构体布局优化后的所述结构体;转换模块,用于根据所述结构体优化信息和所述中间代码,获得优化后的中间代码,并基于优化后的所述中间代码,获得目标代码。第三方面,本说明书实施方式提供了一种编译器,包括:前端、目标模型和后端;其中,所述前端,用于获取中间代码;所述目标模型,用于以结构体特征为输入,获取目标模型输出的结构体优化信息;所述结构体特征用于描述中间代码中的结构体;所述目标模型包括人工智能模型;所述结构体优化信息用于描述经过结构体布局优化后的所述结构体;
[0019]所述后端,用于根据所述结构体优化信息和所述中间代码,获得优化后的中间代码,并基于优化后的所述中间代码,获得目标代码。第四方面,本说明书实施方式提供了一种计算设备,包括:处理器和存储器;其中,所述存储器与所述处理器连接,所述存储器用于存储计算机程序;
[0020]所述处理器,用于通过运行所述存储器中存储的计算机程序,实现如上述任一项所述的编译方法。
[0021]第五方面,本说明书实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述的编译方法。
[0022]第六方面,本说明书实施例提供了一种计算机程序产本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编译方法,其特征在于,包括:以结构体特征为输入,获取目标模型输出的结构体优化信息;所述结构体特征用于描述中间代码中的结构体;所述目标模型包括人工智能模型;所述结构体优化信息用于描述经过结构体布局优化后的所述结构体;根据所述结构体优化信息和所述中间代码,获得优化后的中间代码,并基于优化后的所述中间代码,获得目标代码。2.根据权利要求1所述的方法,其特征在于,所述目标模型包括聚类模型;所述聚类模型,用于根据所述结构体特征,对所述结构体中的结构体成员进行聚类,以获得至少一个簇,所述簇中包括至少一个所述结构体成员,每个所述簇对应一个经过结构体剥离优化后的结构体;所述结构体成员为所述结构体中的一个变量。3.根据权利要求2所述的方法,其特征在于,所述聚类模型具体用于:根据所述结构体特征,确定所述结构体成员在空间中的分布;若起始成员的领域范围内的结构体成员数量小于预设数量,则将所述起始成员标记为边界点或噪声点;所述起始成员为未标记的所述结构体成员;若所述起始成员的所述领域范围内的结构体成员数量大于或等于所述预设数量,则将所述起始成员标记为核心点,为所述核心点分配簇标签;访问所述核心点的候选成员,以对所述候选成员进行标记;所述候选成员为在所述核心点的所述领域范围内的所述结构体成员;所述访问所述核心点的候选成员包括:当所述核心点的候选成员未被分配所述簇标签时,为所述候选成员分配与所述核心点相同的所述簇标签;若所述候选成员的所述领域范围内的结构体成员数量大于或等于所述预设数量,则将所述候选成员标记为核心点,并对所述核心点进行访问。4.根据权利要求1所述的方法,其特征在于,所述目标模型包括预先训练的深度学习模型;所述深度学习模型,用于根据所述结构体特征,输出经过结构体重排、结构体剥离或结构体拆分优化后的结构体序列;所述结构体序列用于描述所述结构体在内存中的存储信息。5.根据权利要求4所述的方法,其特征在于,所述深度学习模型包括第一深度学习模型;所述第一深度学习模型,用于根据所述结构体特征,输出经过结构体重排或结构体剥离优化后的第一结构体序列。6.根据权利要求5所述的方法,其特征在于,所述第一深度学习模型具体用于:根据所述结构体特征,获取成员序列,所述成员序列中的元素用于描述所述结构体中的结构体成员;利用门控循环单元获取所述成员序列的位置信息,以获得携带有所述位置信息的成员序列;所述位置信息包括所述成员序列中各元素在前向和后向上的位置信息;以携带有所述位置信息的成员序列为输入,利用多头注意力机制捕捉各所述结构体成员之间的联系,以输出所述第一结构体序列。7.根据权利要求6所述的方法,其特征在于,所...

【专利技术属性】
技术研发人员:庄源张占军吴渊李根唐遇星
申请(专利权)人:飞腾信息技术有限公司
类型:发明
国别省市:

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

1