Tensorflow neigt dazu, den gesamten verfügbaren Speicher auf seinen GPUs vorzubelegen. Gibt es beim Debuggen eine Möglichkeit zu sagen, wie viel Speicher tatsächlich verwendet wird?Gibt es eine Möglichkeit festzustellen, wie viel Grafikspeicher von TensorFlow verwendet wird?
Antwort
(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
Der TensorFlow Profiler hat Speicher Timeline verbessert, die auf realen gpu Speicherzuordner Informationen basiert https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler#visualize-time-and-memory
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.
- 1. Gibt es eine Möglichkeit festzustellen, auf welche Textnachricht geantwortet wird?
- 2. Gibt es eine Möglichkeit festzustellen, ob Ihre App verwendet wird, während der Benutzer telefoniert?
- 3. Gibt es eine Möglichkeit zu sehen, wie viel CPU-Nutzung pro Prozessorkern verwendet wird?
- 4. Gibt es eine Möglichkeit festzustellen, ob Java System.in "interaktiv" ist?
- 5. Gibt es eine Möglichkeit festzustellen, ob ein benutzerdefiniertes Modul existiert?
- 6. Gibt es eine Möglichkeit, herauszufinden, welcher Code eine Assembly verwendet?
- 7. Gibt es eine Möglichkeit, zur Laufzeit festzustellen, auf welcher API-Ebene ein Android-Gerät ausgeführt wird?
- 8. .NET: Gibt es eine Möglichkeit, festzustellen, wenn ein Objekt entsorgt/Müll gesammelt wird?
- 9. Gibt es eine Möglichkeit zu messen, wie viel ein Shell-Befehl Speicher verwendet?
- 10. Gibt es eine Möglichkeit festzustellen, wann ein .NET-Thread beendet wird?
- 11. Gibt es eine Möglichkeit herauszufinden, ob eine Softwaretastatur angezeigt wird?
- 12. Wie viel Speicher wird von Mondrian verwendet?
- 13. Gibt es eine korrekte Möglichkeit festzustellen, dass eine NSNummer von einem Bool mit Swift abgeleitet wurde?
- 14. Flex: Gibt es eine Möglichkeit festzustellen, wann der gesamte Code nicht mehr ausgeführt wird?
- 15. Gibt es eine Möglichkeit festzustellen, wann das Hauptfenster der Qt-Anwendung angezeigt wird?
- 16. Gibt es in ColdFusion eine Möglichkeit, festzustellen, auf welchem Server der Code ausgeführt wird?
- 17. Gibt es eine Möglichkeit festzustellen, wie viele Zeichen von sprintf geschrieben werden?
- 18. Gibt es eine Möglichkeit festzustellen, ob der GWT-Code im Entwicklungsmodus ausgeführt wird?
- 19. Wird GObject viel außerhalb von GNOME verwendet?
- 20. Gibt es eine Möglichkeit, programmgesteuert festzustellen, ob eine Schriftartdatei über eine bestimmte Unicode-Glyphe verfügt?
- 21. Bestimmen Sie, wie viel Speicher eine Klasse verwendet?
- 22. Gibt es eine Möglichkeit festzustellen, ob ein QObject zu einem "toten" QThread gehört?
- 23. Gibt es eine Möglichkeit festzustellen, ob eine Methode in einer Java-Klasse überschrieben wurde
- 24. Gibt es eine Möglichkeit festzustellen, ob --debug oder --verbose in einem Test an PHPUnit übergeben wurde?
- 25. Gibt es eine Möglichkeit festzustellen, welche Version von Visual Studio zum Kompilieren einer statischen Bibliothek verwendet wurde?
- 26. Gibt es eine Möglichkeit festzustellen, ob eine E-Mail eine Antwort/Antwort mit Ews C# ist?
- 27. Gibt es eine Möglichkeit festzustellen, ob eine Schriftart einen bestimmten Zeichen in Imagick unterstützt?
- 28. Gibt es eine Möglichkeit innerhalb der JVM festzustellen, ob eine bestimmte Methode JIT kompiliert wurde?
- 29. Gibt es eine TensorFlow-Dekonvolution op?
- 30. Gibt es eine Möglichkeit festzustellen, ob ein Android-Telefon die Voicemail-Integration im Anrufprotokoll unterstützt?
Von innerhalb von chrome: // Ablaufverfolgung Wo können Sie die gesamte Gerätezuordnung sehen? –