I am working on writing OpenCL programs running on a MacBook Pro with built-in Nvidia GPU. I know that OpenCL kernels can run on the CPU, or the integrated Intel GPU. But if I want to configure it to run on the Nvidia GPU, do I need to install CUDA and other Nvidia stuff? Thanks!


No, you do not. OpenCL and Metal will run automatically on the Nvidia GPU. If you want to take advantage of Nvidia's CUDA architecture (which I highly recommend for software that takes advantage of it, like the Adobe CC suite), you need to install the CUDA driver. You do not need to install the Nvidia web driver because your machine has a built-in Nvidia card (the driver is built-in to MacOS).


If you want to use CUDA on High Sierra, you may well have to install both CUDA and the nVidia Web Drivers. On older versions of MacOS you only need to install CUDA. Apple rewrote the DisplayServer to use Metal for High Sierra, which is possibly the cause.

(I say 'may well', because this has certainly been my experience on a 2013 rMBP with a GT650M).

  • That’s what I thought in the beginning as well. But I found I do not need to install CUDA or Web Driver to use OpenCL. Apple Developer documentation says Metal does not need additional drivers to be installed as well. However, I do find I need the Web Driver for CUDA to work. Coincidentally, my MacBook Pro also has a GT650M graphics card. Just as you said, High Sierra uses a new window server wrote in Metal, and it is causing problems —when I select the Web Driver, there will be some graphic errors in the window server and in Safari, and I sometimes have to reboot my Mac. – jackxujh Apr 19 '18 at 13:53
  • Yes, I misread your question, sorry. It's only in the case of wanting CUDA support that you'll also need the Web Drivers, as you say. Also, I've mostly used the standard High Sierra drivers, and I've had plenty of graphical corruption issues and the occasional lockup - so it's not just the nVidia drivers that suffer from that! :) – Adrian B Apr 19 '18 at 15:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .