I am wondering while running the OpenCL device query sample from the NVIDIA GPU computing SDK why is only my NVIDIA 8800 GT listed as a valid device?
I have an Intel QuadCore (Q6600) and a NV8800 GT and though I can run my OpenCL kernels on the GPU I would like to be able to use my QuadCore also, is this possible?
I would also be interested in CPU support from the side of NVIDIA.
OpenCL is quite young, maybe NVIDIA is going to deliver an additional compiler for CPU devices in future drivers.
But this would be more a matter of the support from the CPU makers, like with established C++ compilers.
You can link to the same .lib, they are identical in both implementations. You only need to switch the .dll, ie. place AMD’s OpenCL.dll in the executable’s directory.
Think you could provide a link? The last time I tried to install their SDK, it didnt detect any AMD/ATI hardware and then installed only a profiler. And is it possible to develop cross-compatible code on the same machine?
Yeah, it does that. To install the driver without an AMD GPU you need to run the installer so that it extracts the temporary files and then manually navigate to (default)
C:\ATI\SUPPORT\streamsdk_2-0-0_win764\Packages\Apps\ATIStreamSDK_Dev_win764a (that’s for windows 7 x64 but you can’t miss it)
There you will run the msi which installs their OpenCL toolkit complete with their OpenCL.dll
You’ll also find the samples nearby, install them as well (optional, as with Nv’s SDK). It’s best to install both to the same directory which is not the default setting so pay attention.
Developing cross-compatible code is possible. By default your app will find NVIDIA’s implementation because it sits deeper in the system. To use AMD’s implementation, copy their OpenCL.dll to the executable’s folder so it finds it before searching in the system directories.