Class Schedule
Note to other teachers and users of these slides and resources. Gary and Joe would be delighted if you found this source material useful in giving your own lectures. Feel free to use these slides verbatim, or to modify them to fit your own needs. Please include all our sources where applicable, since we ourselves build on the work of giants. Please include this message, or the following link to the source repository of UPENN's CIS 665 tutorials: http://www.seas.upenn.edu/~cis665/ . Comments and corrections gratefully received.
-
Videos used in lecture:
- ATI Animusic Demo
- Simulation of Cloud Dynamics on Graphics Hardware (Harris/Baxter/SCheuermann/Lastra).
- Real-Time Depth Contours (Mustafa/Krishnan/V.)
- Why Is Graphics Hardware So Fast by Pat Hanrahan
- The GPU Enters Computing's Mainstream by Michael Macedonia.
- The Graphics Card As A Stream Computer by S.V.
Assignment 0: Fill out the in classs survey
-
Reading:
- Programming Graphics Hardware (Eurographics 2004 Tutorial): Fernando, Harris, Wloka and Zeller.
- Interactive Multipass Programmable Shading (Peercy, Olano, Airey and Ungar). SIGGRAPH 2000. This is one of the first papers to view the fixed-function pipeline as a general purpose SIMD Processor.
- Fast Computation of Generalized Voronoi Diagrams using graphics hardware (Hoff, Culver, Keyser, Lin, Manocha). SIGGRAPH 99. This page also has downloadable code.
- 7 years of Graphics, by Thomas Monk. An interesting perspective on the history of PC cards. Contains the pictures used in the presentation.
Assignment 1: Graphics Pipleline (Given out) : Due Janurary 28, 2007
-
Reading:
- The Cg book: Chapter 1 (The History of the pipeline)
- Extremetech articles: What happened in 2004, what to look forward to in 2005, what ATI and NVIDIA see in the future.
-
Reading:
- Code examples from lecture: : Download | ReadMe
- Visit the GPGPU.org forums for a wealth of information on Cg hacking.
-
02/04/2008: Rendering Gooey MaterialsReading:
- Rendering Gooey Materials with Multiple Layers (ATI Slides)
- Rendering Gooey Materials with Multiple Layers - SIGGRAPH 2006, Course Notes 26 (Chris Oat)
- ShaderX 3: Chapter 2.13 Rendering Semitransparent Layered Media (Chris Oat)
-
Reading:
- Advanced RenderMan: Reflections
- ShaderX 3: Chapter 2.3 Reflections from Bumpy Surfaces (Henning Mortveit)
- The CG Tutorial: Chapter 8 - Bump Mapping
-
Reading:
- Real-time particle systems on the GPU in dynamic environments SIGGRAPH '07: ACM SIGGRAPH 2007 courses (Shannon Drone)
- Slides: A GPU-based Particle Engine (SIGGRAPH 2004)
- Building a Million Particle System by Lutz Latta (GDC 2004)
- UberFlow: A GPU-Based Particle Engine by Peter Kipfer, Mark Segal, Rudiger Westermann (Graphics Hardware 2004)
-
02/11/2008: Animation Morphing
Reading:- Morphing between two different Objects by Ronny Burkersroda (ShaderX 3)
- Morph Target Animation by Christian Kleinhuis (ShaderX 4)
- Real-Time Character Animation on the GPU by Michael Nischt (ShaderX 4)
-
02/11/2008: DirectX 10
Reading:- DirectX10 Effects Sarah Tariq (SIGGRAPH 2006)
- DirectX10 Sysytem David Blythe, Microsoft Corporation (2006)
- DirectX10 for Techies Nick Thibieroz, ATI/AMD (2006)
- DirectX10 Technical Brief Nvidia (2006)
- DX10 Performance and usage considerations Nvidia (2006)
- How to make use of Direct3D10 now Nvidia (GDC 2007)
-
Reading:
- Programming Massively Parallel Processors Course Site - UIUC Course Slides and PodCasts (Wen-Mei Hwu and David Kirk)
- CUDA Programming Guide New and Highly Recommended!
- CUDA SDK - Nvidia Code Samples
- Introduction to CUDA - Mark Harris (SIGGRAPH 2007)
- Programming CUDA - Ian Buck (SC2007)
- Technical Brief - Nvidia GeForce 8800 GPU Architecture Overview (NVIDIA)
-
Reading:
- Fast matrix multiplies using graphics hardware by Larsen and McAllister (SC 2001)
- Dense Matrix Multiplication by Adam Moravanszky
- Cache and Bandwidth Aware Matrix Multiplication on the GPU by Hall, Carr and Hart (Tech Report UIUCDCS-R-2003-2328-1)
- Understanding the Efficiency of GPU Algorithms for Matrix-Matrix Multiplication by Fatahalian, Sugerman, Hanrahan (Graphics Hardware 2004)
- Linear algebra operators for GPU implementation of numerical algorithms by Kruger and Westermann (SIGGRAPH 2003)
- Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid by Bolz, Farmer, Grinspun and Schroder. (SIGGRAPH 2003)
-
02/25/2008: CUDA Memory Model
Reading:- GPU Gems 3: Pages 859-860
- CUDA Memory Model (UIUC Slides | PodCast)
-
02/25/2008: Sorting and Searching Slides: PPT
Reading:- GPU = Parallel Machine II: Sorting and Hashing (Scribed by Joe Kider)
- Improved Sorting on the GPU, by Kipfer and Westermann (Ch 46, GPU Gems II)
- GPUSort: High Performance Sorting using Graphics Processors by Govindaraju et al.
- GPUTeraSort: High Performance Graphics Coprocessor Sorting for Large Database Management by Naga K. Govindaraju; Jim Gray; Ritesh Kumar; Dinesh Manocha (SIGMOD 2006)
- GPU-ABiSort: Optimal Parallel Sorting on Stream Architectures by Alexander Gress and Gabriel Zachmann (IPDPS 2006)
Assignment 5: Advanced CUDA (Given out)
-
03/13/2008: Parallax Mapping
Reading:-
Lecture Slides:
Practical Dynamic Parallax Occlusion Mapping
by Natalya Tatarchuk (SIGGRAPH Sketch 2005)
GDC Presentation - Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows. In Proceedings of ACM SIGGRAPH Symposium on Interactive 3D by Natalya Tatarchuk, Graphics and Games (SI3D '06), pp. 63-69
- Practical Parallax Occlusion Mapping with Approximate Soft Shadows for Detailed Surface Rendering by Natalya Tatarchuk, (ACM SIGGRAPH 2006: Proceedings of the conference on SIGGRAPH 2006 course notes, course 26, Advanced Real-Time Rendering in 3D Graphics and Games, pp. 87-118)
- Practical Parallax Occlusion Mapping For Highly Detailed Surface Rendering by Natalya Tatarchuk, (GDC 2006) (2005)
-
Detailed Shape Representation with Parallax Mapping (ICAT 2001)
Original Basis Paper (non-gpu) PDF
-
Lecture Slides:
Practical Dynamic Parallax Occlusion Mapping
by Natalya Tatarchuk (SIGGRAPH Sketch 2005)
-
03/03/2008: Skin Rendering Slides: PPT
Reading:- Advanced Techniques for Realistic Real-Time Skin Rendering - D'Eon and Luebke (GPU GEMS 3)
- Real Time Dawn Demos NVIDIA (2002)
- Skin in the "Dawn" Demo Curtis Beeson and Kevin Bjorke (GPU GEMS)
- Real-Time Texture-Space Skin Rendering by David Gosselin (ShaderX 3)
- Real-Time Skin Rendering on Graphics Hardware Sander, Gosselin, Mitchell (SIGGRAPH 2004)
-
03/17/2008: CUDA: Scan Algorthim Slides: PPT
Reading:- Scan Primitives for GPU Computing - Harris, Sengupta and Owens (GRAPHICS HARDWARE 2007)
- Parallel Prefix Sum (Scan) with CUDA - Harris, Sengupta and Owens (GPU GEMS Chapter 39)
- Parallel Prefix Sum (Scan) with CUDA - Mark Harris (Nvidia)
-
03/17/2007: Abstracting GPGPU: SlabOps Slides: PPT
Reading:- Mark Harris' Research Noteblog on SlabOps
- Code: Basic Add SlabOp Implementation with FBOs Example(Zip File)
- Code: Basic Saxpy SlabOp Implementation with FBOs Example(Zip file)
- Automatic shader level of detail by Olano, Kuehne and Simmons (GH 2003)
- A real-time procedural shading system for programmable graphics hardware by Proudfoot, Mark, Tzvetkov and Hanrahan (SIGGRAPH 2001)
-
Reading:
- A multigrid solver for boundary value problems using programmable graphics hardware, by Goodnight, Woolley, Lewin, Luebke, and Humphreys (SIGGRAPH 2003)
- Physically-based visual simulation on graphics hardware, by Harris, Coombe, Scheuermann, and Lastra (GH 2002)
- Physically-Based Visual Simulation on Graphics Hardware (Video)
- Mapping Computational Concepts to GPUs Mark Harris
- Asymmetric Physics Processing with ATI Crossfire
-
03/24/2008: Collision Detection on the GPU Slides: PPT
Reading:- Broad-Phase Collision Detection with CUDA (GPU GEMS 3: Chapter 32)
- CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware by Naga Govindaraju, Stephane Redon, Ming C. Lin and Dinesh Manocha (Graphics Hardware 2003)
- Quick-CULLIDE: Efficient Inter- and Intra-Object Collision Culling using Graphics Hardware by Naga Govindaraju, Ming C. Lin and Dinesh Manocha (IEEE VR 2005)
- Fast and Reliable Collision Culling using Graphics Processors by Naga Govindaraju, Ming C. Lin and Dinesh Manocha (VRST 2004)
- Practical Collision Detection on the GPU (Case Study) Markus Malmsten and Simon Klasen
- Fast and Reliable Collision Culling using Graphics Processors by Naga Govindaraju, Ming C. Lin and Dinesh Manocha (VRST 2004)
- Streaming Collision Detection Using Programmable GPU by Zhaowei Fan, Huagen Wan, Shuming Gao
-
03/24/2008: LCP Algorithms for Collision Detection Using CUDA Slides: PPT
Reading:- LCP Algorithms for Collision Detection Using CUDA. (GPU GEMS 3: Chapter 33)
-
03/31/2008: GPGPU: Basic Learning and Solving Linear Systems: Supplemental Slides: PPTReading:
- An Introduction to the Conjugate Gradient Method Without the Agonizing Pain, by Jonathan Shewchuk
- Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid by Bolz, Farmer, Grinspun and Schröder. (SIGGRAPH 2003)
- LU-GPU: Efficient Algorithms for Solving Dense Linear Systems on Graphics Hardware Nico Galoppo, Naga K. Govindaraju, Michael Henson, Dinesh Manocha (SuperComputing 2005)
-
03/31/2008: Graph Algorithms
Reading:- Please Contact us if intrested in this set, due to constraints we can not post this information currently
-
Reading:
- CUDA Visual Profiler : (NVIDIA Download)
- A Memory Model for Scientific Algorithms on Graphics Processors by Naga K. Govindaraju; Scott Larsen; Jim Gray; Dinesh Manocha (SuperComputing 2006)
- Benchmarking and Profiling on the GPU Slides by: Suresh Venkatasubramanian (2004)
- Graphics Performance Optimization, by John Spitzer (NVIDIA)
- High-Performance GPGPU (SUPERCOMPUTING 2006 Tutorial on GPGPU):
- GPGPU Strategies and Tricks, by John Owens
- Performance Analysis and Architecture Insights, by Mike Houston
- Effective GPGPU Programming: Tricks and Traps (Siggraph 2005 GPGPU Course):
- GPU Program Optimization, by Cliff Woolley
- GPU Memory Model Overview, by Aaron Lefohn
- GPU Data Structures, by Aaron Lefohn
- Understanding The Efficiency of GPU Algorithms for Matrix-Matrix multiplication, by Fatahalian, Sugerman and Hanrahan (GH 2004)
- A small list of helpful optimization, performance, and pseudo-debugging tools can be found here: Link to Tools
-
04/07/2008: Final Project Alpha Reviews (HMS Lab)
-
04/07/2008: Lockhead Martin Guest Lecture (Mike Hakos) - Optimization on the GPU
-
04/14/2008: NVIDIA Guest Lecture (David Luebke: Website ) - "The Democratization Of Parallel Computing"
-
04/21/2008: Guest Lecture (Milo Martin : Website) - Emerging Computational Architectures: Cell Processor / Larrabee
Reading:- Lecture Slides: Multicore Programming Primer: Learn and Compete in Programming the PLAYSTATION3 Cell Processor by Prof. Saman Amarasinghe and Dr. Rodric Rabbah (MIT)
- IBM Online Course on Cell
- Cell Broadband Engine Documents from Sony Computer Entertainment
- IBM Hands-On Tutorial on Cell Programming
- Introduction to the Cell Multiprocessor by Kahle et Al. (IBM Research)
- Molecular Dynamics on the Cell Processor by Olivier, Prins, Derby, and Vu
- The Potential of the Cell Processor for Scientific Computing by Williams, Shalf, Oliker, Kamil, Husbands, and Yelick
-
04/21/2008: Emerging Computational Architectures: CT / ParallelFX / and Future Trends
-
05/05/2008: FINAL PROJECT PRESENTATIONS
Check back during the semster for updates on the schedule.
