针对编译时计算资源优化的目标语言模型:一种基于掩码图自编码器的新型方法

《Data & Knowledge Engineering》:Targeting language models for compile-time computing resource optimization: A novel approach based on masked graph autoencoders

【字体: 时间:2026年02月11日 来源:Data & Knowledge Engineering 2.6

编辑推荐:

  本研究提出DeepCodeGraph(DCG),一种基于图神经网络的自监督预训练方法,用于优化异构设备映射、线程块大小预测和算法分类。通过构建包含超10万张图的ProGraML数据集,结合masked graph autoencoding框架,DCG在三个下游任务中均达到SOTA性能,平均准确率达87%、53%和99%。

  
Federico Cichetti|Emanuele Parisi|Andrea Acquaviva|Francesco Barchi
博洛尼亚大学“Guglielmo Marconi”电气、电子与信息工程系(DEI),意大利博洛尼亚

摘要

基于深度学习的源代码分析在支持影响异构设备性能的复杂编译时决策方面已被证明非常有益。基于图的源代码表示方法尤其具有吸引力,因为它们能够表达在文本表示中难以识别的依赖关系。在这项工作中,我们提出了DeepCodeGraph(DCG)技术,这是一种用于构建通用基于图的语言模型的方法,该模型能够学习提取有助于识别更优编译策略、最佳硬件配置和软件转换机会的模式。DCG包括:(i)包含超过100个图的数据库;(ii)用于实现基于图的语言模型的图神经网络(GNN);(iii)利用掩码图自编码(MGAE)的自监督预训练框架。DCG在三项下游任务上的性能得到了评估:异构设备映射、线程块大小预测和算法分类。DCG在这三项任务上均达到了业界领先的性能水平,平均准确率分别为87%、53%和99%。

引言

由大型语言模型(LLMs)驱动的生成式人工智能(AI)的兴起正在通过实现半自动代码生成来深刻改变开发者的编程方式。虽然这促进了软件的创建,但将代码片段(如计算内核)优化并映射到特定硬件目标的问题仍然是一个未解决的挑战。实际上,现代计算系统通常具有异构架构,包含多种硬件单元,如CPU、GPU(图形处理单元)和TPU(张量处理单元)。这些设备可以加速某些类型的操作,但传统的编译器启发式方法可能难以适应各种可能的映射选项,从而无法充分利用所有平台的潜力[1]。此外,只有在严格探索设备配置参数后,才能在给定计算单元上实现最佳性能,这进一步增加了这项任务的复杂性[2]、[3]。
这一挑战可以通过人工智能(AI)来解决,其中创建的模型旨在对源代码进行分类[4],从而输出关于代码片段如何最佳映射到计算资源的决策[5]。值得注意的是,语言模型(LMs)和其他自然语言处理(NLP)技术经常因其能够识别与其指定任务相关的有用模式而被应用。有关NLP在软件工程领域应用的全面回顾,请参考Zhang等人的研究[6]。在源代码领域,这些模式可能包含了有关良好软件工程实践的知识,其获取有助于开发更智能、数据驱动的软件工程工具。
基于NLP的技术将源代码文件视为语言制品,这是基于自然语言和编程语言之间的相似性[5]。然而,源代码本身携带了与数据(例如变量和常量)和指令之间的因果和时间依赖关系相关的模式,这些模式在序列格式中难以识别。
事实上,最近的研究表明,广泛用于分析自然语言的大型语言模型(LLMs)在处理源代码优化和分析时可能效果不佳[7]、[8]。目前尚不清楚为源代码的LLMs设计的现有训练方法是否能够有效利用从这种数据类型中获得的知识[9]。相反,基于图的表示方法可以增强对高级代码概念的理解[10]。几项最近的研究加强了这种方法的合理性。在[4]中,作者展示了通过基于树的神经模型结合程序结构信息可以显著提高分类准确性。Wu等人和Jia等人的补充发现[11]、[12]强调了图神经架构在提取各种结构化数据集中的复杂关系模式方面的有效性。来自基于知识图的分类工作的类似证据进一步证实了学习基于图的表示方法的好处。因此,基于图的LM可能能够识别更有效的模式并利用所有可用信息。
近年来,深度学习社区从端到端模型转向了迁移学习技术[13]。在这种方法中,模型首先在一个大型数据集上进行预训练,然后针对特定任务进行微调。这种方法将问题解决方案的学习与数据中固有模式的提取区分开来,使得在预训练期间获得的一般知识可以在多个任务中重复使用[14]。
遵循这一趋势,我们旨在通过采用针对图神经网络(GNNs)定制的自监督预训练技术来实证验证基于图的学习方法的有效性,并测量预训练模型在几项下游任务中带来的改进:(i)将计算内核映射到计算单元(异构设备映射);(ii)确定GPU内核的最有效线程块大小(线程块大小预测);(iii)根据程序解决的问题对其进行分类(算法分类)。
为此,我们开发了“DeepCodeGraph”(DCG),这是一种用于构建基于图的源代码表示的通用语言模型的程序(见图1)。我们方法的关键组成部分是对掩码图自编码(MGAE)框架的改编。该技术涉及从输入图中随机选择一些元素并进行屏蔽,然后利用剩余信息让模型重建这些元素。尽管MGAE在其他场景中是一种流行的技术[15],但据我们所知,先前的研究尚未探索将其作为源代码分析语言模型预训练方法的应用。
DeepCodeGraph的性能优于之前的基于图的技术和为代码优化设计的预训练程序,在上述下游任务上取得了业界领先的结果。特别是在异构设备映射任务上,我们的平均准确率超过了87%,比之前的基于图的模型提高了3.2%。此外,在线程块大小预测任务上,我们的准确率提高了4.9%,根据LS-CAT基准测试的性能指标达到了0.997。
本文的结构如下:第2节回顾了现有文献中与源代码分析和预训练技术相关的主要问题和解决方案。第3节描述了我们的贡献,包括一个基于图的LM、一个受MGAE领域最新方法启发的自监督学习框架,以及一个允许进行稳健预训练的大规模数据集。第4节检验了预训练和微调的结果,并评估了我们方法带来的好处。最后,第5节总结了这项工作并指出了未来的研究方向。

部分摘录

背景与相关工作

本工作的重点是将概率源代码模型集成到优化工具中,特别是解决异构设备映射线程块大小预测问题。这些任务优化编译时选择以提高程序效率。异构设备映射旨在确定执行代码段的最有效设备,这在具有多种硬件配置的嵌入式系统中是一个关键任务。而线程块大小预测则针对GPU驱动的

方法

在本节中,我们介绍了DeepCodeGraph(DCG),这是一种用于使用源代码的图表示进行预训练的图语言模型的流程,采用了掩码图自编码器作为预训练框架。此外,我们还介绍了DCG数据集,这是一个包含来自不同开源基准测试和项目的可编译OpenCL、C和C++源代码的大型集合。最后,我们解释了如何将我们的语言模型适配到前面提到的下游任务中。

实验结果

在本节中,我们报告了使用DCG流程进行的实验结果,重点介绍了在上述下游任务上取得的改进。

结论

由于复杂性的增加和硬件的多样化,现代计算系统对传统的编译器启发式方法提出了挑战。最近的研究利用机器学习,特别是神经网络,来进行编译时决策。本文介绍了一种新的源代码分析语言模型,该模型使用了经过掩码图自编码(MGAE)技术预训练的图神经网络。我们的方法称为DeepCodeGraph(DCG),它使用扩展的ProGraML格式来处理代码

CRediT作者贡献声明

Federico Cichetti:撰写——审稿与编辑、撰写——初稿、软件、方法论、数据管理、概念化。Emanuele Parisi:撰写——初稿、软件、方法论、数据管理、概念化。Andrea Acquaviva:撰写——审稿与编辑、撰写——初稿、项目管理、资金获取、概念化。Francesco Barchi:撰写——审稿与编辑、撰写——初稿、监督、方法论

利益冲突声明

作者声明他们没有已知的竞争性财务利益或个人关系可能会影响本文报告的工作。

致谢

本项工作得到了Edge AI Technologies for Optimised Performance Embedded Processing项目的支持,该项目获得了Key Digital Technologies Joint Undertaking (KDT JU)的资助,资助协议编号为101097300。KDT JU得到了欧盟的Horizon Europe研究与创新计划以及奥地利、比利时、法国、希腊、意大利、拉脱维亚、卢森堡、荷兰、挪威的支持。
Federico Cichetti是博洛尼亚大学工程学院的研究员,也是ECSLab的成员。他在同一机构获得了人工智能硕士学位。他的研究专注于图神经网络和先进的神经建模技术,特别是其在源代码优化中的应用。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号