Skip to main content
QUICK REVIEW

[논문 리뷰] MLGO: a Machine Learning Guided Compiler Optimizations Framework

Mircea Trofin, Yundi Qian|arXiv (Cornell University)|2021. 01. 13.
Machine Learning and Data Classification참고 문헌 25인용 수 35
한 줄 요약

MLGO는 LLVM 컴파일러에 기계 학습을 통합하여 사이즈 최적화를 위한 인라이닝 휴리스틱을 대체하고, RL과 진화 전략을 사용하여 최대 7%의 네이티브 사이즈 감소와 다양한 타깃에 대한 우수한 일반화를 달성한다.

ABSTRACT

Leveraging machine-learning (ML) techniques for compiler optimizations has been widely studied and explored in academia. However, the adoption of ML in general-purpose, industry strength compilers has yet to happen. We propose MLGO, a framework for integrating ML techniques systematically in an industrial compiler -- LLVM. As a case study, we present the details and results of replacing the heuristics-based inlining-for-size optimization in LLVM with machine learned models. To the best of our knowledge, this work is the first full integration of ML in a complex compiler pass in a real-world setting. It is available in the main LLVM repository. We use two different ML algorithms: Policy Gradient and Evolution Strategies, to train the inlining-for-size model, and achieve up to 7\% size reduction, when compared to state of the art LLVM -Oz. The same model, trained on one corpus, generalizes well to a diversity of real-world targets, as well as to the same set of targets after months of active development. This property of the trained models is beneficial to deploy ML techniques in real-world settings.

연구 동기 및 목표

  • 산업 규모의 컴파일러에서 수작업으로 설계된 최적화 휴리스틱을 대체하기 위한 기계 학습 활용을 제고한다.
  • 파일럿 인라이닝-포-사이즈 최적화 패스를 통해 LLVM에 기계 학습을 전면적으로 통합하는 것을 시연한다.
  • 정책 최적화를 위한 ML 학습 접근법(강화 학습과 진화 전략)을 개발하고 비교한다.
  • 하나의 말뭉치에서 학습된 모델이 다양한 실제 타깃에 일반화되고 시간이 지나도 견고함을 유지함을 보인다.

제안 방법

  • call site들에 걸친 순차적 의사결정 과정으로 사이즈 최적화를 위한 인라이닝 문제를 강화 학습 문제로 형식화한다.
  • 정책 기울기(PPO) 및 진화 전략을 사용하여 네이티브 사이즈 감소를 최대화하도록 정책을 학습한다.
  • 상태 표현을 다루기 쉽게 11개의 수치 특징으로 축소된 특징 공간을 도입한다.
  • LLVM의 기존 인라이닝 휴리스틱을 모방하여 학습 속도를 높이기 위해 행동 복제를 사용해 RL을 워밍 스타트한다.
  • 학습된 ML 정책을 릴리스 모드 모델로 LLVM에 삽입하고 개발 모드 실험을 지원한다.

실험 결과

연구 질문

  • RQ1ML 기반 정책이 실제 LLVM 파이프라인에서 수작업으로 조정된 인라이닝-포-사이즈 휴리스틱을 능가할 수 있는가?
  • RQ2하나의 말뭉치에서 학습된 정책이 retraining 없이도 다양한 실제 타깃 코드베이스와 같은 대상의 향후 수정에 일반화되는가?
  • RQ3강화 학습과 진화 전략 간의 트레이드오프는 컴파일러 맥락에서의 인라이닝 정책 학습에 어떤 영향을 미치는가?

주요 결과

  • ML 정책은 pilot inlining-for-size 문제에서 최신 LLVM Oz 대비 최대 7% 크기 감소를 달성했다.
  • 하나의 말뭉치에서 학습된 단일 모델이 다양한 실제 타깃과 몇 달에 걸친 활발한 개발 기간 동안 잘 일반화된다.
  • 강화 학습(PPO를 이용한 정책 기울기)과 진화 전략의 두 가지 학습 패러다임을 탐색했고, 각기 다른 트레이드오프를 보인다.
  • 행동 복제를 통한 RL의 워밍 스타트는 LLVM의 기존 인라이닝 휴리스틱을 활용해 학습 속도를 가속화한다.
  • 프레임워크는 정책 학습과 프로덕션 사용을 분리하고, 컴파일러에 고정된 정책을 삽입해 결정론적 출시 모드 운영을 가능하게 한다.

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

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

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

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