Skip to main content
QUICK REVIEW

[논문 리뷰] AutoPhase: Juggling HLS Phase Orderings in Random Forests with Deep Reinforcement Learning

Ameer Haj-Ali, Qijing Huang|arXiv (Cornell University)|2020. 03. 15.
Software Engineering Research인용 수 16
한 줄 요약

AutoPhase는 랜덤 포레스트를 사용하여 검색 공간을 축소하는 방식으로 고수준 합성(HLS) 컴파일에서 최적의 단계 순서를 자동으로 결정하는 딥 강화학습 프레임워크를 제안한다. 훈련에 단지 100개의 합성 프로그램을 사용한 후에도 다양한 벤치마크에 대해 효과적으로 일반화되며, -O3 최적화보다 28% 뛰어난 성능을 달성한다.

ABSTRACT

The performance of the code a compiler generates depends on the order in which it applies the optimization passes. Choosing a good order--often referred to as the phase-ordering problem, is an NP-hard problem. As a result, existing solutions rely on a variety of heuristics. In this paper, we evaluate a new technique to address the phase-ordering problem: deep reinforcement learning. To this end, we implement AutoPhase: a framework that takes a program and uses deep reinforcement learning to find a sequence of compilation passes that minimizes its execution time. Without loss of generality, we construct this framework in the context of the LLVM compiler toolchain and target high-level synthesis programs. We use random forests to quantify the correlation between the effectiveness of a given pass and the program's features. This helps us reduce the search space by avoiding phase orderings that are unlikely to improve the performance of a given program. We compare the performance of AutoPhase to state-of-the-art algorithms that address the phase-ordering problem. In our evaluation, we show that AutoPhase improves circuit performance by 28% when compared to using the -O3 compiler flag, and achieves competitive results compared to the state-of-the-art solutions, while requiring fewer samples. Furthermore, unlike existing state-of-the-art solutions, our deep reinforcement learning solution shows promising result in generalizing to real benchmarks and 12,874 different randomly generated programs, after training on a hundred randomly generated programs.

연구 동기 및 목표

  • 고수준 합성(HLS) 컴파일러에서 성능에 큰 영향을 미치는 NP-완전 단계 순서 문제를 해결하기 위해.
  • 다양한 프로그램 간에 일반화되지 못하는 경향이 있는 히ュ리스틱 기반 단계 순서 전략에 대한 의존도를 줄이기 위해.
  • 프로그램 특성에 기반하여 동적으로 최적의 패ass 순서를 선택하는 학습 기반 접근법을 개발하기 위해.
  • 훈련 샘플 수를 최소화하면서도 기존 최첨단 단계 순서 기법보다 성능을 향상시키기 위해.
  • 제한된 훈련 후 실제 벤치마크와 광범위한 랜덤 생성 프로그램 세트에 대한 일반화 능력을 평가하기 위해.

제안 방법

  • LLVM 툴체인 내에서 HLS 컴파일을 위한 최적의 단계 순서 정책을 학습하기 위해 딥 강화학습을 활용한다.
  • 프로그램 특성과 패스 효과성 간의 상관관계를 모델링하기 위해 랜덤 포레스트를 사용하여 검색 공간을 효율적으로 축소한다.
  • 프로그램 고유의 특성을 기반으로 성능 향상 가능성이 높은 컴파일 패스를 예측하여 후보 단계 순서의 수를 줄인다.
  • 100개의 랜덤 생성 프로그램으로만 훈련된 강화학습 에이전트를 통해 12,874개의 추가 합성 및 실제 벤치마크 프로그램으로 일반화한다.
  • 학습된 정책을 컴파일 플로우에 통합하여 적응적 단계 순서 설정을 통해 실행 시간을 최소화한다.

실험 결과

연구 질문

  • RQ1수동으로 설계된 히ュ리스틱에 의존하지 않고도 딥 강화학습이 HLS 컴파일에서 최적의 단계 순서를 효과적으로 학습할 수 있는가?
  • RQ2특성 기반 패스 효과성 예측을 위한 랜덤 포레스트의 통합이 단계 순서 문제의 검색 효율성에 어떻게 기여하는가?
  • RQ3소규모 합성 프로그램 세트로 훈련된 모델이 실제 세계 및 다양한 벤치마크 프로그램으로 일반화되는 정도는 어느 정도인가?
  • RQ4기존 최첨단 단계 순서 기법과 비교해 AutoPhase의 성능과 샘플 효율성은 어떻게 되는가?
  • RQ5학습된 정책이 다양한 프로그램 유형과 워크로드에서 일관된 성능 향상을 달성할 수 있는가?

주요 결과

  • AutoPhase는 기본 -O3 컴파일러 최적화 플래그 대비 회로 성능을 28% 향상시킨다.
  • 훈련 샘플 수를 적게 요구하면서도 최첨단 단계 순서 솔루션과 경쟁 가능한 성능을 달성한다.
  • 단지 100개의 랜덤 생성 프로그램으로 훈련된 후에도 AutoPhase는 실제 벤치마크를 포함한 12,874개의 서로 다른 프로그램으로 효과적으로 일반화된다.
  • 패스 효과성 예측을 위한 랜덤 포레스트의 사용은 검색 공간을 크게 줄여 훈련 효율성을 향상시킨다.
  • 딥 강화학습 정책은 뛰어난 일반화 능력을 보이며, 다양한 프로그램 시나리오에서 히ュ리스틱 기반 접근법을 능가한다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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