This is a short course I taught at Tsinghua University, Beijing, in October 27, 2005. My goal is to introduce the basic concepts of programmable graphics hardware, specifically the pipeline and the programming model. Unfortunately, I over-estimated my audience, as most of them have no prior exposure to basic computer architecture. When I popped up the slide of graphics pipeline, I saw almost universal blank eyes across the students and I have to start over by explaining what pipeline is. Eventually, people started to doze over, so I quickly finished the slides and instead go over to the NVIDIA developer websites to show people what kind of effects they can achieve with graphics hardware.
Fortunately, this seems enough to save the day. Their homework assignment is to reproduce some fractal images on GPUs.
I plan to reorganize the course as follows. I would start with a high level overview of graphics hardware, showing photos of chips/boards and mention big player names such as NVIDIA and ATI. Then, instead of the graphics pipeline, I will demonstrate to them what kind of visual effects they can achieve with graphics hardware. Then, I describe the necessary programming tools and concepts necessary to render these images, starting with simple examples such as diffuse lighting and plain old geometry transformation. Finally, I describe graphics pipeline only if the audience seem to be interested in learning the details.
Recent years have witnessed tremendous growth for programmable graphics hardware (GPU), both in terms of performance and functionality. In this course, we overview the high-level architecture of modern GPU, and introduce the GPU programming model. We also briefly describe the kinds the visual effects and applications that can be achieved by programmable graphics hardware.