|
|
CS 179 The use of Graphics Processing Units for rendering is well known, but their power for general parallel computation has only recently been explored. Parallel algorithms running on GPUs can often achieve up to 100x speedup over similar CPU algorithms, with many existing applications for physics simulations, signal processing, financial modeling, neural networks, and countless other fields. This course will cover programming techniques for the GPU, focusing on visualization and simulation of various systems. Labs will cover specific applications in graphics, physics, and signal processing. The course will introduce the OpenGL Shader Language (GLSL) and nVidia's parallel computing architecture, CUDA. Labwork will require extensive programming. Some experience with computer graphics algorithms is preferred, but not required. A working knowledge of the C programming language will be necessary.9 units; third term. |
| Instructors: |
Connor DeFanti - cdefanti@caltech.edu Tuan Anh Le - tle@caltech.edu |
| Supervising professors: |
Professor Al Barr - barradmin@cs.caltech.edu Professor Mathieu Desbrun - mathieu@cs.caltech.edu |
| Time and place: |
MWF 3:00-4:00PM 107 Annenberg |
| Office Hours: |
Connor DeFanti - 8-10PM Monday Tuan Anh Le - 8-10PM Tuesday 104 Annenberg, instructional laboratory |
| Grading policy: |
100% homeworks. There are 6 homeworks, worth 10 points each, and one small project worth 20 points. Late homeworks will lose 2.5 points for each day late; after 4 days, they will be worth no points. To pass, 60% of the points must be earned, and a reasonable attempt must be made on every assignment. Extensions can be taken only with a note from the Health Center or from the deans. E grades will not be given. |
| Assignments: |
1. Per-pixel phong shading, due 5pm, Wednesday 10 April 2013 2. Bump mapping and steep parallax mapping, due 5pm, Wednesday 17 April 2013 3. GLSL particle system, due 5pm, Wednesday 24 April 2013 4. CUDA particle systems, due 5pm, Wednesday 1 May 2013 5. CUDA quaternion Julia sets, due 5pm, Wednesday 8 May 2013 6. CUDA Monte-Carlo integration (volume finding), due 5pm, Wednesday 15 May 2013 7. CUDA final project, due 11:59PM, Friday June 7 2013 |
| Lectures and recitations: |
1.1. Class introduction 1.2. History of GPU Programming 2. Rendering, OpenGL, and lighting 3. Recitation for HW1 4. Textures 5. Spaces, shadows, and debugging 6. Homework 2 recitation; bump mapping and steep parallax mapping 7. Buffers and Render to Texture 8. Recitation for HW3: Particles 9. Introduction to CUDA: Part 1 10. Introduction to CUDA: Part 2 11. Recitation 4: CUDA Particles 12. CUDA Memory 13. CUDA Architecture 14. Recitation 5: Rendering Fractals 15. CUDA Runtime 16. CUDA Reduction Optimization 17. Recitation 6: Monte-Carlo Integration 17. Recitation 7: Final Project |
| Other resources: |
HTML version of the OpenGL Red Book Official GLSL documentation Official GLSL quick reference guide Lighthouse 3D GLSL tutorial NeHe OpenGL/GLSL Tutorials The CUDA Zone NVIDIA CUDA Programming Guide 2.0 CUDA Reference Manual 2.0 CUDA PTX ISA 1.2 |