deviceQuery works, all other examples fail

I am trying to set up CUDA on a macbook pro with an 8600M GT. I’ve tried multiple versions of CUDA, and finally am able to get deviceQuery to work with 2.2 and 2.3a. Currently I have 2.3a installed. However, when I try to run bandwidthTest, or any of the other example programs, it fails:

[codebox]/Developer/GPU Computing/C/bin/darwin/release$ ./deviceQuery

CUDA Device Query (Runtime API) version (CUDART static linking)

There is 1 device supporting CUDA

Device 0: “GeForce 8600M GT”

CUDA Driver Version: 2.30

CUDA Runtime Version: 2.30

CUDA Capability Major revision number: 1

CUDA Capability Minor revision number: 1

Total amount of global memory: 134021120 bytes

Number of multiprocessors: 4

Number of cores: 32

Total amount of constant memory: 65536 bytes

Total amount of shared memory per block: 16384 bytes

Total number of registers available per block: 8192

Warp size: 32

Maximum number of threads per block: 512

Maximum sizes of each dimension of a block: 512 x 512 x 64

Maximum sizes of each dimension of a grid: 65535 x 65535 x 1

Maximum memory pitch: 262144 bytes

Texture alignment: 256 bytes

Clock rate: 0.94 GHz

Concurrent copy and execution: Yes

Run time limit on kernels: Yes

Integrated: No

Support host page-locked memory mapping: No

Compute mode: Default (multiple host threads can use this device simultaneously)


Press ENTER to exit…

/Developer/GPU Computing/C/bin/darwin/release$ ./bandwidthTest

Running on…

  device 0:GeForce 8600M GT

Quick Mode

Host to Device Bandwidth for Pageable memory

cudaSafeCall() Runtime API error in file <>, line 647 : no CUDA-capable device is available.

/Developer/GPU Computing/C/bin/darwin/release$ ./nbody

Run “nbody -benchmark [-n=]” to measure perfomance.

cudaSafeCall() Runtime API error in file <>, line 79 : out of memory.


Any advice?

It seems to work now. I have a fairly large external monitor that my laptop seems to have trouble driving (half the time, when I wake up the laptop, the big screen stays blank and I need to unplug, and plug it back in). I had tried unplugging it with no luck, but just now I unplugged it, closed the screen (to go somewhere), then when I opened the screen again, I thought I’d try my luck again, and it worked. I’d still like to know the reason, and ideally be able to use CUDA and my big screen at the same time, but this is pretty good for now.

128MB cards are a tight fit in OSX when you just use the normal display because we have to allocate a large chunk of memory to guarantee CUDA semantics (the context). I bet that when you add an external monitor, the extra framebuffer required for the display means that you don’t have enough memory to create the context.

(also hooray CMU–how are you enjoying the G20 madness? I graduated from there a few years ago :D )