Elastic control of parallelism in concurrent systems

Loading...
Thumbnail Image

URL

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