web-dev-qa-db-ja.com

Tensorflow:モデルトレーニング中にリアルタイムでGPUパフォーマンスをどのように監視しますか?

私はUbuntuとGPUを初めて使用し、最近、Ubuntu 16.04と4つのNVIDIA 1080ti GPUを備えた新しいPCをラボで使用しています。このマシンにはi7 16コアプロセッサも搭載されています。

基本的な質問がいくつかあります。

  1. GPU用にTensorflowがインストールされています。では、GPUの使用が自動的に優先されると思いますか?もしそうなら、それは4つすべてを一緒に使用しますか、それとも1つを使用し、必要に応じて別のものを採用しますか?

  2. モデルのトレーニング中にGPUの使用/アクティビティをリアルタイムで監視できますか?

これは基本的なハードウェアに関するものだと私は完全に理解していますが、これらの特定の質問に対する明確な決定的な回答が素晴らしいでしょう。

編集:

この出力に基づくと、これは実際に、GPUのそれぞれのほぼすべてのメモリが使用されていることを示していますか?

enter image description here

9
GhostRider
  1. Tensorflowは自動的にすべてのGPUを利用するわけではなく、1つのGPUのみを使用します。具体的には最初のGPU /gpu:0

    利用可能なすべてのgpusを利用するには、マルチgpusコードを記述する必要があります。 cifar mutli-gpuの例

  2. 0.1秒ごとに使用状況を確認する

    watch -n0.1 nvidia-smi

12
Ishant Mrinal
  1. 他に指示がない場合、GPU対応のTensorFlowインストールはデフォルトで最初に利用可能なGPUを使用します(NvidiaドライバーとCUDA 8.0がインストールされており、GPUに必要な 計算機能ドキュメントによれば は3.0です)。より多くのGPUを使用する場合は、 tf.device グラフ内のディレクティブ(詳細については ここ )。
  2. GPUの使用状況を確認する最も簡単な方法は、コンソールツール nvidia-smi 。ただし、topまたは他の同様のプログラムとは異なり、現在の使用状況のみが表示され、終了します。コメントで提案されているように、watch -n1 nvidia-smiプログラムを継続的に(この場合は1秒ごとに)再実行します。
4
jdehesa

上記のすべてのコマンドはwatchを使用します。builinルーパーnvidia-smi -l 1を使用して、コンテキストを有効に保つ方がはるかに効率的です。

htopnvidia-smiのようなものを同時に表示したい場合は、 glancespip install glances)を試してください。

0
TimZaman

GCPを使用している場合は、StackDriverでGPU使用率を監視できるこのスクリプトをご覧ください。また、nvidia-smi -l 5コマンドを使用してnvidia-smiデータを収集し、それらの統計を追跡して追跡できるようにすることもできます。

https://github.com/GoogleCloudPlatform/ml-on-gcp/tree/master/dlvm/gcp-gpu-utilization-metrics

enter image description here

0
gogasca