2
私はCaffeにGPUを使用しています。私はnvidia-smi
を行うと、それはGPUのデバイス番号が一致しません
| NVIDIA-SMI 352.63 Driver Version: 352.63 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 750 Ti Off | 0000:01:00.0 On | N/A |
| 44% 52C P0 2W/38W | 464MiB/2047MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Quadro M4000 Off | 0000:02:00.0 Off | N/A |
| 59% 74C P0 66W/120W | 7434MiB/8191MiB | 95% Default |
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1428 G /usr/lib/xorg/Xorg 316MiB |
| 0 2200 G compiz 139MiB |
| 1 29863 C ./caffe-segnet/build/tools/caffe 7413MiB |
+-----------------------------------------------------------------------------+
を示ししかし、私はカフェを実行し、GPU 1を選択すると、それはメモリ不足を私に教えてくれます。 GPU 0 build/tools/caffe train -gpu 0 -solver solver.prototxt
を選択すると、それを実行できます。
なぜですか?
CUDAは、PCIeとは別の独自のデバイス列挙を使用し、デバイスの順序番号0を最も有能なデバイスに割り当てるヒューリスティックを持っています。私は文書から章と詩を引用する時間がないので、誰かが適切な答えを書いてくれることを願っています。 – njuffa
あなたのバッチサイズがあなたの2GBのメモリにとって高すぎるかどうかを確認できます。画像の寸法とネットワーク層の設計により、大きなメモリが必要になることがあります。 600x800のイメージを使用し、2GBのメモリに収まらない出力とカーネルサイズの高い16層のネットワークがあるとします。 –
GPU 1で実行中の同じプログラムを実行しようとすると確かに 'GPU 0'には適合しません。あなたの情報から、およそ7GBの(** 7434MiB **/8191MiB)と1GBのあなたの 'GPU 0' –