Core Concepts
LOOPer는 폴리헤드럴 컴파일러에서 복잡한 코드 변환을 지원하고 다중 루프 중첩 및 비직사각형 반복 영역을 가진 프로그램을 최적화할 수 있는 첫 번째 딥러닝 기반 폴리헤드럴 자동 스케줄러이다.
Abstract
이 논문은 LOOPer, 폴리헤드럴 컴파일러를 위한 새로운 딥러닝 기반 자동 코드 최적화기를 소개한다. LOOPer는 기존 폴리헤드럴 컴파일러의 한계를 극복하고자 한다.
첫째, LOOPer는 복잡한 일련의 폴리헤드럴 변환을 탐색할 수 있다. 이를 통해 다양한 코드 변환을 적용할 수 있다.
둘째, LOOPer는 다중 루프 중첩 및 비직사각형 반복 영역을 가진 프로그램을 지원한다. 이를 통해 더 많은 프로그램을 최적화할 수 있다.
LOOPer의 핵심 구성 요소는 탐색 공간 탐색 모듈과 평가 모듈이다. 탐색 공간 탐색 모듈은 변환 후보를 생성하고 탐색 전략을 정의한다. 평가 모듈은 딥러닝 기반 비용 모델을 사용하여 변환 후보의 품질을 평가한다.
LOOPer는 PolyBench 벤치마크에서 Tiramisu 대비 1.59배, Pluto 대비 1.34배의 성능 향상을 보였다. 이를 통해 LOOPer가 기존 폴리헤드럴 컴파일러를 능가하는 성능을 달성할 수 있음을 보여준다.
Stats
PolyBench 벤치마크에서 LOOPer는 Tiramisu 대비 1.59배, Pluto 대비 1.34배의 성능 향상을 보였다.
Quotes
"LOOPer는 폴리헤드럴 컴파일러에서 복잡한 코드 변환을 지원하고 다중 루프 중첩 및 비직사각형 반복 영역을 가진 프로그램을 최적화할 수 있는 첫 번째 딥러닝 기반 폴리헤드럴 자동 스케줄러이다."
"LOOPer는 PolyBench 벤치마크에서 Tiramisu 대비 1.59배, Pluto 대비 1.34배의 성능 향상을 보였다."