CSE 690 - General Purpose Computing on
Graphics Hardware
General Info:
Instructor: Prof. Klaus
Mueller
Office hours: Tu 3-5 pm (send
email for other arrangements), CS 2428
Phone: 632-1524
Email: mueller AT cs DOT sunysb DOT edu
Meeting time and venue:
TuTh 5:20-6:40pm in Computer
Science 2311
Summary:
Recent research developments
have impressively demonstrated that modern graphics hardware can be
utilized for a much wider range of applications than just the computer
games they were initially designed for. The truth of the matter is,
the special effects of computer games and real-time home entertainment
have become computationally so demanding and sophisticated that they
now require a piece of hardware that almost resembles a "supercomputer
on a chip", at commodity prices and plugged into commodity computing
hosts - the PC. The speed of these graphics processors (or GPUs, for
short) comes from the simplicity of their design. This enables high
parallelism in the processing of the data, often allowing speedups of
1-2 orders of magnitude when compared to an equivalent CPU
implementation. It has also allowed sustained performance growth
rates at a triple of Moore's law. These developments have enabled
exciting opportunities for numerical and scientific computing,
database computations, geometry processing and modeling, cluster-based
computing, medical imaging, computer vision, and, of course,
visualization and computer graphics.
This course will first lay out the foundations of the
underlying hardware. It will then illustrate how it is programmed,
with both low-level and high-level constructs, using the C-language.
The majority of the course will be dedicated to demonstrate the use
of GPUs by ways of a wide variety of examples. These will be based on
recent research papers in this new and up-and-coming domain,
generally referred to as GPGPU (General Purpose computing on Graphics
Processing Units). A number of course projects will aim to provide a
hands-on experience with the subject matter.
Audience:
The course is intended for anyone who has
encountered a need for accelerated computing. The material and its
presentation is suited for a general audience from all academic
displines. The only prerequisite is knowledge of a programming
language, preferably C/C++. No prior knowledge of computer graphics
is required, but some mathematical background, such as linear algebra,
is desirable.
Prerequisites:
Graduate standing or permission of
instructor
Linear algebra
Course topics:
Texts:
R. Fernando and M. Kilgard, "The Cg Tutorial:
The Definitive Guide to Programmable Real-Time Graphics",
Addison-Wesley, 2003.
Research papers and handouts
Course procedures:
Please attend every session. Your presentation
should but don't have to be related to the topic you have chosen for
your project. Mid-way through the course, we will also have 2
sessions allocated for progress reports on each project in form of
15-20 minute presentations. A lively discussion among the class is
highly encouraged. The project presentations (and the presentations in
general) are meant as a mechanism to improve the project, clarify
pertaining issues, and come up with cool new ideas, enhancements, and
applications.
Project:
Pick a project, either from a list provided early
in the semester, or on your own. It should be a project of substance, in
accordance to the level of the class and grade-percentage
allocated.
Grading:
Project: 70%
Presentations: 30%