Dec 8

My modification of the NVidia Device Query program also compiles on a MacMini running Snow Leopard (Mac OS 10.6), which has OpenCL built in. This time, it reports that there is a twin core CPU, but no GPU. The program can be compiled with Xcode, or use the Linux Makefile, but without defining INCLUDEDIR or LIBDIR and simply setting:

CC = g++
CFLAGS = -c -Wall
LDFLAGS =  -framework OpenCL

I also have a Linux box running OpenSuse. Again no GPU. I Installed the AMD drivers (I’m not sure whether this is necessary) and the SDK. This time the twin processor Core 2 was reported and no GPU. I would expect this.

So, why isn’t the CPU reported on the other machines?

First, the NVidia documentation makes no reference to the CPU, so it just isn’t supported. The list of supported devices on the AMD page includes:

X86 CPU w/ SSE 3.x or later

The FireStream card is in a box with Opterons of 2005 vintage. They don’t have SSE3. I don’t see this as a reason not to support OpenCL, however.

The next experiment was to run HelloCL on the basic Linux box. This has a simple switch: gpu = 1 or 0. If set to 0, the program attempts to run on the CPU. As there’s no gpu, the program fails with gpu=1. It runs with gpu=0. In other words, hello.cl is being compiled and run on the host CPU. I’m not yet clear whether it is being directly compiled or whether there is a virtual machine.


leave a reply