Towards Efficient Exploitation of GPUs

Towards Efficient Exploitation of GPUs

Book Details:

pos

Global

pos

Category

Year:

2014

Publisher:

Universidade da Coruña

Pages:

222 pages

Language:

english

Since:

26/04/2016

Size:

9.66 MB

License:

CC-BY-NC-ND

Content:

GPU computing supposed a major step forward, bringing high performance computing to commodity hardware. Feature-rich parallel languages like CUDA and OpenCL reduced the programming complexity. However, to fully take advantage of their computing power, specialized parallel algorithms are required. Moreover, the complex GPU memory hierarchy and highly threaded architecture makes programming a difficult task even for experienced programmers. Due to the novelty of GPU programming, common general purpose libraries are scarce and parallel versions of the algorithms are not always readily available.

Instead of focusing in the parallelization of particular algorithms, in this thesis we propose a general methodology applicable to most divide-and-conquer problems with a butterfly structure which can be formulated through the Index-Digit representation. First, we analyze the different performance factors of the GPU architecture. Next, we study several optimization techniques and design a series of modular and reusable building blocks, which will be used to create the different algorithms. Finally, we study the optimal resource balance, and through a mapping vector representation and operator algebra, we tune the algorithms for the desired configurations. Despite the focus on programmability and flexibility, the resulting implementations offer very competitive performance, being able to surpass other well-known state of the art libraries.