2016-03-21 3 views

Antwort

7

(1) Es gibt eine begrenzte Unterstützung mit Timeline für das Protokollieren von Speicherzuordnungen. Hier ist ein Beispiel für seine Nutzung:

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)) 

Sie diesem Code einen Versuch mit dem MNIST Beispiel geben können (mnist with summaries)

Diese eine Protokollierungsdatei mit dem Namen Timeline generieren, die Sie mit Chrom öffnen:// Verfolgung. Beachten Sie, dass dies nur eine ungefähre GPU-Speichernutzungsstatistik ergibt. Es simuliert im Grunde eine GPU-Ausführung, hat aber keinen Zugriff auf die vollständigen Graph-Metadaten. Es kann auch nicht wissen, wie viele Variablen der GPU zugewiesen wurden.

(2) Für ein sehr grobes Maß an GPU-Speicherverbrauch zeigt nvidia-smi die gesamte Gerätespeicherbelegung zum Zeitpunkt der Ausführung des Befehls an.

nvprof kann die Verwendung des gemeinsamen Speichers auf dem Chip anzeigen und die Verwendung auf der CUDA-Kernel-Ebene registrieren, zeigt jedoch nicht die globale/Gerätespeicherbelegung an. Hier

ist ein Beispiel Befehl: nvprof --print-gpu-Spur matrixMul

und Details hier: http://docs.nvidia.com/cuda/profiler-users-guide/#abstract

+0

Von innerhalb von chrome: // Ablaufverfolgung Wo können Sie die gesamte Gerätezuordnung sehen? –

0

Sie können GPU-Speicher-Tracker von Drittanbietern (dh GPU-Z) verwenden, um die gesamte GPU-Nutzung zu visualisieren. Sie geben Ihnen möglicherweise nicht die GPU-Nutzung pro Prozess, aber wenn Sie GPU nur für Tensorflow verwenden und keine detaillierte Analyse benötigen, wäre dies eine schnelle und genaue Lösung.

Verwandte Themen