Previous | Next --- Slide 17 of 54
Back to Lecture Thumbnails
kayvonf

Question: How did rendering two triangles trigger a data-parallel computation?

mm

My guess is that it allows you to have one function like renderTriangle() that you can call on different data sets (different triangles) in parallel.

kayvonf

@mm: But only two triangles are rendered here, and the claim is that this can be used to map a kernel onto a large collection.

Sherry

I guess it's because GPU takes triangles as inputs. Once it accepts one triangle, it processes every pixels contained in that triangle in parallel.

uncreative

What did you do in these cases if you wanted more output bits per computation than a pixel offered? Did you divide your computations among pixels, perhaps somehow sticking half of your bits in an odd column pixel and the other half in an even column pixel, or did you have to make different triangles and run half of your computation in one triangle and half in the other?

kayvonf

GPUs support floating point render targets. (They emerged right about the time this work was done, so a pixel output need not be an 8-bit number.)

An interesting read. The lead author Ian Buck subsequently joined NVIDIA and then created CUDA. https://graphics.stanford.edu/papers/brookgpu/brookgpu.pdf (SIGGRAPH 2004)