Show simple item record

dc.contributor.advisorElster, Anne C.
dc.contributor.advisorTørring, Jacob O.
dc.contributor.authorBjertnes, Lars
dc.date.accessioned2022-02-24T18:19:28Z
dc.date.available2022-02-24T18:19:28Z
dc.date.issued2021
dc.identifierno.ntnu:inspera:74730513:50556813
dc.identifier.urihttps://hdl.handle.net/11250/2981317
dc.description.abstractAutotuning oppgaver er nesten umulige for mennesker å gjennomføre. Den abstrakte relasjonen mellom maskinvare parametere og program ytelse, gjør parameter setting uegnet for hånd. Uten autotuning, mangler programvare low-level optimaliseringer, som resulterer i mindre ytelse. Tid krevende søkemetoder går ofte hånd i hånd med autotuning. Videreføringen av maskin læring (ML) kan minske disse tidskrevende søkeprosessene. Bruk av naturlig språk prosessering (NLP) basert ML på kildekode, for å gjennomføre autotuning oppgaver er ett voksende emne. Tidligere prosjekter har med suksess utført en rekke ulike autotuning oppgaver med flere typer kildekode språk. Mesteparten av denne kildekoden er relatert til CPU, og lite GPU kode er tilgjengelig. Med vårt LS-CAT prosjekt skapte vi ett datasett bestående av CUDA GPU kode. Denne avhandlingen implementer flere NLP-ML “pipelines” for å evaluere ML-basert «thread-coarsning» på vårt LS-CAT datasett. Flere modell konfigurasjoner var i stand til å slå både «random choice», 0.940, og kun velge største «thread-block» størrelse (1024), 0.9437. Den beste modellen scoret 0.9483, som gir en gjennomsnittlig ytelse økning på 0.49 prosent over å velge kun den største blokken. Avhandlingen gjorde flere oppdagelser. Implementeringen av «self-attention» mekanismer virket positivt i læringsprosessen ved å motvirke over-fitting. Valget av underliggende metodologi er viktig, og «multi-label» metoden virket best. Sammenlignet med datasettet fra tidligere forsøk, ga vårt LS-CAT datasetts høyere antall mulige «thread-coarsning» nivåer et falskt inntrykk av lavere ytelse. Valget av «embedding” I tidligere arbeid «inst2vec» var ute av stand til å tolke rundt halvparten av «CUDA» kilde koden, som resulterte i høyt tap av data. Måter å håndtere dette og andre ideer for fremtidig arbeid er også inkludert i denne avhandlingen.
dc.description.abstractAutotuning tasks are almost impossible for humans to perform. The abstract relation between hardware parameters and program performance makes setting hardware parameters a far too complex task for any human. Without autotuning, software ends up missing low-level optimizations, resulting in lower performance. Traditionally time-consuming trial and error search methods have been the staple of autotuning. The emergence of machine learning (ML) could diminish these time-consuming searches. Applying Natural language processing (NLP) based ML methods to source code as a means to perform autotuning-oriented tasks is a growing topic. The earlier projects have, with success, performed a range of different autotuning tasks using multiple source code languages. However, most of the source code data is CPU-oriented, with very little GPU code. Unsatisfied with this, our LS-CAT (Large-Scale CUDA AutoTuning) project used CUDA GPU-based kernels and generated a dataset to perform thread-coarsening. This thesis implements several custom NLP-ML pipelines to evaluate ML-based thread-coarsening using our LS-CAT dataset. Several model configurations were able to beat both random choice, 0.9400, and the only selecting the largest thread-block (1024), 0.9437. Finally, the best model achieves a score of 0.9483, giving an average performance increase and speedup of 0.49 percent over the largest thread-block. This project made several discoveries. The implementation of self-attention mechanisms proved beneficial in the learning process by counteracting over-fitting. The choice of underlying methodology is important, with a multi-label method outperforming the rest. Compared to the dataset from cummins, our LS-CAT dataset's higher number of thread-coarsening levels gave a false impression of lower performance. The choice of embedding in earlier works inst2vec was unable to parse around half of the CUDA source code LLVM IR tokens, resulting in high data loss. Approaches on how to address this and other ideas for future work are also included in this thesis.
dc.languageeng
dc.publisherNTNU
dc.titleApplying Natural-Language-Processing-Based Machine-Learning Techniques to our Large Scale CUDA AutoTuning Dataset
dc.typeMaster thesis


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record