3

利用可能なCUDA対応デバイスは4つあります。

teslabot$ ./deviceQuery | grep -i "device [0-9]\|capability"
Device 0: "Tesla C2050 / C2070"
  CUDA Capability Major/Minor version number:    2.0
Device 1: "Tesla C2050 / C2070"
  CUDA Capability Major/Minor version number:    2.0
Device 2: "GeForce GTX 295"
  CUDA Capability Major/Minor version number:    1.3
Device 3: "GeForce GTX 295"
  CUDA Capability Major/Minor version number:    1.3

cuda-dbgそれらの1つだけが表示されます:

teslabot$ cuda-gdb vector_add
NVIDIA (R) CUDA Debugger
4.0 release
Portions Copyright (C) 2007-2011 NVIDIA Corporation
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
[...]
(cuda-gdb) break vector_add_gpu
Breakpoint 1 at 0x400ddb: file vector_add.cu, line 7.
(cuda-gdb) run
[...]
(cuda-gdb) info cuda devices
  Dev Description SM Type SMs Warps/SM Lanes/Warp Max Regs/Lane Active SMs Mask
*   0       gt200   sm_13  30       32         32           128 0x00000001

-gencode arch=compute_20,code=sm_20私は、上記のマシンでエラーなしでコンパイルされたコードビルドを確認しました。コンパイルすると、CUDAカーネルでのsm_20使用が正しく機能します。printf

cuda-gdbすべてのデバイス(おそらくグラフィックスに使用されるものを除く...ただし、この場合はSSH経由でリモートでログを記録しています)、または少なくとも1つのTesla / sm_20デバイスを表示するにはどうすればよいですか?


環境変数を「0,1」のみを含むように設定する、つまりテスラのみを表示するように設定して、 Michael Foukarakisの応答でアドバイスにCUDA_VISIBLE_DEVICES従うと、実行後に次のエラーが発生しますinfo cuda devices

(cuda-gdb) info cuda devices
fatal:  All CUDA devices are used for X11 and cannot be used while debugging. (error code = 24)

X11(X.Org)で使用されているデバイスを確認する方法、およびX Window SystemでTeslaではなくGeForceを使用するようにする方法は?

4

1 に答える 1

2

CUDA_VISIBLE_DEVICES次のような、使用するすべてのデバイスが環境変数に含まれていることを確認できますか?

$ ./deviceQuery -noprompt | egrep "^Device"
Device 0: "Tesla C2050"
Device 1: "Tesla C1060"
Device 2: "Quadro FX 3800"

変数を設定することで、それらのサブセットのみをランタイムに表示できます。

$ export CUDA_VISIBLE_DEVICES="0,2"
$ ./deviceQuery -noprompt | egrep "^Device"
Device 0: "Tesla C2050"
Device 1: "Quadro FX 3800"
于 2012-01-11T12:28:46.557 に答える