dc.contributor.advisor | Kruliš, Martin | |
dc.creator | Šťavík, Petr | |
dc.date.accessioned | 2020-07-22T09:59:32Z | |
dc.date.available | 2020-07-22T09:59:32Z | |
dc.date.issued | 2020 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/119111 | |
dc.description.abstract | Graphics processing units (GPUs) were originally used solely for the purpose of graph- ics rendering. This changed with the introduction of technologies like CUDA that enabled to use graphics processors as any other computing device. However, writing an efficient program for GPUs, also called GPU kernel, is one of the most difficult programming disciplines. The latest research in the field suggests that these difficulties could be po- tentially mitigated with machine learning methods. One especially successful approach is based on the utilization of recurrent neural networks (RNNs) over different representa- tions of source code. In this work, we present two RNN-based solutions that are able to derive performance characteristics of a CUDA GPU kernel directly from its intermediate representation called PTX. We assess the applicability of our two methods in two GPU op- timization tasks. In heterogeneous device mapping task, our methods are able to achieve accuracies of around 82%, results that are slightly worse than the current state of the art. In a more challenging achieved occupancy task, where the goal is to correctly predict one out of ten classes, our two methods achieve accuracies above 50%. These promising results indicate great potential in additional research focused in a similar direction. 1 | en_US |
dc.description.abstract | Grafické výpočetní jednotky (GPU) byly původně používány výhradně pro účely grafického vykreslování. To se změnilo zavedením technologií jako je CUDA, které umožnily použití grafických procesorů jako kterýchkoliv jiných výpočetních zařízení. Psaní efektivního programu pro GPU, nazývaného také GPU kernel, je však jednou z nejnáročnějších programovacích disciplín. Nejnovější výzkum v této oblasti naznačuje, že tyto problémy by mohly být potenciálně zmírněny metodami strojového učení. Jeden obzvláště úspěšný přístup je založen na využití rekurentních neuronových sítí (RNNs) nad různými reprezentacemi zdrojového kódu. V této práci představujeme dvě řešení založená na RNNs, která jsou schopna odvodit výkonové charakteristiky CUDA GPU kernelu přímo z jeho mezikódu, který se nazývá PTX. Použitelnost námi vyvinutých dvou metod vyhodnocujeme ve dvou optimalizačních úlohách pro GPU. V první úloze jsou naše metody schopny dosáhnout přesnosti okolo 82 %, což jsou výsledky, které jsou pouze o málo horší než kterých dosahují nedávné práce v této oblasti. Při druhé, náročnější úloze, kde je cílem správně klasifikovat jednu z deseti tříd, dosahují naše dvě metody přesnosti nad 50%. Tyto slibné výsledky naznačují velký potenciál dalšího výzkumu, který by se ubíral podobným směrem. 1 | cs_CZ |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | machine learning | en_US |
dc.subject | neural networks | en_US |
dc.subject | GPU | en_US |
dc.subject | kernel | en_US |
dc.subject | optimization | en_US |
dc.subject | analysis | en_US |
dc.subject | strojové učení | cs_CZ |
dc.subject | neuronové sítě | cs_CZ |
dc.subject | GPU | cs_CZ |
dc.subject | kernel | cs_CZ |
dc.subject | optimalizace | cs_CZ |
dc.subject | analýza | cs_CZ |
dc.title | Analysing and Optimizing GPU Kernels with Machine Learning | en_US |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2020 | |
dcterms.dateAccepted | 2020-07-01 | |
dc.description.department | Department of Software Engineering | en_US |
dc.description.department | Katedra softwarového inženýrství | cs_CZ |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.identifier.repId | 218966 | |
dc.title.translated | Analýza a optimalizace GPU kernelů pomocí strojového učení | cs_CZ |
dc.contributor.referee | Straka, Milan | |
thesis.degree.name | Mgr. | |
thesis.degree.level | navazující magisterské | cs_CZ |
thesis.degree.discipline | Softwarové systémy | cs_CZ |
thesis.degree.discipline | Software Systems | en_US |
thesis.degree.program | Computer Science | en_US |
thesis.degree.program | Informatika | cs_CZ |
uk.thesis.type | diplomová práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra softwarového inženýrství | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Software Engineering | en_US |
uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
uk.faculty-abbr.cs | MFF | cs_CZ |
uk.degree-discipline.cs | Softwarové systémy | cs_CZ |
uk.degree-discipline.en | Software Systems | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Computer Science | en_US |
thesis.grade.cs | Výborně | cs_CZ |
thesis.grade.en | Excellent | en_US |
uk.abstract.cs | Grafické výpočetní jednotky (GPU) byly původně používány výhradně pro účely grafického vykreslování. To se změnilo zavedením technologií jako je CUDA, které umožnily použití grafických procesorů jako kterýchkoliv jiných výpočetních zařízení. Psaní efektivního programu pro GPU, nazývaného také GPU kernel, je však jednou z nejnáročnějších programovacích disciplín. Nejnovější výzkum v této oblasti naznačuje, že tyto problémy by mohly být potenciálně zmírněny metodami strojového učení. Jeden obzvláště úspěšný přístup je založen na využití rekurentních neuronových sítí (RNNs) nad různými reprezentacemi zdrojového kódu. V této práci představujeme dvě řešení založená na RNNs, která jsou schopna odvodit výkonové charakteristiky CUDA GPU kernelu přímo z jeho mezikódu, který se nazývá PTX. Použitelnost námi vyvinutých dvou metod vyhodnocujeme ve dvou optimalizačních úlohách pro GPU. V první úloze jsou naše metody schopny dosáhnout přesnosti okolo 82 %, což jsou výsledky, které jsou pouze o málo horší než kterých dosahují nedávné práce v této oblasti. Při druhé, náročnější úloze, kde je cílem správně klasifikovat jednu z deseti tříd, dosahují naše dvě metody přesnosti nad 50%. Tyto slibné výsledky naznačují velký potenciál dalšího výzkumu, který by se ubíral podobným směrem. 1 | cs_CZ |
uk.abstract.en | Graphics processing units (GPUs) were originally used solely for the purpose of graph- ics rendering. This changed with the introduction of technologies like CUDA that enabled to use graphics processors as any other computing device. However, writing an efficient program for GPUs, also called GPU kernel, is one of the most difficult programming disciplines. The latest research in the field suggests that these difficulties could be po- tentially mitigated with machine learning methods. One especially successful approach is based on the utilization of recurrent neural networks (RNNs) over different representa- tions of source code. In this work, we present two RNN-based solutions that are able to derive performance characteristics of a CUDA GPU kernel directly from its intermediate representation called PTX. We assess the applicability of our two methods in two GPU op- timization tasks. In heterogeneous device mapping task, our methods are able to achieve accuracies of around 82%, results that are slightly worse than the current state of the art. In a more challenging achieved occupancy task, where the goal is to correctly predict one out of ten classes, our two methods achieve accuracies above 50%. These promising results indicate great potential in additional research focused in a similar direction. 1 | en_US |
uk.file-availability | V | |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra softwarového inženýrství | cs_CZ |
thesis.grade.code | 1 | |
uk.publication-place | Praha | cs_CZ |