arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2003.10536cs.LGcs.PFcs.PLstat.ML
收藏

ProGraML:基于图的深度学习,用于程序优化和分析

ProGraML: Graph-based Deep Learning for Program Optimization and Analysis

University of Edinburgh(爱丁堡大学);ETH Zurich(苏黎世联邦理工学院)

Chris Cummins, Zacharias V. Fisches, Tal Ben-Nun, Torsten Hoefler, Hugh Leather

摘要:

计算系统的复杂性不断增加,这给优化编译器带来了巨大的负担,需要更加精确和积极的优化。机器学习为构建优化启发式提供了显著的好处,但在最先进的方法实现的效果与最优启发式的性能之间仍然存在差距。缩小这一差距需要在两个关键领域进行改进:一个能够准确捕捉程序语义的表示,以及一个具有足够表达能力的模型架构,以推理这种表示。我们介绍ProGraML -程序图机器学习-一种新的基于图形的程序表示使用低级别,语言不可知,和便携式格式;和机器学习模型能够执行复杂的下游任务,这些图。ProGraML表示是一个有向属性多重图,它捕获控制、数据和调用关系,并总结指令和操作数类型和排序。消息传递神经网络通过这种结构化表示来传播信息,从而实现整个程序或每个顶点的分类任务。ProGraML提供了一种通用的程序表示,它使可学习的模型能够执行对优化至关重要的程序分析类型。为此,我们首先对一套传统的编译器分析任务:控制流可达性,支配树,数据依赖,变量活性,常见的子表达式检测我们的方法的性能进行评估。在涵盖六种源程序设计语言的25万LLVM-IR文件的基准数据集上,ProGraML的平均F1得分为94.0,明显优于最先进的方法。然后,我们将我们的方法应用到两个高层次的任务-异构设备映射和程序分类-设置新的国家的最先进的性能。

英文摘要:

The increasing complexity of computing systems places a tremendous burden on optimizing compilers, requiring ever more accurate and aggressive optimizations. Machine learning offers significant benefits for constructing optimization heuristics but there remains a gap between what state-of-the-art methods achieve and the performance of an optimal heuristic. Closing this gap requires improvements in two key areas: a representation that accurately captures the semantics of programs, and a model architecture with sufficient expressiveness to reason about this representation. We introduce ProGraML - Program Graphs for Machine Learning - a novel graph-based program representation using a low level, language agnostic, and portable format; and machine learning models capable of performing complex downstream tasks over these graphs. The ProGraML representation is a directed attributed multigraph that captures control, data, and call relations, and summarizes instruction and operand types and ordering. Message Passing Neural Networks propagate information through this structured representation, enabling whole-program or per-vertex classification tasks. ProGraML provides a general-purpose program representation that equips learnable models to perform the types of program analysis that are fundamental to optimization. To this end, we evaluate the performance of our approach first on a suite of traditional compiler analysis tasks: control flow reachability, dominator trees, data dependencies, variable liveness, and common subexpression detection. On a benchmark dataset of 250k LLVM-IR files covering six source programming languages, ProGraML achieves an average 94.0 F1 score, significantly outperforming the state-of-the-art approaches. We then apply our approach to two high-level tasks - heterogeneous device mapping and program classification - setting new state-of-the-art performance in both.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑