Elastic control of parallelism in concurrent systems

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2014
Department
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
63 s.
Series
Abstract
Using heterogeneous systems with accelerators, especially graphics processing units (GPUs), for high-performance computing is an emerging field. Dynamic variation of the resource demands of a parallel computation task can lead to significant underutilization of the devices, as the remaining resources in an accelerator may not allow for additional tasks to run. Computing on an accelerator, a graphics processing unit in particular, is rather rigid. Computations are run one at a time by a single user at a time to completion and there is very limited support for running multiple tasks concurrently. Additionally, a computational task may require more resources than a device can offer. These issues necessitate elastic computing, where the resource demands of a task can be altered to make the task fit the remaining resources. Elastic computing is particularly useful in video encoding and decoding, as the various primitives with differing resource requirements and computational dimensions can be elastically offloaded to accelerators. This thesis presents CUDA Wrapper, an API-level virtualization layer prototype for GPUs, implemented on top of CUDA, for dynamically and elastically running computational kernels on multiple GPUs while exploiting task-level parallelism both on an inter-and intra-device level. The prototype assumes that elastic kernels are used. This allows for changing the computational dimensions of kernel launches to make them fit the available resources. The GPUs are accessed through a resource pool which abstracts the GPUs away, allowing the application to be completely agnostic to the number of GPUs available. The approach is shown to work rather well. CUDA Wrapper accurately estimates the resource usage of the GPUs and achieves reasonable occupancy levels with an HEVC-inspired workload.

Kiihdyttimiä, erityisesti grafiikkakiihdyttimiä sisältävien heterogeenisten järjestelmien käyttö suurteholaskentaan on kehittyvä ala. Rinnakkaisen laskentatehtävän resurssivaatimusten dynaaminen vaihtelu voi johtaa merkittävään laitteiden alikäyttöön koska kiihdyttimen jäljellä olevat resurssit eivät välttämättä salli lisälaskentatehtävien ajamista. Laskenta kiihdyttimellä, erityisesti grafiikkakiihdyttimellä, on varsin jäykkää. Laskennat ajaa yksi käyttäjä yksi kerrallaan alusta loppuun ja tuki useiden tehtävien ajolle rinnakkain on hyvin rajoitettu. Lisaksi laskentatehtävä voi vaatia enemmän resursseja kuin laite voi tarjota. Nämä seikat tekevät välttämättömäksi elastisen laskennan, jossa laskentatehtävän resurssivaatimuksia voidaan muuttaa sen sovittamiseksi jäljellä oleviin resursseihin. Elastinen laskenta on erityisen hyödyllistä videokoodauksessa ja -dekoodauksessa, silla monenlaiset primitiivit erilaisilla resurssivaatimuksilla voidaan siirtää kiihdytinten laskettaviksi. Tämä diplomityö esittää CUDA Wrapperin, API-tason virtualisointikerrosprototyypin, joka on toteutettu CUDAn päälle laskentakernelien ajamiseksi dynaamisesti ja elastisesti useilla grafiikkakiihdyttimillä käyttäen hyväksi tehtävätason rinnakkaisuutta sekä laitteiden välillä että yksittäisen laitteen sisällä. Prototyyppi olettaa, että kernelit ovat elastisia. Tämä mahdollistaa kernelkäynnistysten laskennallisten dimensioiden muuttamisen niiden sovittamiseksi saatavilla oleviin resursseihin. Grafiikkakiihdyttimiin päästään käsiksi resurssipoolin kautta, joka abstrahoi kiihdyttimet mahdollistaen sovelluksen täydellisen agnostisuuden kiihdytinten määrän suhteen. Tämän lähestymistavan näytetään toimivan varsin hyvin. CUDA Wrapper arvioi täsmällisesti grafiikkakiihdytinten resurssienkäytön ja saavuttaa kohtuullisia käyttöastetasoja kuormalla, joka on HEVCin inspiroima.
Description
Supervisor
Saikkonen, Heikki
Thesis advisor
Hirvisalo, Vesa
Keywords
kiihdyttimet, grafiikkasuorittimet, virtualisointi, HEVC, accelerators, graphics processing units, virtualization
Other note
Citation