[PLDI'08] Pluto

A practical automatic polyhedral parallelizer and locality optimizer

Uday Bondhugula on June 7, 2008
doi.org
obsidian에서 수정하기

Abstract

병렬성과 지역성을 동시에 고려하여 일반 프로그램(불완전하게 중첩된 루프 시퀀스)을 최적화할 수 있는 자동 다면체 소스-소스 변환 프레임워크의 설계와 구현을 소개합니다. 이 작업을 통해 현재 프로덕션 컴파일러에서 가능한 수준을 훨씬 뛰어넘는 다면체 모델에서의 분석 모델 기반 자동 변환의 실용성을 보여줍니다. 이전 작업과 달리 우리의 접근 방식은 정수 선형 최적화 프레임워크에 의해 구동되는 엔드투엔드 완전 자동화로, 아핀 변환을 사용하여 병렬성과 지역성을 위한 타일링의 좋은 방법을 찾는 명시적인 관점을 취합니다. 이 프레임워크는 C 프로그램 섹션에서 OpenMP 병렬 코드를 자동으로 생성하는 도구로 구현되었습니다. 이 도구의 실험 결과에 따르면 연구 커뮤니티의 최신 컴파일러 프레임워크와 최고의 네이티브 프로덕션 컴파일러에 비해 멀티코어에서 로컬 및 병렬 실행 속도가 매우 빨라졌습니다. 또한 이 시스템을 사용하면 임의로 중첩된 일반적인 루프 시퀀스에 대해 강력한 경험적/반복적 최적화를 쉽게 사용할 수 있습니다.

Figure

figure 1 figure 1

figure 2 figure 2

figure 3 figure 3

figure 5 figure 5

figure 5.2 figure 5.2

figure 6 figure 6

figure 7 figure 7

figure 8 figure 8

figure 9 figure 9

figure 10 figure 10

figure 11 figure 11

figure 12 figure 12

figure 13 figure 13

Table