핵심 개념
기계 학습 모델을 활용하여 컴파일러 최적화 결정을 개선하여 프로그램 성능을 향상시킬 수 있다.
초록
이 논문은 ACPO(AI-Enabled Compiler-driven Program Optimization)라는 새로운 프레임워크를 소개한다. ACPO는 LLVM 컴파일러에 기계 학습 모델을 쉽게 통합할 수 있는 도구와 라이브러리를 제공한다.
ACPO의 주요 기능은 다음과 같다:
- 컴파일러 개발자와 기계 학습 전문가 간의 협업을 촉진하기 위한 간단하고 포괄적인 API 제공
- 컴파일러 코드베이스와 기계 학습 프레임워크 간의 분리를 통해 상호 의존성 제거
- 루프 언롤링과 함수 인라이닝 최적화 사례 제시
실험 결과, ACPO의 루프 언롤링 모델은 Polybench 벤치마크에서 LLVM의 O3 최적화 대비 평균 4% 성능 향상을 달성했다. 또한 함수 인라이닝 모델을 추가하면 Polybench와 Cbench에서 각각 최대 4.5%와 2.4%의 성능 향상을 보였다.
통계
루프 언롤링 최적화로 Polybench의 Floyd-Warshall 벤치마크에서 49.3%의 성능 향상을 달성했다.
함수 인라이닝 최적화로 Cbench의 security_sha 벤치마크에서 27%의 성능 향상을 달성했다.
인용구
"기계 학습 모델을 활용하여 컴파일러 최적화 결정을 개선하면 프로그램 성능을 향상시킬 수 있다."
"ACPO는 컴파일러 개발자와 기계 학습 전문가 간의 협업을 촉진하기 위한 간단하고 포괄적인 API를 제공한다."