CUDA, Direct X Graphical applications


I understand that the traditional GPGPU used graphics APIs such as DirectX and OpenGL. While the modern GPGPU eliminates the need for learning these APIs, by using CUDA. Suppose one wants to develop a graphical application on NVIDIA’s CUDA compatible graphics cards. How should he go for such a GRAPHICAL applications:

1-Will he use only CUDA i.e no graphical APIs.

2-Will he use C, CUDA AND any of the available GRAPHICS APIs? But even before the advent of CUDA people used to develop graphical applications using GRAPHICS APIs such as Open GL , Direct X etc. Then what is the benefit of using CUDA in this case. And basically what role CUDA will play?


You don’t need CUDA to do graphics, infact it’s designed for GPGPU which is general purpose graphics processing unit. DirectX and OpenGL are graphics APIs to simplify development as they mean you don’t have to code for individual cards but provide a common interface for programming graphics. Lots of information on all of this is easily available through google.

but i have seen graphical applications here

that uses CUDA?

I’m working on a graphical app that uses CUDA for certain types of processing. It’s an OpenGL app, but I use CUDA to process geometry clipmaps on the GPU (previous implementations have used shaders / GPGPU approaches or more CPU-based approaches). I also am experimenting with using CUDA for the post-processing stage of a deferred renderer. For most situations, you use the graphics API like you usually would, but there are certain steps where CUDA is far more convenient and efficient than some of the hoops one must jump through in GPGPU - such as the reduction I do for dynamic HDR tonemapping during post processing.