2017-05-23 2 views
0

Ich trainierte ein neuronales Netzwerk mit einer GPU (1080 Ti). Die Trainingsgeschwindigkeit auf der GPU ist viel besser als die CPU.Welchen Einfluss hat die Verwendung einer GPU bei der Bereitstellung eines TensorFlow-Modells?

Derzeit möchte ich dieses Modell mit TensorFlow Serving bedienen. Ich wollte nur wissen, ob die Verwendung von GPU im Serving-Prozess die gleiche Auswirkung auf die Leistung hat?

Da das Training auf Batches angewendet wird, aber das Inferieren (Serving) asynchrone Anforderungen verwendet, schlagen Sie vor, GPU für die Bereitstellung eines Modells mit TensorFlow-Serving zu verwenden?

Antwort

1

Sie müssen noch eine Menge Tensor-Operationen auf dem Graph durchführen, um etwas vorherzusagen. Daher bietet die GPU immer noch eine Leistungsverbesserung für die Inferenz. Werfen Sie einen Blick auf diese nvidia paper, haben sie ihre Sachen auf TF nicht getestet, aber es ist immer noch relevant:

Unsere Ergebnisse zeigen, dass GPUs state-of-the-art-Inferenz Leistung und Energieeffizienz bieten, so dass sie die Plattform der Wahl für alle, die ein trainiertes neuronales Netzwerk in diesem Bereich einsetzen möchten. In insbesondere liefert die Titan X zwischen 5,3 und 6,7-mal höher als die 16-Core-Xeon E5-CPU 0, während sie 3,6 bis 4,4 mal höhere Energieeffizienz erreicht.

1

Die kurze Antwort ist ja, Sie erhalten ungefähr die gleiche Beschleunigung für das Laufen auf der GPU nach dem Training. Mit ein paar geringen Qualifikationen.

Sie absolvieren 2 Durchgänge über die Daten im Training, was alles auf der GPU passiert, während der Feedforward-Inferenz arbeiten Sie weniger, so dass mehr Zeit für die Übertragung von Daten in den GPU-Speicher im Vergleich zu Berechnungen benötigt wird als im Training. Dies ist jedoch wahrscheinlich ein kleiner Unterschied. Und Sie können jetzt die GPU asynchron laden, wenn das ein Problem ist (https://github.com/tensorflow/tensorflow/issues/7679).

Ob Sie tatsächlich eine GPU benötigen, um Rückschlüsse zu ziehen, hängt von Ihrer Arbeitslast ab. Wenn Ihre Arbeitslast nicht übermäßig hoch ist, können Sie trotzdem mit der CPU arbeiten, schließlich beträgt die Rechenlast weniger als die Hälfte pro Beispiel. Berücksichtigen Sie daher die Anzahl der Anforderungen pro Sekunde, die Sie liefern müssen, und testen Sie, ob Sie überlasten Ihre CPU, um das zu erreichen. Wenn Sie es tun, Zeit, um die GPU zu bekommen!

Verwandte Themen