Why would one use CUDA for per-pixel processing when you can use a regular Cg/HLSL pixel shader? In other words, what can you do with a GPGPU language that you can’t do with a pixel shader on top of a fullscreen quad?
Might sound obvious, but I was still hoping to brainstorm and get a list of reasons going - on top of the following:
- GPGPU language gives you more control over GPU/PCB resources
- Can set number of threads
- Can set number of blocks
- Can optimize using different memory spaces available
- Can customize thread load balancing to one’s choosing