The Art of GPGPU

Student thesis: Master thesis (including HD thesis)

  • Søren Hørup
  • Henrik Holtegaard Larsen
  • Søren Juul
3. term, Software, Master (Master Programme)
In this report we document our analysis of
General-Purpose computations on Graphics
Processing Units (GPGPU) and the practical
experience that we have gained throughout
the process.
In the analysis chapter, we analyze the dier-
ences between GPUs and CPUs describe the
architecture of the G80 chip, which is the chip
on the Tesla cards available to us. Also we
take an in-depth look at three GPGPU pro-
gramming languages, CUDA, OpenCL and
BrookGPU, where OpenCL and CUDA is
supported by the the Tesla card, and we nd
several tools that can help with OpenCL and
CUDA development.
In the development chapter, we implement
two GPGPU powered applications, namely a
ray tracer using CUDA and the Boids ock-
ing algorithm using OpenCL and Brook+.
Benchmarks are carried out, which are ana-
lyzed and discussed. We nd that the GPU is
indeed a powerful co-processor, but one must
be able to program it correctly against several
factors to obtain high performance.
Lastly, we compare the three GPGPU lan-
guages, that we found through the analy-
sis, using a number of comparison criteria.
Through the comparison we nd that CUDA
is the most expressive of the three, and is also
the must mature, while OpenCL is quickly
gaining popularity in the GPGPU eld.
Publication date10 Jan 2011
Number of pages117
KeywordsGPGPU, GPU
ID: 43541903