Macbook Pro, Yosemite, CUDA 7.0.36, GeForce GT 750M, cudaMalloc gives error 63.

Hi everyone,

Im new to CUDA. Im trying to get a simple program running on my 2013 Macbook pro, which contains a GeForce GT 750M. I’m running Mac OSX 10.10.3 Yosemite. Ive installed the latest CUDA 7.0.36 and the latest XCode command line tools 6.1.0. I have stripped back everything to the first cuda call. As far as I can tell, the very first call to cudaMalloc fails with error 63 = “OS call failed or operation not supported on this OS”.

But, I can compile the examples under /Developer/NVIDIA/CUDA-7.0/samples/, and I can run deviceQuery successfully (as far as I can tell). So, I believe that the card and CUDA itself is fine.

However, I do have under /Developer/NVIDIA versions 5.5, 6.0 and 7.0.

My program is also configured using CMake, which may well pick up wrong versions of libraries from wrong places, but I dont yet have any evidence to suggest that this is or isn’t a problem. I merely mention CMake in case that helps anyone.

I also was previously trying all the same things under Mavericks. I failed there too. My understanding is that on Mavericks, Mac OSX 10.9, the nvcc compiler used libstdc++, and hence all my code should be compiled using libstdc++. I was doing this using CUDA 6.0. This failed in the same manner, so I upgraded to the latest XCode, and compiled everything using libc++. Still no joy.

So, Im running out of things to check at this point.

Can anyone help?

Thanks in advance.

Matt

It turned out that while my unit test ran a single function and kernel, the function and kernel were contained within a larger library, which the unit test linked to. Within that library was another completely unrelated kernel that #included . This seems to work on Windows, but not on Mac. Once I removed that, all was well.