TensorFlow: Wie kann ich die Auslastung des GPU-Speichers (VRAM) protokollieren?

9

TensorFlow reserviert immer (vollständig) den gesamten freien Speicher (VRAM) auf meiner Grafikkarte, was in Ordnung ist, da ich möchte, dass meine Simulationen so schnell wie möglich auf meiner Workstation laufen.

Allerdings würde ich gerne protokollieren, wie viel Speicher (in Summe) TensorFlow wirklich nutzt. Außerdem wäre es wirklich schön, wenn ich auch protokollieren könnte, wie viel Speicher einzelne Tensoren verwenden.

Diese Information ist wichtig, um die Speichergröße zu messen und zu vergleichen, die unterschiedliche ML / AI-Architekturen benötigen.

Irgendwelche Tipps?

    
daniel451 22.10.2016, 09:31
quelle

1 Antwort

10

Update, kann TensorFlow ops verwenden, um Zuordner abzufragen:

%Vor%

Sie können auch detaillierte Informationen zu session.run call erhalten, einschließlich aller Speicherzuweisungen während run call, indem Sie RunMetadata betrachten. IE so etwas wie

%Vor%

Hier ist ein Ende-zu-Ende-Beispiel - nehmen Sie Spaltenvektor, Zeilenvektor und fügen Sie sie hinzu, um eine Matrix von Zusätzen zu erhalten:

%Vor%

Wenn Sie run.txt öffnen, sehen Sie Nachrichten wie folgt:

%Vor%

Hier können Sie also sehen, dass a und b 52 Bytes (13 * 4) zugewiesen sind und das Ergebnis 676 Bytes zugewiesen hat.

    
Yaroslav Bulatov 22.10.2016, 21:11
quelle

Tags und Links