The Art of GPGPU

Studenteropgave: Speciale (inkl. HD afgangsprojekt)

  • Søren Hørup
  • Henrik Holtegaard Larsen
  • Søren Juul
3. semester, Software, Kandidat (Kandidatuddannelse)
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.
SprogEngelsk
Udgivelsesdato10 jan. 2011
Antal sider117
ID: 43541903