2017-08-28 10 views
1

私のコンピュータには2つのGPUがインストールされています。コードを実行すると、Tensorflowのデバッグ情報が表示され、2枚のGPUカードの情報が表示されます。一方、私はTFのために指定しなかった場合に使用されるだろうか?私は複数のGPUカードを持っている場合、私はTFのための1つのGPUを効率のために指定する必要があるかどうか。ありがとう〜!Tensorflowで使用するGPUはどれですか?

+0

が一つだけのGPUを使用します'tf.devide("/gpu:1 "):'のようなコードで、どのデバイス上でどの操作を実行するかを手動で指定する必要があります。マルチGPUトレーニングの例が見つかりました[ここ](https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_multi_gpu_train.py) –

+0

私は2つのGPUカードがあればTFによって使用される? –

+0

私は知らないうちに、2つのカードがいくつかのルールに従ってテンソルフローによってピックアップされます。 –

答えて

2

Tensorflowは、システム上で利用可能なすべてのGPUを使用します。

GPUが2つあり、Tensorflowが両方を見ている場合、両方のデバイスに同じメモリが割り当てられ、スケジューリングアルゴリズムを使用して必要なときに1つのGPUメモリから別のGPUメモリに要素をスワップします。

コンテキストマネージャーwith tf.device("/gpu:<number>")を使用して、指定した操作を実行するGPUを決めることができます。しかし、メモリはすべてのGPUに割り当てられています。

代わりにいくつかのGPUのみを使用し、他のGPUの割り当てを避けるには、CUDA環境変数CUDA_VISIBLE_DEVICESを使用する必要があります。

Pythonスクリプトを実行する前に、Tensorflowに表示されるCPUを指定できます。このようにして、一部のデバイスだけが使用されると確信しています。あなたはTensorflowは、あなたがそのようにスクリプトを実行することができる唯一のあなたの第二GPUを見ているしたい場合例えば

、:あなたは複数のGPUを利用したい場合は、デフォルトのtensorflowによって

CUDA_VISIBLE_DEVICES=1 python execute_script.py 
関連する問題