[논문 리뷰] Tiramisu: a polyhedral compiler for expressing fast and portable code
Tiramisu는 다각형 표현과 풍부한 스케줄링 언어를 조합하여 다중코어 CPU, GPU 및 분산 시스템에서 고성능으로 실행되며 이식 가능한 코드를 생성하는 다각형 컴파일러이다. 네 수준의 중간 표현을 통해 알고리즘, 루프 변환, 데이터 레이아웃 및 통신을 분리함으로써 영상 처리, 스텐실 계산, 선형 대수 및 딥러닝 분야에서 다양한 아키텍처에서 최신 기술 수준의 성능을 달성한다.
This paper introduces Tiramisu, a polyhedral framework designed to generate high performance code for multiple platforms including multicores, GPUs, and distributed machines. Tiramisu introduces a scheduling language with novel extensions to explicitly manage the complexities that arise when targeting these systems. The framework is designed for the areas of image processing, stencils, linear algebra and deep learning. Tiramisu has two main features: it relies on a flexible representation based on the polyhedral model and it has a rich scheduling language allowing fine-grained control of optimizations. Tiramisu uses a four-level intermediate representation that allows full separation between the algorithms, loop transformations, data layouts, and communication. This separation simplifies targeting multiple hardware architectures with the same algorithm. We evaluate Tiramisu by writing a set of image processing, deep learning, and linear algebra benchmarks and compare them with state-of-the-art compilers and hand-tuned libraries. We show that Tiramisu matches or outperforms existing compilers and libraries on different hardware architectures, including multicore CPUs, GPUs, and distributed machines.
연구 동기 및 목표
- 영상 처리, 스텐실, 선형 대수 및 딥러닝과 같은 성능이 중요한 분야에서 이질적인 아키텍처에 대해 이식 가능하고 고성능 코드를 작성하는 데 도전하는 것.
- 다양한 하드웨어 플랫폼 간의 이식성을 유지하면서도 루프 최적화 및 데이터 레이아웃 변환에 대한 세밀한 제어를 가능하게 하는 것.
- 네 수준의 중간 표현을 통해 알고리즘 명세를 스케줄링 및 데이터 레이아웃과 같은 저수준 구현 세부 정보에서 분리하는 것.
- 자동화된 정밀 최적화를 통해 기존 컴파일러와 수작업 최적화 라이브러리보다 다중코어 CPU, GPU 및 분산 시스템에서 뛰어난 성능을 달성하는 것.
- 핵심 알고리즘을 다시 작성하지 않고도 다양한 아키텍처를 간편하게 대상으로 지정할 수 있는 통합 프레임워크를 제공하는 것.
제안 방법
- 네 수준의 중간 표현을 사용하여 알고리즘 정의, 루프 변환, 데이터 레이아웃 및 통신 패턴을 분리한다.
- 다중코어, GPU 및 분산 시스템을 위한 복잡한 최적화를 표현할 수 있도록 확장된 새로운 스케줄링 언어를 적용한다.
- 다각형 모델을 사용하여 중첩 루프와 데이터 의존성을 표현하고 변환하는 데灵活性을 제공한다.
- CPU, GPU 및 분산 클러스터를 포함한 다양한 백엔드에 대해 자동 코드 생성을 지원한다.
- 타일링, 병렬화, 벡터화 및 데이터 레이아웃 변환과 같은 최적화는 모두 스케줄링 언어를 통해 표현된다.
- 고수준 알고리즘 설계를 저수준 하드웨어 특화 세부 정보에서 분리함으로써 이식 가능한 성능을 달성한다.
실험 결과
연구 질문
- RQ1다각형 컴파일러가 다양한 아키텍처에서 기존 컴파일러 및 수작업 최적화 라이브러리와 비교해 유사하거나 뛰어난 성능을 달성할 수 있는가?
- RQ2동일한 알고리즘이 통합된 중간 표현을 통해 다중코어 CPU, GPU 및 분산 시스템에 효율적으로 적용될 수 있는가?
- RQ3제안된 스케줄링 언어가 이종 시스템을 위한 복잡한 최적화를 표현하는 데 얼마나 효과적인가?
- RQ4네 수준의 IR에서의 관심사 분리는 성능 손실 없이 포팅 및 최적화를 단순화할 수 있는가?
- RQ5이 프레임워크는 영상 처리, 딥러닝 및 선형 대수 분야에서 이식 가능한 고성능 코드 생성을 가능하게 하는가?
주요 결과
- Tiramisu는 영상 처리, 딥러닝 및 선형 대수 워크로드에서 다중코어 CPU, GPU 및 분산 머신에서 기존 컴파일러와 수작업 최적화 라이브러리와 비교해 유사하거나 뛰어난 성능을 달성한다.
- 네 수준의 중간 표현은 알고리즘 논리와 스케줄링, 데이터 레이아웃을 성공적으로 분리하여 다양한 아키텍처 간의 효율적 포팅을 가능하게 한다.
- 스케줄링 언어를 통해 최적화에 대한 세밀한 제어가 가능하며, 이종 시스템에서 고성능을 달성하기 위해 필요한 복잡한 변환을 지원한다.
- 수동으로 저수준 최적화를 조정할 필요 없이도 높은 성능을 달성함으로써, 자동화이면서도 표현력 있는 최적화 파이프라인의 효과성을 입증한다.
- Tiramisu는 다양한 플랫폼 간에 이식 가능하고 고성능인 코드 생성을 가능하게 하여 아키텍처에 특화된 수작업 최적화의 필요성을 줄인다.
- 실세계 벤치마크에 대한 평가 결과, Tiramisu는 모든 목표 도메인에서 최신 기술 수준의 도구와 비교해 경쟁력 있거나 뛰어난 성능을 제공하는 것으로 확인되었다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.