-1

症状:

我首先要确保这个盒子里实际上有两张 nvidia 卡,所以

在 VS2010 -> NSight -> Windows -> SystemInfo -> 显示设备

我可以看到似乎有两个设备。

英伟达 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/>

英伟达 GeForce GTX 560 Ti

名称 \.\DISPLAY2
ID PCI\VEN_10DE&DEV_1200&SUBSYS_35151458&REV_A1
状态标志 无

在 VS2010 -> NSight -> Windows -> SystemInfo -> GPU 设备或 CUDA 设备

  1. 我只能看到一列值(不包括“属性”列)

  2. 我只能在 NVIDIA 控制面板 -> 3D 设置 -> 设置 PhysX 配置下看到一张卡

  3. 在代码中,当我这样做时

    整数开发计数;cudaGetDeviceCount(&devCount);

devCount 将只是 '1'

结果,我无法根据需要设置为使用特定的 GPU。

问题:

我想知道

  1. 如果这是因为显示器使用了第一张 GeForce 卡,因此所有 CUDA 计算都在第二张卡上进行,并且只知道第二张卡?

  2. 即使假设是正确的,有没有办法在 Windows 上规避这个问题,以便我仍然可以在两个 GPU 设备上进行计算?

4

1 回答 1

0

如果不确定 Windows 系统中的 GPU 数量,我的建议是检查设备管理器。或者,如果您可以物理访问系统,请查看机箱的 I/O 区域并数卡,或打开盒子并数卡。

另请注意,在设备管理器中,Tesla K10 和 GeForce GTX 690(以及其他一些)等 GPU 将显示为2 个GPU 适配器,即使只有一个物理卡。但是,出于逻辑和编程目的,这些设备将显示为 2 个单独的适配器。同样,CUDA 会将它们枚举为 2 个独立的 GPU,以便您可以cudaSetDevice()选择其中一个。像这样的卡实际上是两个 GPU 合二为一。

于 2013-05-01T03:17:30.460 回答