WarmTuner: 오프라인-온라인 강화학습 (Reinforcement Learning)을 통한 컴파일러 오토튜닝 (Autotuning)용
요약
WarmTuner는 오프라인-온라인 강화학습을 활용하여 컴파일러 최적화 플래그를 자동으로 설정하는 프레임워크입니다. 과거 데이터를 통해 프로그램 조건부 정책을 학습하고, 실시간 피드백을 통해 이를 정교화하여 최적의 성능을 도출합니다.
핵심 포인트
- 오프라인-온라인 강화학습을 통한 컴파일러 오토튜닝 구현
- GRPO 알고리즘을 사용하여 별도의 가치 모델 없이 온라인 업데이트 수행
- GCC 15.2.0 환경에서 평균 1.732배의 속도 향상 달성
- 과거 데이터와 실시간 피드백을 결합하여 탐색 효율성 극대화
컴파일러 (Compilers)는 고수준 프로그램을 기계어 (machine code)로 변환하는 근본적인 소프트웨어 도구입니다. 현대의 컴파일러는 생성된 코드의 성능을 향상시키기 위해 최적화 플래그 (optimization flag)를 통해 각각 켜거나 끌 수 있는 수백 개의 최적화 기법을 노출합니다. 그러나 가능한 플래그 조합의 수는 기하급수적으로 증가하여, 주어진 대상 프로그램에 잘 맞는 플래그 구성을 찾는 것을 어렵게 만듭니다. 기존의 컴파일러 오토튜닝 (auto-tuning) 기술은 탐색 공간 (search space)을 가지치기하거나, 탐색 편향 (search biases)을 주입하거나, 구성 성능을 예측함으로써 튜닝 비용을 줄입니다. 일부 기술은 프로그램의 특징을 활용하기도 하지만, 이들이 과거 데이터로부터 추출한 지식은 탐색이 시작되면 고정됩니다. 이후의 런타임 피드백 (runtime feedback)은 탐색 자체만을 안내할 뿐, 사전 지식 (prior)을 개선하지는 못합니다. 결과적으로, 이 사전 지식이 대상 프로그램과 일치하지 않을 때, 이러한 방법들은 탐색이 좋은 구성에 도달하기 전까지 제한된 온라인 예산 (online budget)의 상당 부분을 낭비하게 됩니다.
우리는 대신 과거 기록을 전체 플래그 공간에 대해 각 플래그의 설정을 예측하고 대상 프로그램에 적응할 수 있는 프로그램 조건부 정책 (program-conditioned policy)으로 전환하는 오프라인-온라인 강화학습 (offline-to-online reinforcement learning) 프레임워크인 WarmTuner를 제안합니다. 오프라인 단계에서 WarmTuner는 과거의 좋은 구성들로부터 전체 플래그 공간에 대한 이 프로그램 조건부 정책을 학습합니다. 온라인 단계에서는 실제 컴파일-실행 피드백 (compile-run feedback)을 사용하여 대상 프로그램에서 동일한 정책을 정교화하며, 이를 통해 정책이 과거 데이터에 국한되지 않고 측정된 속도 향상 (speedups)에 의해 구동되도록 합니다. 우리는 동일한 라운드의 후보들을 비교하여 별도의 가치 모델 (value model)을 피하는 Group Relative Policy Optimization (GRPO)을 사용하여 온라인 업데이트를 구현합니다. 우리는 cBench 및 PolyBench를 사용하여 GCC 15.2.0에서 WarmTuner를 평가합니다. 결과에 따르면 WarmTuner는 GCC -O3 대비 평균 1.732배의 속도 향상을 달성하였으며, 30개 프로그램 중 14개에서 최고의 결과를 얻어 비교 대상 기술들을 크게 능가했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기