Optimization Techniques for Auto-tuning GPUs: An Empirical Study of Image-based GPU Kernels
Description
Full text not available
Abstract
Med den moderne utviklingen av datamaskinarkitektur, spesielt med utviklingen av akseleratorerslik som GPUer(Graphics Processing Unit), så blir det stadig vanskeligere åskrive effektive programmer. Når disse arkitekturene i tillegg endrer seg fra år til år, så blirdet enda vanskeligere å få utnyttet ytelsen til systemene. Av denne grunnen har vi sett enøkning av interesse for empirisk auto-tuning de siste tiårene.Selv om nye auto-tuning algoritmer regelmessig blir publisert, så er det likevel en betydeligutfordring å sammenligne disse på en god måte. I denne oppgaven presenterer vi etempirisk studie over de mest avanserte auto-tuning algoritmene i feltet. Vi sammenlignerdem ved å variere en rekke faktorer, inkludert eksempelstørrelser, standard programmerog datamaskinarkitekturer. Dette eksponerer at det ideelle valget av auto-tuning algoritmeer sterkt avhengig av antall eksempler som algoritmen blir matet med. Våre resultater giny viten, ved å vise at ingen av metodene våre utkonkurrerer alle andre for alle størrelserav prøver.Vi sammenligner Tilfeldig Søk(RS), Random Forest Regression(RF), AUMA, GenetiskeAlgoritmer(GA), Bayesisk Optimalisering med Gaussiske Prosesser (BO GP) og BayesiskOptimalisering med Tree-Parzen Estimators(BO TPE).Resultatene våres viser at BO GP utkonkurrerer de andre algoritmene i de fleste tilfellermed eksempelstørrelser mellom 25 og 100, mens GA normalt utkonkurrerer de andre forstørrelser fra 200 og videre. Den optimale algoritmen kan variere avhengig av den spesifikkekombinasjonen av benchmark og arkitektur, spesielt for lave eksempelstørrelser sliksom 25 hvor BO TPE eller AUMA ofte gjør det bedre. Studiet våres viser at veldig lave eksempelstørrelserer underrepresentert i faglitteraturen. Resultatene våres viser at selv omBO GP gjør det bra generelt sett for eksempelstørrelse 25, så er resultatene sterkt avhengigav benchmarken og arkitekturen. Noen ganger gjør BO GP det betydelig dårligere enn RSi disse tilfellene. Vi oppfordrer dermed til mer forskning på algoritmer for veldig laveeksempelstørrelser.Generelt er det størst forbedring sammenlignet med RS ved lave eksempelstørrelser,fra 25 til 100. Etterhvert som eksempel størrelsene vokser, så minker gapet mellom demodel-baserte metodene og RS. Det optimale valget for model-baserte algoritmer sammenlignetmed RS for eksempelstørrelse 25, 50, 100, 200, og 400 har gjennomsnittsverdipå henholdshvis 1.16x, 1.18x, 1.14x, 1.09x og 1.08x, på tvers av all benchmarks ogarkitekturer.Denne eksperimentelle metodikken viser et større behov for empirisk nøyaktighet nårman presenterer nye auto-tuning algoritmer. Vi publiserer herved våres resultater sammenmed en fullstendig kodebase og alle våre rådata, slik at det akademiske miljøet har alleressurser tilgjengelig for videre studier. Vi presenterer også viktig videre arbeid i sluttenav rapporten. With advances in computing systems, especially with the complexities of modern accelerators,such as GPUs (Graphic Processing Units), it has become challenging to writeefficient programs that take advantage of the available parallelism and complex memorysystems. Added to that, these architectures change yearly, if not more often, further challenginghow to get the desired performance out of these systems. For this reason, empiricalauto-tuning has gained interest during the past decades.While new auto-tuning algorithms are regularly presented and published, comparingthese auto-tuning algorithms is a deceptively difficult task. In this thesis, a thorough empiricalstudy of state-of-the-art auto-tuning algorithms is conducted to compare them ona range of sample sizes, benchmarks and architectures. Our work exposes that the idealauto-tuning algorithm is heavily dependent on the sample size, and shows that no singlestate-of-the-art algorithm outperforms the rest for all sample sizes.We compare Random Search (RS), Random Forest Regression (RF), AUMA, GeneticAlgorithms (GA), Bayesian Optimization with Gaussian Processes (BO GP) and BayesianOptimization with Tree-Parzen Estimators (BO TPE). Our results show that BO GP outperformsthe other algorithms in most scenarios with sample sizes from 25 to 100, while GAusually outperforms the others for sample sizes 200 and beyond. For very low sample sizeslike 25, BO TPE and AUMA sometimes outperforms BO GP for specific benchmarks andarchitectures. Our survey shows that very low samples sizes like 25, are severely underrepresentedin previous research. We therefore encourage more research into algorithmsfor very low sample sizes.Our study found that in general, the most advantage over RS can be gained in thelower range of sample sizes, with sample sizes from 25 to 100. As the sample sizesgrows larger, the gap between model-based approaches and RS decreases. The optimalchoice of a model-based algorithm for samples sizes 25, 50, 100, 200 and 400 have meanimprovements over RS of 1.16x, 1.18x, 1.14x, 1.09x and 1.08x across all benchmarks andarchitectures.This experimental methodology exposes a greater need to examine a wide range offactors with empirical rigorousness when presenting novel auto-tuning algorithms. Wepublish our results together with our full code base and all our raw data for the researchcommunity to perform further analysis. We also provide directions for important futurework.