Skip to main content
QUICK REVIEW

[논문 리뷰] Learning to superoptimize programs

Rudy Bunel, Alban Desmaison|arXiv (Cornell University)|2016. 11. 06.
Software Engineering Research참고 문헌 17인용 수 17
한 줄 요약

이 논문은 강화학습을 활용해 적응형 제안 분포를 학습함으로써 확률적 탐색을 개선하는 학습 기반 접근법을 제안한다. REINFORCE 알고리즘을 사용해 기대 향상도를 기반으로 제안 분포를 최적화함으로써, Stoke와 같은 최신 기법들보다 더 높은 최적화 품질을 더 적은 반복 횟수 내에 달성한다. 이는 Hacker’s Delight 및 자동으로 생성된 벤치마크에서 모두 성능 향상을 보였다.

ABSTRACT

Code super-optimization is the task of transforming any given program to a more efficient version while preserving its input-output behaviour. In some sense, it is similar to the paraphrase problem from natural language processing where the intention is to change the syntax of an utterance without changing its semantics. Code-optimization has been the subject of years of research that has resulted in the development of rule-based transformation strategies that are used by compilers. More recently, however, a class of stochastic search based methods have been shown to outperform these strategies. This approach involves repeated sampling of modifications to the program from a proposal distribution, which are accepted or rejected based on whether they preserve correctness, and the improvement they achieve. These methods, however, neither learn from past behaviour nor do they try to leverage the semantics of the program under consideration. Motivated by this observation, we present a novel learning based approach for code super-optimization. Intuitively, our method works by learning the proposal distribution using unbiased estimators of the gradient of the expected improvement. Experiments on benchmarks comprising of automatically generated as well as existing ("Hacker's Delight") programs show that the proposed method is able to significantly outperform state of the art approaches for code super-optimization.

연구 동기 및 목표

  • 스토크 프레임워크와 같은 확률적 코드 슈퍼최적화에서 고정된 비적응형 제안 분포의 한계를 해결하기 위해.
  • 입력 프로그램의 의미론적 및 구조적 특성에 적응하는 제안 분포를 학습함으로써 슈퍼최적화의 효율성과 품질을 향상시키기 위해.
  • 학습된 제안 분포가 균일하거나 규칙 기반의 제안 전략보다 더 빠르게 더 나은 최적화 결과를 도출할 수 있음을 입증하기 위해.
  • 수동으로 셋업된 프로그램(예: 'Hacker’s Delight'에서 추출한 프로그램)과 더 높은 구조적 다양성을 지닌 자동 생성 프로그램을 포함한 다양한 벤치마크에서 방법을 평가하기 위해.

제안 방법

  • 슈퍼최적화를 강화학습 문제로 재정의하여, 프로그램 효율성 향상도를 최대화하는 제안 분포를 학습하는 것을 목표로 한다.
  • 기대 향상도에 대한 제안 분포 파라미터의 기울기를 추정하기 위해 REINFORCE 알고리즘을 사용함으로써 엔드 투 엔드 학습이 가능해진다.
  • 제안 분포는 프로그램 특성에 조건부로 설정된 신경망(또는 간단한 바이어스)으로 모델링되어, 입력 프로그램의 문법적 및 의미적 구조에 적응할 수 있다.
  • 제안된 프로그램 변환은 향상도와 정확성에 기반해 수락 또는 기각되는 마르코프 체인 몬테카를로(MCMC) 샘플링 절차를 사용한다.
  • 학습 데이터는 입력 프로그램과 그에 해당하는 최적화 추적 기록으로 구성되며, 이는 지도 학습 전훈련 또는 반복적인 MCMC 샘플링을 통한 자기지도 학습을 가능하게 한다.
  • 성능은 프로그램 효율을 측정하는 비용 함수를 사용하며, 기준 방법 대비 상대적 점수 향상을 통해 성능을 추적한다.

실험 결과

연구 질문

  • RQ1학습된 제안 분포가 확률적 코드 슈퍼최적화에서 고정된 비적응형 제안 분포를 능가할 수 있는가?
  • RQ2프로그램 특성에 기반해 제안 분포를 조건화하면 수렴 속도가 빨라지고 최적화 품질이 향상되는가?
  • RQ3다양한 프로그램 벤치마크에서 이론적 최신 기법인 Stoke과 비교해 학습된 방법의 성능은 어떠한가?
  • RQ4이 방법은 구조적 다양성이 낮거나 높은 프로그램 유형 모두에 일반화 가능한가?

주요 결과

  • Hacker’s Delight 벤치마크에서, 단순한 조건부 없는 바이어스 모델이 스토크에서 사용하는 균일한 제안 분포를 능가하여 평균 상대 점수 63.56%를 기록했으며, 기준값은 78.15%였다.
  • 더 복잡한 자동 생성 벤치마크에서는 프로그램 특성에 조건부로 설정된 다층퍼셉트론(MLP)이 평균 상대 점수 62.27%를 기록하여 기준값 78.15%보다 뚜렷이 뛰어났다.
  • 단지 100회의 반복만으로도 학습된 제안 분포가 400회의 반복을 요구하는 균일한 제안 분포보다 더 나은 결과를 도출하여 더 빠른 수렴을 보였다.
  • 학습된 제안 분포는 여러 최적화 런에 걸쳐 기준 균일 분포보다 평균 프로그램 비용을 더 강력하고 일관되게 감소시켰다.
  • 학습된 제안 분포를 사용할 경우 20,000 연산/초의 처리 속도를 기록했으며, 기준 균일 분포는 60,000 연산/초였다. 이는 속도와 품질 사이에 합리적인 트레이드오���을 보여주었다.
  • 결과적으로 제안 분포를 학습하는 것이 가능하고 효과적이며, 특히 프로그램 구조에 기반해 모델을 조건화할 경우 더 뛰어난 최적화 결과를 도출할 수 있음을 보여주었다.

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

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

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

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