Should I use CUDA? CUDA vs OpenGL on previous generation hardware

I’m working on an application which will target Quadro FX 1700 hardware.

The application currently uses OpenGL to do image processing related GPGPU calculation.

I have found that using OpenGL is rather burdensome where I have to keep finding solutions to go around limitations of OpenGL. I also become rather limited to image processing and seem to have to fall back to cpu when I need to do other stuff such as audio processing.

I would like to switch to CUDA as that seems the right tool for the job. However I am a bit unsure of what kind of performance a CUDA solution would have in comparison to OpenGL on a bit older hardware.

Especially as my target hardware only has “Compute Capability 1.1” and 32 CUDA cores (Quadro FX 1700). I have no idea what this means in practice and would appreciate some advice.

Thank you.

New hardware is 10-20 times faster, cause have 300-400 cuda cores and improvements. However, if your picture size is small or time is big, you can use cuda, if it is supported. It depends of what are you doing with image.

I’m doing several different kinds of different computation on HD sized images: scaling, composition, color space transforms, video decoding, with a performance requirement of 25 fps x 8 images.

I do understand that newer hardware have better CUDA implementations, however as I am targeting Quadro FX 1700 I would like to know how a CUDA solution would compare to OpenGL and GLSL shaders on older generations.

I think you better post to graphics forum. Many people here never use opengl and direct3D. They move from cpu to gpu.

I think, if you use just shaders, there should be now differene between cuda and opengl, cause they use same hardware. Also cuda supports texture fetches with filtering. But if you use some hardware for collor correction etc, you may lost performance. Also you can combine cuda and opengl buffers.

In my experience, the degree to which CUDA will provide better performance than OpenGL depends almost entirely on the how much your algorithms can take advantage of shared memory. For simple per-pixel operations like blending and color space transforms, CUDA performance will be almost exactly the same as OpenGL (it’s using the same hardware after all). For stuff like convolutions which can be tiled in shared memory (reducing the bandwidth to main memory), we’ve seen up to a 2x performance improvement.

CUDA does of course have other advantages such as ease of use, optimized asynchronous memory transfers etc.

Hope this helps.