Course Homepage: GPGPU (Q2 2004)
Description
The evolution of consumer graphics cards in recent years has introduced
the GPU (Grapics Processing Unit) as a flexible vector-processor
capable of coloring, shading etc. in parallel. This evolution has been
driven mainly by demands of more realistic effects by the computer
gaming industry.
However, the built-in parallelism is also suitable for other tasks
than visual effects: We will view the GPU as a general purpose vector
processor and look at how parallel calculations (including physical
simulation) are implemented. As examples we take real-time simulation
of fluid dynamics and deformable virtual models of human anatomy.
The course provides an introduction to GPU-programming and traditional
visual effects. However, the main focus will be on working with the GPU
as a general purpose processor for physical simulation.
Credits:
5 ECTS
Evaluation:
Individual written report, 13 scale.
Compulsory programme:
Present solution to the weekly assignments in groups
Lecturers:
Jesper Mosegaard
Thomas Sangild
Place and time:
Tuesday 14-15
Thursday 11-13
Codd-121, Finlandsgade 24-26
Plan:
(25 October - 10 December)
| Date |
Topic (Thursday) |
Material |
Assignment (Tuesday) |
| Week 1: 26/10 |
Introduction
slides
|
Code:
Fixed
function pipeline in cg
Printed Handouts:
The
OpenGL fixed function pipeline
A
compilation of notes for the "Programming Graphics Hardware" course,
Eurographics 2004
Additional recommended reading:
Cg
users manual pages 1-61, Appendix B.
Tomas Möller, Real-Time Rendering: chapter 2, The Graphics Rendering
Pipeline
|
|
| Week 1: 28/10 |
GPU programming
Introduction to GPU programming
Per pixel lighting
Parallel programming
slides
01 02
|
Code:
Per
pixel lighting
Simple
bumpmapping
Printed Handouts:
Assignment for week 3 (09/11-04)
|
| Week 2: 04/11 |
GPGPU programming resources
Resources in hardware
Invoking computation
The memory model
slides
|
Code:
RenderTexture
RenderTextureMisc
Printed Handouts:
GPUGems Programming Techniques, Tips, and Tricks for Real-time
Graphics. Edited by Randima Fernando: chapter 28 and 37
|
| Week 3: 09/11, 11/11 |
Higher level functionality
Pointer, 1d and 3d arrays
Scatter and reduction
Sorting and searching
GPGPU languages
branching
slides
|
Final
Project info
Bump-map
discussion from last
|
Assignment
from 28/10
Assignment
from 04/11
|
| Week 4: 16/11, 18/11 |
Spring Mass systems + Raytracing
slides
|
Printed Handouts:
The Ray Engine, Carr et. al
Ray Tracing on Programmable Graphics Hardware, Purcell et al.
A GPU Accelerated Surgical Simulator for Complex Morphology, Jesper
Mosegaard and Thomas Sangild Sørensen
|
Assignment
from 11/11
|
| Week 5: 23/11, 25/11 |
Solving linear systems + fluid dynamics
slides
01
slides
02
|
Printed Handouts:
Linear algebra Operators for GPU implementation of Numerical
Algorithms, Kruger J. and Westermann R.
Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid,
Bolz J et. al.
Fast Fuid Dynamics Simulation on the GPU, Harris M.
|
| Week 6: 30/11, 02/12 |
Follow up on last lecture (tuesday)
slides
|
... |
Assignment
from 26/11
Assignment
from 26/11
Remember, this is for thursday 2/12
|
| Week 7: 07/12 09/12 |
Meso structure rendering (tuesday)
slides
Evaluation, Final Projects, unsettled business (thursday)
slides
01
slides
02
|
Lifeng Wang et al. "View-Dependent Displacement Mapping"
Terry Welsh. "Parallax Mapping with Offset Limiting: A Per-Pixel
Approximation of Uneven Surfaces"
|
Links:
Documentation
OpenGL
man pages
Cg
User´s Manual
ARB_fragment_program
extension
ARB_vertex_program
extension
The
OpenGL Shading Language (GLSL or gslang)
Dark
Secrets of shader Development
Software
cg
download and documentation
The OpenGL Extension
Wrangler Library
RenderTexture
2.0
Development sites:
OpenGL.org
GPGPU.org
Developer.nvidia
Ati's Developer
Program
Participants:
19984373 Niels Jeppe Anders Nielsen
20001263 Rasmus Witting Larsen
20001467 Bent Bisballe
20001683 Søren Gjellerup Christiansen
20001995 Karsten stergaard Noe
20002177 Peter Gade Jensen
20002751 Lars Ole Simonsen
20022647 Michael Bræmer Nielsen
20023690 Jonas Larsen
20012938 Peter Trier
20011373 Thomas Mølhave
19982078 Nicolai Lundgaard
20023502 Søren Skov
19960197 Jesper Fruegaard Andersen
19970541 Aske Simon Christensen
19991875 Michael Westergaard
19971799 Allan Rasmusson
19990498 Troels Bjerre Sørensen
19992541 Daniel Nielsen
20002482 Niels Carsten Thrane
Acknowledgements
Some slide-material originate from:
SIGGRAPH 2004 GPGPU COURSE
Visualization 2004
TUTORIAL
Other courses on GPGPU related subjects:
Graphics
Architecture, Spring 2004
Hacking the
GPU
Local machines with Radeon 9800:
Zuse 114
nussebaum
hyldgaard
dickow
Zuse 127
All machines...