NV OpenCL on CPU

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?

The NVIDIA SDK doesn’t support CPU implementations and it doesn’t look like they plan on supporting it as far as I can tell.

AMD has CPU support in their SDK.

Thats kind nasty, with a good baseline OpenCL implementation on a CPU with a few cores and SIMD it would be a nice baseline

for OpenCL based applications.

Is it possible to use the AMD/ATI SDK without an ATI gpu?

Yes, it’s possible. Actually, it’s possible to use this SDK even w/o AMD CPU ;) I use it on Atom-based netbook for example :)

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.

Let’s hope the best and expect the worst :-D

Where can I located the .lib file I should link with in the ATI SDK?

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.

Very interesting, thank you!

Is there anyway we can download only this .dll from somewhere?

I don’t want to install whole SDKs… ;-)

Dunno, I got it from their SDK.

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.