AAU Studenterprojekter - besøg Aalborg Universitets studenterprojektportal
Et kandidatspeciale fra Aalborg Universitet
Book cover


CUDAfy og Corecalc

Oversat titel

CUDAfy and Corecalc

Forfatter

Semester

4. semester

Uddannelse

Udgivelsesår

2016

Antal sider

28

Resumé

Projektet undersøger, om GPU-beregninger kan gøres lettere tilgængelige ved at bruge et regnearksprogram som platform for at “kode” til GPU’en. Med udgangspunkt i Corecalc og Funcalc (begge i C#) gennemføres først benchmarks af matrixmultiplikation på tre biblioteker (CUDA, C++ AMP og CUDAfy) for at vurdere egnethed og hastighed. På baggrund af disse tests og sprogligt match vælges CUDAfy, hvorefter der udvikles en regnearksfunktion, som kan afkode et udtryk via et abstrakt syntakstræ og udføre beregningen på GPU uden runtime-kompilering. Projektet beskriver en enkel håndtering af tråd- og blokstørrelser på tværs af GPU-kort og anvender Mark4-mikrobenchmarks til tidsmåling. De foreløbige resultater indikerer, at offloading til GPU er tidsmæssigt fordelagtigt, når de udtryk, der beregnes, er tilstrækkeligt store, mens overhead som dataoverførsel kan dominere ved små opgaver.

This project explores whether GPU computation can be made more accessible by using a spreadsheet program as the medium for “coding” to the GPU. Using the open-source C# spreadsheet platforms Corecalc and Funcalc, matrix multiplication benchmarks were first conducted across three libraries (CUDA, C++ AMP, and CUDAfy) to assess suitability and performance. Based on these tests and language compatibility, CUDAfy was selected, and a spreadsheet function was implemented that encodes expressions via an abstract syntax tree and executes them on the GPU without runtime compilation. The work outlines a simple approach to selecting thread and block sizes across different GPUs and employs Mark4 microbenchmarks for timing. Preliminary results indicate that offloading to the GPU is time-effective when the computed expressions are sufficiently large, while overhead such as data transfer can dominate for small tasks.

[Dette resumé er genereret med hjælp fra AI direkte fra projektet (PDF)]