|
From the 6th to the 9th of April 2010 the CHPC hosted a
successful and well-received course on GPU programming. The course invited
students from universities across the Western Cape and was the first of its
kind to be run formally in South Africa. Designed by Prof. James Gain and
Dr. Michelle Kuttel from the University of Cape Town, the course was
delivered to 23 honours-level computer science students by GPU programming
experts Ian Tunbridge, Jean-Pierre Longmore and Jason Brownbridge.
Sebastian Wyngaard, a research scientist at the CHPC and the event
organiser, gives us some background on the course, and his impression of the
course outcome.
Sebastian: Overall I think the course was a resounding success. Feedback
from the students was really positive and there have even been suggestions
to make the course an annual event at the CHPC.
Why would you say there was such interest in this course in
particular?
Sebastian: GPU programming is exciting because of the sheer processing power
of GPUs and the incredible performance boost they bring to general purpose
computing. But the full processing power of a GPU is pretty much
inaccessible unless it's programmed with an understanding of its
architecture and corresponding programming environment. This course gives an
overview of the history and architecture of GPUs, and looks extensively at
the CUDA programming environment especially through real-world CUDA
applications. Basically this course provides a foundation that's essential
for effective general purpose computing with GPUs.
What exactly is GPU computing?
Sebastian: Graphical Processing Units (GPUs) were originally designed to
handle computation for computer graphics only, but fully programmable GPUs
are now used in tandem with Central Processing Units (CPUs) to handle the
more computationally-intensive parts of scientific applications, while
before, the full application would have been handled by a CPU only. Using a
GPU, an application can run 80 to 100 times faster than on a single-core
CPU. This makes GPU solutions really attractive for handling intensive
computational problems such as physical simulations.
But that's only if the application is mapped correctly onto the
GPU?
Sebastian: Yes. Simply mapping the application to a GPU in the same way as
you would map it to a CPU would only get it to run 2 to 3 times faster.
How exactly does the performance of a GPU compare with that of a
CPU?
Sebastian: In technical terms, single-core CPU clock speeds have flatlined
at around 70–100 GFLOPs and are no longer doubling every eighteen months as
they used to. In comparison, GPUs are capable of performance in the
900–1200 GFLOP range.
Wow! So the students at the course could see first-hand examples of
applications running on GPUs?
Sebastian: Yes, the students actually had to complete various programming
assignments themselves and for that we provided them with access to the
graphics cards on the CHPC's newly-acquired Tsessebbe Cluster.
It sounds like the students must have left this course with a lot of very
relevant theoretical knowledge as well as practical skills. What else do you
think they took away with them?
Sebastian: All the students attending earned marks towards their honours
grade, and they'll also have to write an exam on the course content later in
the year. The course content — including all the slides and programming
exercises — is available to all universities through the CHPC
website.
More details and course download...
|