Running Linux, I have nVidia driver 290.10, CUDA and the nVidia GPU computing SDK installed (latest downloadable versions). The card is a GTX560Ti; it not used as graphics card in the computer anymore, an ATI card is. The nVidia card is detected just fine, I can run CUDA programs on it.
OpenCL runtime reports the platform / device correctly as NVIDIA CUDA / GeForce GTX 560 Ti, but whenever I run some code on it, it reports error compiling the program (which is compiled just fine by both Intel and AMD SDK's), i.e. clBuildProgram returns CL_BUILD_PROGRAM_FAILURE and clGetProgramBuildInfo(...,CL_PROGRAM_BUILD_LOG...) crashes:
#0 __strlen_sse42 () at ../sysdeps/x86_64/multiarch/strlen-sse4.S:32
#1 0x00007ffff22c0e67 in ?? () from /usr/lib/nvidia-current/libcuda.so
#2 0x0000000000402e85 in main (argc=2, argv=0x7fffffffdfc8) at test-chain.cc:107 // this is where clGetProgramBuildInfo is called
(I posted this first on the nvidia forum without any response. Having comparison Intel/nVidia/ATI regarding support of OpenCL, both Intel and AMD were very reponsive when I reported bugs in their compilers. nVidia seems to be happy that it sold the card, pushing CUDA everywhere and not giving a damn about OpenCL. Am I wrong? The card was not the cheapest one, and if I ever finish the code I work on, I will definitely recommend customers to go for ATI.)