Gibt es eine Möglichkeit festzustellen, wie viel Grafikspeicher von TensorFlow verwendet wird?

8

Tensorflow neigt dazu, den gesamten verfügbaren Speicher auf seinen GPUs vorzubelegen. Kann man beim Debuggen sagen, wieviel Speicher tatsächlich benutzt wird?

    
Maarten 21.03.2016, 05:27
quelle

2 Antworten

7

(1) Die Zeitleiste enthält nur begrenzte Unterstützung Speicherzuweisungen protokollieren. Hier ist ein Beispiel für seine Verwendung:

%Vor%

Sie können diesen Code mit dem MNIST-Beispiel ausprobieren ( mnist) mit Zusammenfassungen )

Dadurch wird eine Ablaufverfolgungsdatei mit dem Namen timeline erstellt, die Sie mit chrome: // tracing öffnen können. 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 Nutzung des gemeinsamen Speichers auf dem Chip anzeigen und die Verwendung auf der CUDA-Kernel-Ebene registrieren, zeigt aber nicht die globale / Gerätespeicherbelegung an.

Hier ist ein Beispielbefehl: nvprof --print-gpu-trace matrixMul

Und weitere Details hier: Ссылка

    
Yao Zhang 20.06.2016, 21:17
quelle
2

Der TensorFlow-Profiler hat eine verbesserte Speicherzeitleiste, die auf echten GPU-Speicherzuweisungsinformationen basiert Ссылка

    
Peter 06.09.2017 05:16
quelle

Tags und Links