Cuda & Optimus

(This seems like a silly question to ask here, but,…)
Does Cuda work on Linux OS’s with the Optimus chip?

I’d like to write some Cuda code on a laptop that will run under a flavor of Linux. I’m close to buying a laptop but I’m seeing big negative flags about the Optimus chips. Basically all the current laptop Nvidia chips. I can’t tell if that means these chips will or won’t build and/or run Cuda code. Does Cuda play nice with the Optimus GPU selections?

I’m seeing Cuda support in Ubuntu. Should I expect that to work on the Optimus chips?
Will I need the BumbleBee fix?

I’m thinking about going with the Dell XPS 15 series with a 540M or 525M Nvidia chip.

I’d welcome any insight you’d have to offer.

Thanks

(This seems like a silly question to ask here, but,…)
Does Cuda work on Linux OS’s with the Optimus chip?

I’d like to write some Cuda code on a laptop that will run under a flavor of Linux. I’m close to buying a laptop but I’m seeing big negative flags about the Optimus chips. Basically all the current laptop Nvidia chips. I can’t tell if that means these chips will or won’t build and/or run Cuda code. Does Cuda play nice with the Optimus GPU selections?

I’m seeing Cuda support in Ubuntu. Should I expect that to work on the Optimus chips?
Will I need the BumbleBee fix?

I’m thinking about going with the Dell XPS 15 series with a 540M or 525M Nvidia chip.

I’d welcome any insight you’d have to offer.

Thanks

This type of question was asked several times here on forum (and I’ve asked too about it when being into buying new machine, in this old thread) - basically, you want to check that BIOS on given machine has switch to change between using Optimus for graphics, and then using integrated graphics only and using discrete graphics only. If so, then what you could certainly do is to change switch so that discrete graphics only is used, and then you could safely forget about Optimus - everything regarding the driver, CUDA SDK etc. will work as on machines without Optimus.

Depending on your needs for graphics, you may wish to experiment further, maybe with turning Optimus on and trying to utilize Bumblebee, or maybe with using integrated GPU for graphics, and trying to utilize CUDA for computation only (there was an interesting post recently discussing this sort of installation) - personally I have no experience with these types of setup.

This type of question was asked several times here on forum (and I’ve asked too about it when being into buying new machine, in this old thread) - basically, you want to check that BIOS on given machine has switch to change between using Optimus for graphics, and then using integrated graphics only and using discrete graphics only. If so, then what you could certainly do is to change switch so that discrete graphics only is used, and then you could safely forget about Optimus - everything regarding the driver, CUDA SDK etc. will work as on machines without Optimus.

Depending on your needs for graphics, you may wish to experiment further, maybe with turning Optimus on and trying to utilize Bumblebee, or maybe with using integrated GPU for graphics, and trying to utilize CUDA for computation only (there was an interesting post recently discussing this sort of installation) - personally I have no experience with these types of setup.

Sorry for the repeated question, but it wasn’t clear if the Optimus problem was for CUDA developers or game players.
Judging from what you are saying, CUDA is not Optimus friendly. When building CUDA code under Linux, it does enable the Nvidia card. True?
But everything builds and runs fine if it is a Win OS?

Thanks for the response.

Sorry for the repeated question, but it wasn’t clear if the Optimus problem was for CUDA developers or game players.
Judging from what you are saying, CUDA is not Optimus friendly. When building CUDA code under Linux, it does enable the Nvidia card. True?
But everything builds and runs fine if it is a Win OS?

Thanks for the response.

I was talking from the perspective of a developer, I have no clue on perspective of a game player.

Again: if you could verify that your machine BIOS makes it possible to switch to using discrete graphics only (which means turning Optimus off, and then using NVIDIA GPU all the time, and having other, integrated graphics card sitting idle), then for sure you could install and use NVIDIA drivers, CUDA toolkit etc. for developing and running CUDA programs on given machine without any problems. Other types of setup may work too, but as this one worked fine for me, I have to admit I never tried anything different, so I cannot comment further.

I was talking from the perspective of a developer, I have no clue on perspective of a game player.

Again: if you could verify that your machine BIOS makes it possible to switch to using discrete graphics only (which means turning Optimus off, and then using NVIDIA GPU all the time, and having other, integrated graphics card sitting idle), then for sure you could install and use NVIDIA drivers, CUDA toolkit etc. for developing and running CUDA programs on given machine without any problems. Other types of setup may work too, but as this one worked fine for me, I have to admit I never tried anything different, so I cannot comment further.

From responses on other sites, the XPS 15 does NOT support the graphics chip selection in BIOS. So there is no Linux Optimus work-around. Plugging a device into the HDMI port forces the Nvidia chip into service (for the Win people). But it isn’t clear if this done by HW or SW. I’ll suggest this is done w/ software. This would suggest unknown operation under Linux (HDMI forcing Nvidia). (This may be worth investigating.) Some XPS info

The Lenovo W520 appears to be solution for CUDA development under Linux. It is ~$100 more than the XPS. But there is better Linux support for the W520, and there are other CUDA developers that use it. I will probably end up with an W520.

Some W520 Ubuntu info

I can only recommend W520 - I ended up buying it, and it served me great throughout past half year (with Slackware 64-bit installed).

If you could afford it, I’d strongly recommend going for Quadro 2000M card, instead of Quadro 1000M (that is typically default option) - 2000M has twice as much CUDA cores as 1000M.

I bought a Samsung SF410 one year ago because i wanted to use CUDA, I found that Optimus was not supported a the time in Linux.

Right now I have been able to successfully compile for release and debug cuda code with my laptop running Ubuntu and the bumblebee fix. I can tell you that using command line or emacs to compile/debug is possible and I have even set up Netbeans as my IDE to do all that stuff. I was able to compile with Nvidia 4 and 4.1, Ubuntu 10.10, 11.04 and 11.10 in both 64bit and 32bit.

By the way my laptop has no bios switch to turn off the Intel card and use only the Nvidia card.

So it is possible, but you have to set up a series of workarrounds…

EDIT:
Actually a friend just told me he cannot run his Gnome Display Manager and debug at the same time with his laptop that has only the Nvidia Card, so probably having the dual thing (Optimus) might be and advantage…

A few days I ago I managed to install the optimus and the CUDA driver on my laptop. It works without problems. http://forums.nvidia.com/index.php?showtopic=208065 I have an acer 4830tg. I use Ubuntu 11.10.