Lecture 5 - old version pre CUDA

GPGPU Concepts and Examples

Here are some notes on mapping computational problems to image problems - ie the 'old' way we used to do these things a couple years ago.

We will start by looking at this paper:

A Survey of General-Purpose Computation on Graphics Hardware by John Owens et al
Proceedings of Eurographics 2005, Dublin, Ireland, Aug 29 - Sep 02, 2005, pp 21-51.
available in pdf format from here: http://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=844

and course notes from SIGGRAPH 2005:
and here are some related course notes from IEEE Vizualization 2005

and here is an introductory paper

a realy good site for this sort of thing is

lets start with:
- http://www.gpgpu.org/s2005/slides/luebke.Introduction.ppt
- http://www.gpgpu.org/s2005/slides/harris.Mapping.ppt
and then
- http://www.gpgpu.org/s2005/slides/purcell.SortingAndSearching.ppt
- http://www.gpgpu.org/s2005/slides/woolley.GPUProgramOptimization.ppt

The main issue here is that you need to map the computational tasks into a graphical form

SIGGRAPH notes on how to map computational concepts to the GPU

Do work in the Fragment Processor (tend to have many more of them than vertex processors)

Works well for highly parallel tasks.
Works well for large data sets (but they must fit into texture memory)

Multiple passes may be necessary

So whats not there right now:
Branching issues

A stream is an ordered set of data of the same type of any length
A kernel takes one or more streams as inputs and produces one or more streams as output

Stream Operations

Now how about some code ...

There is a good example as Tutorial 0 from the GPGPU site:

This is a good starting point, though for some reason the code doesn't have a glutInit which makes my powerbook unhappy. But after adding that it works fine (aside from not allowing me to use the escape key to exit.)

The project page is http://sourceforge.net/projects/gpgpu/
There is code here http://sourceforge.net/project/showfiles.php?group_id=104004&package_id=117303&release_id=245080

Here are some nice Optimization notes from SIGGRAPH 2005:

So what else can you do?

GPUSort (Windows, Linux with an Nvidia card)

FFT on a GPU

Coming Next Time

Case Studies

last revision 5/16/08