We are trying to run OpenCL on a x86_64 machine with Linux RHEL 4, which has a Quadro FX 5600. We had 32-bit c/c++ library in the machine and followed the standard procedure of installing OpenCL on 32bit linux. By adding the -m32 option in the Makefiles, we were able to compile the SDK samples. We also updated the driver for x86_64 from:
!!! Error # -1 at file Source/oclBitonicSort.cpp, line 113
line 113 is the error checking statement just below context creation.
We understand that currently OpenCL is supposed to work on 32bit linux. So what we have done is doomed to fail? Or is there some work-around? Any thought will be appreciated. Thanks!
We actually have this working quite well on a 64-bit machine. -m32 on the application appeared to be sufficient to work with a 64-bit host and graphics driver. At least, it lets us move data to/from the card and run kernels.
(Obviously we could not ship products with such an unsupported configuration but it has proven important in enabling our transition from CUDA to OpenCL early on.)
In your case it would appear that the GPU is not recognised as an OpenCL device. (-1 is CL_DEVICE_NOT_FOUND from clCreateContextFromType) This works for us on a GT 120 and GTX 260 but I expect you will have to wait for 64-bit drivers, or try a 32-bit installation, to receive any kind of support.
An update: after changing to another 64bit Linux machine with RHEL 5.3 and repeat the same procedures, it works. So apparently lower version of Linux was causing the problem.
Tons of production commercial/research shops run older Linux distros, so this is still a problem I would expect will have to be solved before a 1.0 release is made. Otherwise, there will be zero uptake in cases where one needs to ship binaries to non-technical end users that don’t even know what a kernel is :-)