CS 5984 Advanced Computer Graphics: Parallel Computing and Visualization on GPU
Fall 2010
Tuesday and Thursday 5:00-6:15pm at McBryde 316

Instructor: Yong Cao
Phone: (540) 231-0415
Email: yongcao@vt.edu
Office Hour: TR 3:30-5:00pm McBryde 638, and by appointment in KWII 1124

Course Description:

Real-time visualization, including surface rendering and volume rendering, requires a large amount of computing power to generate high-fidelity images in real-time. Graphics Processing Units (GPUs) are the ideal computing devices for real-time visualization applications, because of their massive parallel architecture and computational power. For example, the current generation of NVIDIA GTX 480 GPU has 480 cores and a computing capability of 1.345 Tera FLOPS. However, GPUs are widely known for their limitation on task-parallel algorithms, which can greatly affect the performance of some real-time visualization algorithms, such as bounding-volume based ray-casting. Thus, the challenge is to develop real-time visualization applications that effectively uses the parallel processing cores to achieve efficiency and performance goals.

In this course, we will introduce the basic Ray-Tracing algorithm and some advance rendering techniques, including monte carlo intergration, photon mapping, ambient occlusion, volume rendering, and adaptive supersampling. We will also introduce the computing architecture of GPU, and the NVIDIA's cuda programming framework. The example algorithms will be used to illustrate the process on how to implement and optimize algorithms on the GPU-based parallel architecture. The ultimate goal of this course is to provide a foundation on GPU implementations of advanced real-time visualization algorithms.

The course will consist of lectures early in the semester, homework assignments, programming projects, paper presentations, and a final project.


Upon completing this course, students should be able to

  1. Understand the basic ray-tracing algorithm and some advanced real-time visualization techniques.
  2. Understand the computational profile and performance bottleneck for these visualization algorithms.
  3. Understand the parallel architecture and programming framework for Graphics Processing Units.
  4. Learn the standard optimization processes for GPU-based parallel programs.
  5. Learn and design the GPU-based parallel implementations for real-time visualization algorithms.
  6. Understand the state-of-art researches in real-time visualization and GPU-based performance acceleration.
  7. Understand the concept of In-Situ visualization, and design a simple GPU-based In-Situ application.

Course Work

Below is an estimate of the contributions of different parts of your final grade. We reserve the right to adjust these weights, as necessary.

  • Participation 5%
  • Programming Assignments 25%
  • Paper Presentation 15%
  • Paper Summaries 10%
  • Project porposal 10%
  • Project Final Presentation 15%
  • Project Final Report 20%

Each student will be assigned to present 2 papers and lead the discussion at one class session. The paper list can be found in the Resource webpage. Each student also needs to write summaries for the papers which are presented by other students. The detail about requirements for paper presentation and written summaries can be find at this Requirement Webpage.

Materials and References

There are two text books for this course, but not required.

  1. Programming Massively Parallel Processors: A Hands-on Approach, David Kirk and Wen-mei Hwu.
  2. Physically Based Rendering: From Theory to Implementation (Second Edition), Matt Pharr and Greg Humphreys.

We will also use the literatures from conference and journal papers. You can use the following list as reference materials:

  1. NVIDIA CUDA Programming Guide.
  2. NVIDA CUDA website, http://www.nvidia.com/object/cuda_home.html.
  3. UIUC Parallel Programming Course Website: http://courses.ece.uiuc.edu/ece498/al/.
  4. Astro GPU Workshop Videos: http://www.astrogpu.org/videos.php
  5. SC07 GPU Tutorials on GPGPU.org Website: http://www.gpgpu.org/sc2007/
  6. Other Courses on GPGPU at NIVIDA Website: http://www.nvidia.com/object/cuda_university_courses.html
  7. GPU Computing Course at SIGGRAPH Asia: http://sa08.idav.ucdavis.edu/


Without a Curve (A Fractional percentages will be rounded to the nearest decimal place.)
90- 91 A-
88- 89 B+
82- 87 B
80- 81 B-
78- 79 C+
72- 77 C
70- 71 C-
68- 69 D+
62- 67 D
60- 61 D-
< 60 F

In the event that a curve is applied to grades, it will be curved approximately as follows:

A 95% of the average score of the Top 10% of the class
B 85% of the average score of the Top 10% of the class
C 75% of the average score of the Top 10% of the class
… and so on.

Management Policies

Final Grade Policy
A grade of "I" will only be given for documented medical emergencies or extreme unforeseen emergencies (no exceptions).

Attendance Policy
Attendance at all scheduled meetings is expected. Illnesses (with written verification from the health center or a doctor) and religious holidays shall be considered excused absences. Personal matters may be excused at the instructor's discretion.

Late Assignment Policy
Assignments will be downgraded 25% for each day late. No exception permitted.

Honor Code Policy
“The Honor Code will be strictly enforced in this course. All assignments submitted shall be considered graded work, unless otherwise noted. All aspects of your coursework are covered by the Honor System. Any suspected violations of the Honor Code will be promptly reported to the Honor System. Honesty in your academic work will develop into professional integrity. The faculty and students will not tolerate any form of academic dishonesty.”

Any work that is not the student’s original work, or another’s work that the student has altered, must be submitted with a copy of the original work. In addition, the source of the work must be clearly cited. Failure to include a copy and proper citation of the original work, with an assignment that is not completely the work of you or your team, will result in a referral to the Honor System. All other policies and regulations (e.g., regarding "academic honesty and plagiarism" including that of on-line sources) as stated in the Graduate Bulletin apply in this course.