[CGO'18] Tiramisu

Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code

Riyadh Baghdadi, et.al. on April 27, 2018
doi.org
obsidian에서 수정하기

Abstract

이 백서에서는 멀티코어, GPU, 분산 시스템을 포함한 여러 플랫폼을 위한 고성능 코드를 생성하도록 설계된 다면체 프레임워크인 티라미수를 소개합니다. 티라미수는 이러한 시스템을 대상으로 할 때 발생하는 복잡성을 명시적으로 관리하기 위해 새로운 명령어가 포함된 스케줄링 언어를 도입했습니다. 이 프레임워크는 이미지 처리, 스텐실, 선형 대수 및 딥 러닝 분야를 위해 설계되었습니다. 티라미수는 다면체 모델에 기반한 유연한 표현과 최적화를 세밀하게 제어할 수 있는 풍부한 스케줄링 언어라는 두 가지 주요 특징을 가지고 있습니다. 티라미수는 알고리즘, 루프 변환, 데이터 레이아웃, 통신을 완전히 분리할 수 있는 4단계 중간 표현을 사용합니다. 이러한 분리는 동일한 알고리즘으로 여러 하드웨어 아키텍처를 타겟팅하는 작업을 간소화합니다. 이미지 처리, 딥 러닝, 선형 대수 벤치마크 세트를 작성하여 Tiramisu를 평가하고 이를 최신 컴파일러 및 수작업으로 튜닝된 라이브러리와 비교합니다. 멀티코어 CPU, GPU, 분산 머신 등 다양한 하드웨어 아키텍처에서 기존 컴파일러와 라이브러리의 성능과 비슷하거나 더 뛰어난 성능을 보이는 것을 확인할 수 있습니다.

Figure

figure 1 figure 1

figure 2 figure 2

figure 3 figure 3

figure 4 figure 4

figure 5 figure 5

figure 6 figure 6

figure 7 figure 7

Table

table I table I

table II table II