Question

Symptoms:

I'm trying to first of all make sure there are actually two nvidia cards in this box, so

in VS2010 -> NSight -> Windows -> SystemInfo -> Display Devices

I can see that there seems to be two devices.

NVIDIA GeForce GTX 560 Ti

Name    \\.\DISPLAY1<br>
ID  PCI\VEN_10DE&DEV_1200&SUBSYS_35151458&REV_A1<br/>
State Flags AttachedToDesktop, PrimaryDevice<br/>

Monitor<br/>    
    Name    \\.\DISPLAY1\Monitor0 <br/>
    String  Generic PnP Monitor <br/>
    State Flags AttachedToDesktop, MultiDriver <br/>

NVIDIA GeForce GTX 560 Ti

Name \.\DISPLAY2
ID PCI\VEN_10DE&DEV_1200&SUBSYS_35151458&REV_A1
State Flags None

BUT

in VS2010 -> NSight -> Windows -> SystemInfo -> GPU Devices or CUDA Devices

  1. I can only see one column of values (not counting the 'Attribute' column)

  2. I can only see one card under NVIDIA Control Panel -> 3D settings -> set PhysX Configuration

  3. In code, when I do

    int devCount; cudaGetDeviceCount(&devCount);

devCount will be just '1'

As a result, I cannot set to use a specific GPU as I wanted.

QUESTIONS:

I wonder

  1. If this is because the 1st GeForce card is used by the monitor hence all CUDA computations are carried out on the 2nd card and are only aware of the 2nd card?

  2. Even if assumption is correct, is there a way to circumvent this on Windows so that I can still do computation on two GPU devices?

Was it helpful?

Solution

My recommendation if unsure of the number of GPUs in a windows system is to check Device Manager. Alternatively, if you have physical access to the system, look at the I/O area of the case and count the cards, or open the box and count the cards.

Also note that in device manager, GPUs like Tesla K10 and GeForce GTX 690 (and there are some others) will show up as 2 GPU adapters, even though there is only one physical card. However, for logical and programming purposes, these devices will show up as 2 separate adapters. Likewise, CUDA will enumerate them as 2 separate GPUs, so that you can for example use cudaSetDevice() to select one or the other. Cards like these are effectively two GPUs in one.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top