본문 바로가기

Paper Reading/Compiler Optimization

GPTune: Multitask Learning for Autotuning Exascale Applications (PPoPP` 21)

Abs and Intro

엑사스케일 컴퓨팅 시대가 옴에 따라 점차 코드와 라이브러리는 거대해지고 있고, 이러한 모든 코드의 최적의 성능 및 성능 이식성을 달성하는 것은 점점 더 다루기 어려운 문제가 되었다.

대부분의 엑사스케일 애플리케이션 코드에는 성능에 영향을 미치는 조정 가능한 파라미터가 있으며, 종종 시뮬레이션에는 비용이 많이 드는 "함수 평가"가 수반되어 실행시간이 길거나나 많은 하드웨어 리소스(ex, 코어 수)가 필요하기에, 최적의 매개 변수를 찾기 위한 bruteforce “grid search” 접근법이 불가능하다.

→ Multitasking learning은 예측을 위해 추가적인 지식을 사용할 수 있을 때 유용하다는 것이 머신러닝 학계에서 증명되었다.

→ 이 논문에서는 이 패러다임을 이용하여 autotuning 프레임워크를 만드는데 사용하였으며, 이때 목표는 black-box로 여겨지는 어플리케이션 코드에 최적의 성능 파라미터를 찾는 것이다.

따라서 이 논문의 목표는

1) 런타임, 메모리 사용량, 정확도, 에너지 또는 메모리 제약 조건에서의 시간 최소화 등 다양한 측정 가능한 성능 메트릭 지원

2) 대규모 시스템에서 실행되는 분산-메모리 MPI 코드 지원

3) 시간이 지남에 따라 튜닝이 개선될 수 있도록 여러 실행의 튜닝 데이터 아카이빙 및 재사용 지원

4) 새로운 최적화 기술을 통합하여 튜닝 프로세스 개선

이며 위에서 설명한 바와 같이 핵심 아이디어는 베이지안 최적화에서 가우스 프로세스(GP)에multi task learning을 도입하는 것으로, 이를 이용하면 주어진 application의 multiple problem instance들을 동시에 조정할 수 있다.


Method

베이지안 최적화는 최적화를 위해 실제 objective function의 GP surrogate모델에 의존한다. 이 GP 모델은 실제 objective function보다 평가 비용이 훨씬 저렴하며, 최적으로 수렴할때까지 반복적으로 업데이트 될 수 있다. 이 베이지안 최적화 기법 중 Efficient Global Optimization (EGO) 을 사용하여, 탐색과 산출(exploration and exploitation)사이 균형을 맞춘다. 이때 위의 균형을 맞추기 위해, 모델에 의해 예측된 평균 값과 표준 편차를 모두 고려하는 특정 acquisition function(ex, Expected Improvement (EI)) 를 최적화 하는 search space에서의 최적화 지점을 찾는다.

그다음 그 지점을 비싼 블랙박스 objective function(병렬 기계에서 응용 프로그램을 실행하고 측정)을 통해 gradient 없이 평가되고, 이 해당 값은 GP 모델을 업데이트 하는데 사용된다.


다른 single-task learning 프레임워크와 비교하여, 이 논문에서 제안된 프레임워크는 최대 2048개의 코어를 사용하고, 모든 작업의 최소 80%에 대해, 최대 2.8배 더 나은 성능을 보였다.

또한 OpenTuner 및 HpBandSter와 같은 다른 최첨단 오토 튜너와 비교할 때, GPTune은 특히 적은 예산으로 훨씬 더 나은 성능을 달성한다.