Ich führe ein typisches 5-Schicht Faltungsnetzwerk auf der GPU in Tensorflow. Wenn ich auf einer schnellen 1080 TI GPU laufe, bekomme ich ungefähr 35% GPU Auslastung. Auf einer langsameren M40 bekomme ich 80% Auslastung und 97% Auslastung auf einer 970m mobilen GPU.Tensorflow läuft mit 35% GPU-Auslastung, Profiler zeigt ungerade CPU-Aktivität
Ich habe die GPU-Warteschlange tf.StagingArea implementiert und mit einer Warnmeldung bestätigt, dass StagingArea vor jedem Trainingsschritt nicht leer ist. Es wird asynchron gespeist.
Ich habe den Tensorflow Profiler unten gesehen. Bemerkenswerterweise scheinen die Hauptoperationen auf der GPU in 15 ms abgeschlossen zu sein, aber dann gibt es eine Lücke zwischen 15 ms und 40 ms, wo vom Profiler nichts registriert wird. Bei 40 ms treten drei kleine CPU-Vorgänge auf, die mit dem Optimierer in Zusammenhang stehen (globale Schrittaktualisierung).
Dieses Verhalten ist bei jedem Schritt konsistent.
Irgendeine Idee, warum es hier eine solche Verzögerung gibt?