-1

症状:

まず最初に、このボックスに実際に 2 枚の nvidia カードがあることを確認しようとしています。

VS2010 の場合 -> NSight -> Windows -> SystemInfo -> ディスプレイ デバイス

2 つのデバイスがあるように見えることがわかります。

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

名前 \.\DISPLAY2
ID PCI\VEN_10DE&DEV_1200&SUBSYS_35151458&REV_A1
状態フラグ なし

しかし

VS2010 -> NSight -> Windows -> SystemInfo -> GPU デバイスまたは CUDA デバイス

  1. 値の列が 1 つしか表示されない (「属性」列はカウントされない)

  2. [NVIDIA コントロール パネル] -> [3D 設定] -> [PhysX 構成の設定] の下に 1 つのカードしか表示されない

  3. コードでは、私がするとき

    int devCount; cudaGetDeviceCount(&devCount);

devCount は単に「1」になります

その結果、思い通りに特定の GPU を使用するように設定できません。

質問:

私は疑問に思う

  1. これが 1 番目の GeForce カードがモニターによって使用されているためである場合、すべての CUDA 計算は 2 番目のカードで実行され、2 番目のカードのみを認識しますか?

  2. 仮定が正しい場合でも、2 つの GPU デバイスで計算を実行できるように、Windows でこれを回避する方法はありますか?

4

1 に答える 1

0

Windows システムの GPU の数がわからない場合は、デバイス マネージャーを確認することをお勧めします。または、システムに物理的にアクセスできる場合は、ケースの I/O 領域を見てカードを数えるか、箱を開いてカードを数えます。

また、デバイス マネージャーでは、Tesla K10 や GeForce GTX 690 (および他にもいくつかあります) などのGPU は、物理カードが 1 つしかない場合でも、2 つの GPU アダプターとして表示されることに注意してください。ただし、論理およびプログラミングの目的で、これらのデバイスは 2 つの別個のアダプターとして表示されます。同様に、CUDA はそれらを 2 つの個別の GPU として列挙するため、たとえばcudaSetDevice()どちらかを選択するために使用できます。このようなカードは、実質的に 2 つの GPU を 1 つにまとめたものです。

于 2013-05-01T03:17:30.460 に答える