2016-03-21 20 views

答えて

7

(1)メモリ割り当てを記録するためのTimelineといくつかの限定的なサポートがあります。ここではその使い方の例です:

run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE) 
    run_metadata = tf.RunMetadata() 
    summary, _ = sess.run([merged, train_step], 
          feed_dict=feed_dict(True), 
          options=run_options, 
          run_metadata=run_metadata) 
    train_writer.add_run_metadata(run_metadata, 'step%03d' % i) 
    train_writer.add_summary(summary, i) 
    print('Adding run metadata for', i) 
    tl = timeline.Timeline(run_metadata.step_stats) 
    print(tl.generate_chrome_trace_format(show_memory=True)) 
    trace_file = tf.gfile.Open(name='timeline', mode='w') 
    trace_file.write(tl.generate_chrome_trace_format(show_memory=True)) 

あなたはMNISTの例で、このコードを試してみることができます(mnist with summaries

これは、あなたがChromeで開くことができ、タイムラインという名前のトレースファイルを生成します:/ /トレース。これは、GPUのメモリ使用統計を近似したものに過ぎないことに注意してください。基本的にGPUの実行をシミュレートしましたが、フルグラフのメタデータにアクセスすることはできません。また、GPUに割り当てられた変数の数もわかりません。

(2)GPUのメモリ使用量の非常に粗い測定のために、NVIDIA-SMIは、このコマンドを実行する時に、全デバイスのメモリ使用量を表示します。

nvprofは、オンチップ共有メモリ使用量を示し、CUDAカーネル・レベルで使用レジスタが、グローバル/デバイスメモリの使用状況を示していないができます。ここで

はコマンド例です:--print-GPU-トレースnvprof matrixMulここ

そして詳細: http://docs.nvidia.com/cuda/profiler-users-guide/#abstract

+0

chrome:// tracing内からデバイスの合計割り当てを確認できますか? –

0

サードパーティのGPUメモリトラッカー(GPU-Z)を使用して、GPUの全体的な使用状況を視覚化することができます。プロセスごとにGPUを使用するわけではありませんが、テンソルフローだけでGPUを使用していて、詳細な解析が必要ない場合は、高速かつ正確なソリューションになります。

関連する問題