How can I use intel integrated graphic card for display and use Nvidia discreted card for CUDA only

I just install Cuda 5.5 on Ubuntu 12.04.4.
For needs of long-time GPU computation, I need use CPU with Intel HD4000 acts as display, and use Nvidia GTX660 for computing purpose only.

The trouble I met is that if I set GTX660 as primary graphics, Ubuntu system won’t detect the integrated card (HD4000), which means the command “lspci | grep VGA” return only the info of Nvidia card, no Intel card detected here.

However, if I set Intel HD4000 as the primary graphics in BIOS, the Nvidia module seems to not be running, the most obvious proof is that I cannot run CUDA samples anymore.

is there anyone met such case?

I realize this is by now a 9-year-old -question, but for the benefit of other users:

  • The Intel HD4000 is your “primary” for graphics.
  • There’s no particular reason the NVIDIA module(s) should be loaded if you’re not using it. At the same time - it should be loadable. Try loading one/some of the NVIDIA modules with modprobe; or try running one of the NVIDIA samples; or use nvidia-smi.

It works for me - with HD Graphics 630, Devuan GNU/Linux (various versions; it’s basically Debian without systemd); and various versions of CUDA. My cards are two GTX 1050 Ti’s.

some older laptops disabled the nVidia GPU if it was not in use (as a power saving feature). This required the use of special tools to enable it. I think the branding of this power saving feature was called “nVidia Optimus”.

Tools like https://github.com/Bumblebee-Project/bbswitch and optirun were used to enable the GPU on demand, e.g. for CUDA or offscreen rendering purpose.

I also found a page that lists a lot of these tools in one place.

Newer GPUs have a lot less idle power drain (due to aggressive dynamic clocking, internal power gating and better process technology) so switching off the entire discrete GPU has fallen out of vogue.