Ich betreibe ein tief lernendes neuronales Netzwerk, das von einer GPU trainiert wurde. Ich möchte dies jetzt auf mehreren Hosts bereitstellen, um darauf schließen zu können. Die Frage ist, unter welchen Bedingungen ich entscheiden soll, ob ich GPUs oder CPUs als Inferenz verwenden soll.
Weitere Details aus den Kommentaren unten hinzufügen.
Ich bin neu in diesem Bereich, daher wird die Anleitung geschätzt.
Speicher : GPU ist K80
Framework : Cuda und cuDNN
Datengröße pro Workload : 20G
Zu verbrauchende Rechenknoten : einer pro Job, möchte jedoch eine Skalierungsoption in Betracht ziehen
Kosten : Ich kann mir eine GPU-Option leisten, wenn die Gründe sinnvoll sind
Bereitstellung : Wird auf eigenen gehosteten Bare-Metal-Servern ausgeführt, nicht in der Cloud.
Im Moment laufe ich auf CPU, einfach weil die Anwendung in Ordnung läuft. Abgesehen von diesem Grund bin ich mir nicht sicher, warum man überhaupt eine GPU in Betracht ziehen würde.
quelle
Antworten:
@Dan @SmallChess, ich stimme nicht ganz zu. Es ist wahr, dass für das Training ein Großteil der Parallalisierung von den GPUs ausgenutzt werden kann, was zu einem viel schnelleren Training führt. Für Inferenz kann diese Parallalisierung viel geringer sein, jedoch erhalten CNNs immer noch einen Vorteil daraus, was zu einer schnelleren Inferenz führt. Jetzt müssen Sie sich nur noch fragen: Ist eine schnellere Schlussfolgerung wichtig? Möchte ich diese zusätzlichen Abhängigkeiten (eine gute GPU, die richtigen installierten Dateien usw.)?
Wenn Geschwindigkeit kein Problem ist, wählen Sie die CPU. Beachten Sie jedoch, dass GPUs meiner Erfahrung nach eine Größenordnung schneller machen können.
quelle
Wenn Sie Inferenz auf einer GPU anstelle einer CPU ausführen, erhalten Sie nahezu die gleiche Geschwindigkeit wie beim Training, weniger Speicheraufwand.
Wie Sie bereits sagten, läuft die Anwendung auf der CPU einwandfrei. Wenn Sie den Punkt erreichen, an dem die Inferenzgeschwindigkeit ein Engpass in der Anwendung ist, wird dieser Engpass durch ein Upgrade auf eine GPU behoben.
quelle
Sie würden die GPU nur für das Training verwenden, da für tiefes Lernen umfangreiche Berechnungen erforderlich sind, um zu einer optimalen Lösung zu gelangen. Für die Bereitstellung benötigen Sie jedoch keine GPU-Computer .
Nehmen wir als Beispiel das neue iPhone X von Apple. Das neue iPhone X verfügt über einen fortschrittlichen Algorithmus für maschinelles Lernen zur Gesichtserkennung. Apple-Mitarbeiter müssen über eine Reihe von Computern für Schulungen und Validierungen verfügen. Ihr iPhone X benötigt jedoch keine GPU, um nur das Modell auszuführen.
quelle