On Thu, 19 May 2011 02:12:25 +0000 (UTC), Keith Brafford <keith.brafford(a)gmail.com>
Hey fellow PyOpenCLers,
*NVIDIA n00b documentation follows*
After a couple of years of getting over the headaches of learning how to deal
with setting up PyopenCL on AMD machines (and actually doing really well with
Pyopencl on AMD GPU and CPU contexts), I'm finally getting around to setting up
my first NVIDIA capable windows machine.
So, the first thing I realize is that NVIDIA makes it *really* obscure to get
OpenCL capability (and know you've done so). I looked far and wide for the
"NVIDIA OpenCL SDK" (linked from the Pyopencl wiki) and after searching high
low, had to take a chance that what I need is just the "CUDA Toolkit."
Actually, all you need is the GPU driver--it already contains the CL
implementation. (unlike CUDA, where you do need the toolkit to get the
compiler) As you indicate, Nvidia don't widely publicize much of
anything regarding CL.
But because of my previous headaches with early AMD toolkits, I
knew that a
proper OpenCL implementation would leave a nice juicy opencl.dll somewhere in my
C:\windows ecosystem, did a dir opencl.dll /s from the C:\windows directory, and
sure enough I actually had the opencl library in the right place.
So I downloaded one of the NVIDIA OpenCL samples (the basic GL interop sample):
And Yay! it runs. (kinda slow, but that's not important right now)
Now my question for the Pyopencl group is, since I have NVIDIA's opencl
support correctly installed and working, what path should I take to get a CPU
context working on this same machine? (I would like both CPU and GPU context
choices on this new NVIDIA machine).
I see four choices:
1) and 2) AMD APP, either 32-bit or 64-bit:
3) and 4) Intel OpenCL 32-bit or 64-bit:
I run 64-bit Windows 7 as the base OS, but I use 32-bit Python.
In that case I'd suggest 32-bit versions of everything--the AMD and
Intel implementations can all peacefully coexist. You can then choose
the 'platform' from your application and use whatever works best.