Using GPU for CUDA and integrated graphics for display - can't make it work

I need to have my display handled by the integrated graphics, and have the GPU used for CUDA only. I see from many posts here and elsewhere that this should be possible, but I have been unable to do it.

My spec:
Dell Optiplex 990 running Windows 7
Dell BIOS updated to A18
GeForce GTX 745 GPU
CUDA 8.0 toolkit and samples installed
Graphics driver 378.66 installed, as advised for this card.

I believe CUDA and the graphics driver are installed correctly, since I can a) run deviceQuery successfully when the monitor is plugged into the GPU and b) run deviceQuery and my own CUDA code successfully when no monitor is plugged in and I access the box via RDP

When I plug the monitor into the integrated graphics, deviceQuery fails with:

cudaGetDeviceCount returned 30
-> unknown error
Result = FAIL

Additionally, NVIDIA Control Panel will not start unless the display is connected to the GPU card.

There are no BIOS options to set primary display. I have seen a suggestion to change to the BIOS to that of another vendor, but that sounds too risky to me.

Does anyone know of any other things I could try to get this working?

John Gregor

The principal reason to do this (I think) is so that you can prevent the WDDM TDR system from affecting the CUDA GPU. But with a GeForce GPU, that won’t be possible, no matter what you do as far as integrated graphics goes.

FWIW, it appears that the Dell Optiplex SBIOS is detecting which GPU has the monitor connected to it, and disabling the other GPU. Unless you can modify that behavior, it would appear your only option is to plug the monitor into the GeForce card, if you want any ability to use it.

Very familiar with Dell Optiplex line as my university uses those and I’ve placed NVIDIA GPUs on just about every single model from the 980 line to the 9020 line.

I just now upgraded a spare A18 BIOS Optiplex 990 to A19, and set the option of ‘Multi Display’ on in the BIOS while having an AMD card connected in the primary blue slot. (not sure if this option is needed or not, though)
Link for BIOS:

Next, I shutdown the system and booted it up with connecting a VGA cable to its native VGA port. That worked fine.

I shutdown the system again, and replaced the AMD card with an NVIDIA GT630, and it booted again just fine. At this point I tried to run nvidia-smi and cuda-z after installing the NVIDIA driver and rebooting again. The former couldn’t initialize NVRM, the latter could not find a CUDA card.

I noticed that the Intel HD graphics driver was not installed. Once I installed it and rebooted, I was able to run nvidia-smi and cuda-z successfully. I had to use a DP to DVI adapter because the VGA port wouldn’t work at a resolution over 1366x768 for whatever reason.

So the moral is, if you are using integrated graphics with a monitor connected, you NEED to install the driver before the NVIDIA card will work, at least on this particular Dell model, but more than likely on any other system. Very similar to any laptops that have integrated video w/ Optimus – the same is true. The intel driver must be installed before the NVIDIA card will work.

FWIW, the link for the latest version of that driver (2nd generation processors) is here:

I also know that the 980 with the latest BIOS you can install Dual GPUs, and the BIOS boots from the card that is in the default video card slot, so you could have a secondary GPU without having to plug a display to it.

For completeness, with the 9010 (and I believe 9020) models, a BIOS option appears to explicitly allow to select Intel Video as default with the latest BIOS versions.

vacaloca - you hit the nail on the head! I updated the Intel HD graphics driver to the latest and I can now run the display off the integrated graphics and CUDA on the GPU. Many thanks for your detailed response - that was a big help. Thanks both for taking the time to respond.