NEW COURSE for Spring 2010!

EE 599-006 - GPU Computing (undergrad, 3 credits)
EE 699-006 - Advanced GPU Computing (grad, 3 credits)
both TR 9:30-10:45 in room 302 DVT (moved from 3 MAIN)

GPU Computing is about the emerging many-core parallel computing architecture that has grown out of hardware originally developed as Graphics Processing Units for high-end video cards.

This course will begin by tracing the evolution of SIMD (Single Instruction, Multiple Data) architecture that produced modern GPUs, studying the current architectural features, and discussing trends for the future. The bulk of the course will then involve using various GPU programming environments (especially CUDA and OpenCL), running on ATI and/or NVIDIA GPUs, to implement programs solving problems that would classically have been run on supercomputers. All students will have hands-on experience programming GPUs for assigned problems, at least one of which will involve building software tools/support to make GPUs easier to use. In addition, each graduate student (EE 699) will be expected to solve a GPU programming problem that they individually will propose, write-up, code, and present to the class.

A good knowledge of C programming is expected, as all the programming will use environments building on C. Grading will be based on two in-class exams, several programming assignments, and the graduate student's presentation of the project they proposed. It is expected that the exams and assignments will count for approximately equal portions of the grade.

The graduate and undergraduate courses share a common lecture. They differ primarily in that the graduate (EE695) students have an open project that they must propose, solve, and present, whereas all the undergraduate (EE599) student assignments specify problems and general approaches.

For details, contact Professor Hank Dietz:
http://aggergate.org/hankd/


About the graphic: The first GPU that was truly intended as a computing device, rather than a graphics card, was the ATI FireStream, shown in the fisheye image. Since then, ATI and NVIDIA have been the major players, with NVIDIA's CUDA software environment dominating the field. OpenCL is the new "generic" software environment being pushed as a portable standard. There's even some significance to the color and placement of the text... but I've said enough for now. ;-)