GPU Programming Course

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...

Home | About us | Research | Services | Infrastructure | Support & Queries |News
Copyright & Disclaimer | Graphic Design & Web Design by Kimia