Problems mixing GTX 680 and GTX 590

This is not a question rather for your information.

Recently, I got hit hard by a bug concerning different GTX models and certain OpenCL as explained in this post. Under the condition of having a GTX 590 and a GTX 680 as well as having kernels with more than two __local or two __constant parameters, the call to clCreateKernel() returns with an CL_INVALID_KERNEL_DEFINITION that is absolutely inappropriate in this situation. To me, it looks like a bug in NVIDIAs OpenCL/runtime implementation.

So, if you want to see, if your particular combination works, you can try the little tool that I came up with.

I can’t really help you with your problem.

I only can tell you that you shouldn’t be surprised if:
-you find unexpected kernel numerical results
-non related CL errors
-CL errors that belong to superior CL versions that you are using
-CL language features that simply don’t work or even make the CL compiler crash

if you are using the OpenCL NVidia implementation. It seems that NV only cares about CUDA and gives very little support to OpenCL. In my work, we have to support NV to cover the whole user base, but tuning our kernels to make them work is giving us a workload greater than Intel+AMD together (far greater)

In our case, sometimes helped switching on/off the optimizations in the CL compiler (clBuildxxx) Some things worked ONLY with optimizations and some others worked ONLY WITHOUT optimizations enabled.

So in summary, simply dont be surprised.

It seems to me that i can be happy that i have to stard writing my kernels on nvidia hardware when its easier to port them to intel / Ati.

One problem i got with intel was uint - int calculations in indices. there is no Problem in nvidia hardware because it seemed to me that they handle uint like int. intel crashed without an invalid index.

Thank you for that regression test - I can confirm that a GTX 690 and Quadro 600 together have the same issue.