Command Palette
Search for a command to run...
FireCaffe: Nahe-lineare Beschleunigung des Trainings tiefer neuronaler Netze auf Rechenclustern
FireCaffe: Nahe-lineare Beschleunigung des Trainings tiefer neuronaler Netze auf Rechenclustern
Forrest N. Iandola Khalid Ashraf Matthew W. Moskewicz Kurt Keutzer
Zusammenfassung
Lange Trainingszeiten für hochgenaue tiefe neuronale Netze (DNNs) behindern die Forschung zu neuen DNN-Architekturen und verlangsamen die Entwicklung hochgenauer DNNs. In dieser Arbeit stellen wir FireCaffe vor, eine Lösung, die das Training tiefer neuronaler Netze erfolgreich auf einem Cluster von GPUs skaliert. Wir präsentieren zudem eine Reihe von Best Practices, um Fortschritte bei der Skalierung und Beschleunigung des Trainings tiefer neuronaler Netze vergleichbar zu gestalten. Die Geschwindigkeit und Skalierbarkeit verteilter Algorithmen wird fast immer durch den Overhead der Kommunikation zwischen Servern begrenzt; auch das Training von DNNs ist hier keine Ausnahme. Daher ist der entscheidende Aspekt, den Kommunikationsoverhead so weit wie möglich zu reduzieren, ohne dabei die Genauigkeit der trainierten DNN-Modelle zu beeinträchtigen. Unser Ansatz basiert auf drei wesentlichen Säulen. Erstens wählen wir Netzwerkhardware aus, die einen hohen Datenübertragungsdatenstrom zwischen GPU-Servern ermöglicht – InfiniBand oder Cray-Verbindungen sind hierfür ideal geeignet. Zweitens untersuchen wir verschiedene Kommunikationsalgorithmen und stellen fest, dass Reduktionbäume effizienter und skalierbarer sind als der traditionelle Parameter-Server-Ansatz. Drittens erhöhen wir optional die Batch-Größe, um den Gesamtkommunikationsaufwand während des Trainings von DNNs zu verringern, und identifizieren Hyperparameter, die es uns ermöglichen, die Genauigkeit kleiner Batches auch bei großen Batch-Größen zu reproduzieren. Beim Training von GoogLeNet und Network-in-Network auf ImageNet erreichen wir jeweils eine Geschwindigkeitsverbesserung von 47-fach und 39-fach bei Verwendung eines Clusters mit 128 GPUs.