Skip to main content
QUICK REVIEW

[논문 리뷰] ProGraML: Graph-based Deep Learning for Program Optimization and Analysis

Chris Cummins, Zacharias V. Fisches|arXiv (Cornell University)|2020. 03. 23.
Software Engineering Research참고 문헌 55인용 수 24
한 줄 요약

ProGraML는 컴파일러 중간 표현형(IR)에서 유도된 그래프 기반 프로그램 표현을 도입하여 제어, 데이터, 콜 의존성을 방향성 있는 특성 부여 다중그래프로 표현한다. 이 구조상 메시지 전달 신경망(MPNN)을 적용함으로써 핵심 컴파일러 분석에서 최신 기술 수준의 성능—94.0 F1 스코어—를 달성하였으며, 이는 이질적 장치 매핑 및 프로그램 분류 작업에서 이전 방법들을 능가한다.

ABSTRACT

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.

연구 동기 및 목표

  • 프로그램 분석을 위한 머신러닝에서 순차적이고 특수 목적에 맞춘 프로그램 표현 방식의 한계를 해결하기 위해.
  • 표현의 정밀도와 모델의 표현 능력을 향상시켜 머신러닝 기반 히ュ리스틱과 최적의 컴파일러 최적화 간의 성능 격차를 해소하기 위해.
  • 컴파일러에 종속되지 않고 언어에 종속되지 않는 프로그램 표현을 개발하여 딥러닝 모델이 풍부한 의미적 구조를 포착할 수 있도록 하기 위해.
  • 그래프 신경망을 사용하여 라이브니스, 도미네이터 트리, 공통 부분식 탐지와 같은 복잡한 프로그램 분석을 종단 간(end-to-end)으로 학습할 수 있도록 하기 위해.
  • 이질적 장치 매핑 및 프로그램 분류와 같은 고수준 작업에서의 일반화 능력을 입증하고, 새로운 최신 기술 수준의 성과를 달성하기 위해.

제안 방법

  • LLVM 및 XLA IR에서 유도된 ProGraML을 방향성 있는 특성 부여 다중그래프로 구성하여 명령어 간 제어, 데이터, 콜 의존성을 표현한다.
  • 각 명령어와 연산자에 대해 옵코드, 데이터 타입, 수식자, 순서 등을 포함한 풍부한 특징을 표현하여 의미 정보를 유지한다.
  • 메시지 전달 신경망(MPNN)을 적용하여 그래프를 통해 잠재 표현을 전파함으로써 각 명령어 및 변수의 분류를 가능하게 한다.
  • 전체 프로그램 그래프를 대상으로 엔드 투 엔드로 모델을 훈련시켜 제어 흐름 도달 가능성, 데이터 의존성 탐지, 라이브니스 분석과 같은 후행 작업을 수행한다.
  • 저수준 IR과 고수준 프로그램 이해 작업을 모두 지원하는 통합된 그래프 표현을 사용하여 도메인 간 전이 학습을 가능하게 한다.
  • ProGraML와 전통적 컴파일러 IR 간의 구조적 유사성을 활용하여 기존 컴파일레이션 파이프라인 및 도구와의 호환성을 확보한다.

실험 결과

연구 질문

  • RQ1컴파일러 IR에서 파생된 그래프 기반 프로그램 표현이 순차적 또는 특수 목적의 특징 기반 표현보다 프로그램 의미를 학습하는 데서 더 뛰어난 성능을 보일 수 있는가?
  • RQ2메시지 전달 신경망이 수동으로 설계된 히ュ리스틱 없이도 도미네이터 트리나 라이브니스와 같은 고전적 컴파일러 분석을 어느 정도 정확하게 근사할 수 있는가?
  • RQ3ProGraML의 표현력은 CDFG 및 IR2Vec와 같은 기존 그래프 기반 표현보다 프로그램 동작을 모델링하는 데서 어떻게 비교되는가?
  • RQ4ProGraML는 이질적 장치 매핑 및 프로그램 분류와 같은 고수준 최적화 작업으로 일반화될 수 있으며, 최신 기술 수준의 성능을 달성할 수 있는가?
  • RQ5실제 컴파일러 워크로드에서 기존 방법들과 비교해 ProGraML의 확장성과 추론 효율성은 어떠한가?

주요 결과

  • ProGraML는 6개 프로그래밍 언어를 포함한 25만 개의 LLVM-IR 파일로 구성된 벤치마크에서 94.0 F1 스코어를 기록하여 기존 최신 기술 수준의 방법보다 핵심 컴파일러 분석에서 뚜렷이 뛰어난 성능을 보였다.
  • 이전 방법들이 연산자 의미의 표현이 부족하여 실패하는 변수 라이브니스 및 공통 부분식 탐지 작업에서 뛰어난 성능을 보였다.
  • 이질적 장치 매핑 분야에서 새로운 최신 기술 수준의 성과를 달성하였으며, 그래프 기반 학습이 데이터 국소성과 실행 대상에 대해 효과적으로 추론할 수 있음을 보여주었다.
  • 유사한 계산 복잡도를 가진 CDFG 기반 방법 대비 추론 처리량이 76.6배 높아, 유의미한 실용적 확장성을 보였다.
  • 그래프 표현은 큰 코드베이스에 걸쳐 장거리 의존성과 의미 관계를 정확히 모델링할 수 있게 하여 순차적 모델의 한계를 극복하였다.
  • 다양한 프로그래밍 언어와 최적화 작업 전반에 걸쳐 우수한 일반화 능력을 보이며, 특정 컴파일러 단계를 넘어서 광범위한 적용 가능성을 시사한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.