Ich beschäftige mich seit mehr als zwei Jahrzehnten mit der Optimierung und Vergleichen der Computerleistung bei Plattformen, die von Supercomputern und Datenbankservern bis hin zu mobilen Geräten reichen. Es ist immer ein Vergnügen, die Leistungsergebnisse des jeweiligen Produkts, an dem man arbeitet, mit anderen in der Branche zu vergleichen. SPEC*, LINPACK* und TPC* sind vielen von uns inzwischen vertraut. Nun füllt MLPerf* die bisherige Lücke bei Benchmarktests für maschinelles Lernen.
Ich bin besonders interessiert an den MLPerf-Resultaten, die unser Team für die skalierbare Intel® Xeon® Prozessorreihe vorgelegt hat, weil wir in puncto Deep Learning sowohl auf Seiten der Benutzer als auch auf Seiten der Computersystementwicklung aktiv sind. Diese Resultate zeigen, dass die skalierbare Intel® Xeon® Prozessorreihe die Leistungsgrenze überschritten hat, die sie zur effektiven Option für Datenwissenschaftler macht, die mit ihrer Infrastruktur verschiedene Anwendungen nutzen wollen, ohne dabei in spezielle Hardware investieren zu müssen.1 2 3
Im Jahr 2015 hatte ich ein Team, das mit Mobilgeräten arbeitete. Wir mussten Testpersonen einstellen, um Mobilspiele manuell zu testen. Zunächst hatten die Testpersonen noch Spaß dabei, aber es wurde schnell langweilig und kostspielig. Eine der eingestellten Testpersonen kündigte noch am selben Tag. Unser Team entwarf dann einen Roboter, um die Mobilspiele zu testen und implementierte Deep Learning. Unser Roboter spielte die Spiele automatisch und entdeckte dabei mehr Fehler als die menschlichen Testpersonen. Wir wollten auf den Maschinen, die wir bereits im Labor hatten, neuronale Netze trainieren, aber sie erwiesen sich als nicht schnell genug dafür. Ich musste ein Budget für das Team bereitstellen, damit eine GPU angeschafft werden konnte – eine ältere Version als die MLPerf-Referenz-GPU.4
Heute sind CPUs sowohl für Deep Learning als auch für Inferenzmethoden geeignet. Unsere MLPerf-Resultate mit Prozessoren aus der skalierbaren Intel® Xeon® Prozessorreihe lassen sich bei verschiedenartigen MLPerf-Workloads für Deep-Learning-Training gut mit der MLPerf-Referenz-GPU4 vergleichen.1 2 3 So ergaben zum Beispiel die von Intel vorgelegten Ergebnisse für ein einzelnes Zweiprozessorsystem mit Prozessoren aus der skalierbaren Intel® Xeon® Prozessorreihe einen Wert von 0,85 beim MLPerf-Image-Classification-Benchmark (Resnet-50)1, 1,6 beim Recommendation-Benchmark (Neural Collaborative Filtering NCF)2 und 6,3 beim Reinforcement-Learning-Benchmark (mini GO).3 Bei all diesen Vergleichswerten ist 1,0 das Ergebnis der entsprechenden Implementierung bei der Referenz-GPU.4 Bei allen vorangehenden Ergebnissen verwendeten wir FP32, die heutzutage üblicherweise angewendete numerische Genauigkeit. Nach diesen MLPerf-Ergebnissen müsste unser Spieletest-Roboter jetzt problemlos auf einem System mit diesen Prozessoren trainiert werden können.
Deep Learning und maschinelles Lernen entwickeln sich, ausgehend von der Bildverarbeitung mit Convolutional Neural Networks (CNN) und der Verarbeitung natürlicher Sprache mit Recurrent Neural Networks (RNN), weiter zu Empfehlungssystemen mit mehrlagigen Perzeptrons (MLP) und allgemeiner Matrizenmultiplikation, bestärkendem Lernen (durch Mischen von CNN und Simulation) und hybriden Modellen, bei denen Deep Learning und klassisches maschinelles Lernen kombiniert werden. Eine Standard-CPU kann in dieser sich dynamisch verändernden Umgebung sehr gut eingesetzt werden – zusätzlich zur Verwendung für die existierenden nicht Deep-Learning-spezifischen Aufgaben.
Große Unternehmen setzen CPUs für das Deep-Learning-Training ein. Beispielsweise stellte Datatonic* in einem Blog eine bis zu 11-fache Verbesserung bei den Kosten und bis zu 57 % höhere Leistung fest, wenn ein auf einem neuronalen Netz basierendes Empfehlungssystem im Produktivbetrieb eines der fünf größten britischen Einzelhandelsunternehmen in einer Google-Cloud*-VM mit Prozessoren aus der skalierbaren Intel® Xeon® Prozessorreihe betrieben wurde.5 CPUs können auch mit den in vielen Bereichen erforderlichen großen Speichermodellen arbeiten. Das Pharmaunternehmen Novartis verwendete die skalierbare Intel® Xeon® Prozessorreihe, um das Trainieren eines Multiscale Convolutional Neural Network (M-CNN) für 10 000 hochaufgelöste mikroskopische Aufnahmen von Zellen zu beschleunigen, die viel größer als die üblichen ImageNet*-Bilder sind, wobei sich das Trainieren von 11 Stunden auf 31 Minuten verkürzte.6
HPC-Kunden (High-Performance-Computing) setzen Intel® Xeon® Prozessoren auch für verteiltes Training ein, das auf der Supercomputing 2018 gezeigt wurde. So trainierte GENCI/CINES/INRIA zum Beispiel ein Modell zur Pflanzenklassifizierung für 300 000 Arten mit einer 1,5 TB umfassenden Datenmenge von 12 Mio. Aufnahmen mithilfe von 128 Zweiprozessorsystemen mit Intel® Xeon® Prozessoren.7 DELL EMC* und SURFSara konnten die Zeit für das Trainieren bei einem DenseNet-121-Modell mit Intel® Xeon® Prozessoren auf 11 Minuten verkürzen.8 Das CERN* demonstrierte verteiltes Training mit 128 Knoten des TACC-Stampede-2-Clusters (Intel® Xeon® Platin-Prozessor 8160, Intel® OPA) mit einem 3D Generative Adversarial Network (3D GAN) und erreichte 94 % Skaleneffizienz.9 Weitere Beispiele finden Sie unter https://software.intel.com/en-us/articles/intel-processors-for-deep-learning-training.
Die Leistungsfähigkeit der CPU-Hardware und der Software für Deep Learning konnte in den letzten Jahren um einige Größenordnungen gesteigert werden. Trainingsprozesse, die vormals noch Tage oder sogar Wochen in Anspruch nahmen, sind jetzt innerhalb von Stunden oder gar Minuten abgeschlossen. Diese beachtliche Leistungssteigerung wurde durch eine Kombination von Hardware und Software erreicht. Beispielsweise verfügt die aktuelle skalierbare Intel® Xeon® Prozessorreihe zusätzlich über die Intel® Advanced Vector Extensions 512 (Intel® AVX-512-Befehlssatz, Erweiterungen für komplexere Vektoren), damit eine große Zahl von Operationen parallel ausgeführt werden kann. Und mit einer größeren Zahl von Kernen werden die Prozessoren im Prinzip zum Mini-Supercomputer. Die neueste Generation der skalierbaren Intel® Xeon® Prozessorreihe bietet als zusätzliches Feature Intel® Deep Learning Boost (Intel® DL Boost): höherer Durchsatz, Befehle mit geringerer numerischer Genauigkeit beschleunigen die Deep-Learning-Inferenz. Was die Software anbelangt, kann der Leistungsunterschied zwischen der ursprünglichen Open-Source-Deep-Learning-Software und der von Intel optimierten Software für denselben Intel® Xeon® Prozessor das 275-Fache betragen10 (wie in einer Demo illustriert, die ich beim Intel-Architecture-Day-Forum gezeigt habe).
Während der letzten paar Jahre hat Intel mit DL-Framework-Entwicklern zusammengearbeitet, um viele beliebte Open-Source-Frameworks wie TensorFlow*, Caffe*, MXNet*, PyTorch*/Caffe2*, PaddlePaddle* und Chainer* für Intel® Prozessoren zu optimieren. Außerdem hat Intel BigDL als Framework für SPARK* und das Intel® Deep Learning Deployment Toolkit (DLDT) für Inferenzmethoden konzipiert. Weil die Rechenoperationen im Kern lineare Algebra sind, haben wir eine neue Math-Bibliothek speziell für Deep Learning entwickelt, die Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN). Sie baut auf viele Jahre Erfahrung mit der Intel® Math Kernel Library (MKL) für High-Performance-Computing (HPC) auf. Die Integration der Intel MKL-DNN in die Frameworks und die zusätzlichen Optimierungen, mit denen die Frameworks ergänzt wurden, um die Fähigkeiten der darunterliegenden Hardware in vollem Umfang nutzbar zu machen, sind der hauptsächliche Grund für die enorme Leistungsverbesserung der Software.
Ich wurde oft gefragt, ob CPUs schneller oder langsamer als Beschleuniger [Accelerators] sind. Beschleuniger haben natürlich gewisse Vorteile. Wenn auf einem bestimmten Gebiet Beschleuniger-Hardware nicht grundsätzlich schneller als eine CPU ist, dann kann man nicht wirklich von Beschleuniger sprechen. Gleichwohl kann eine CPU mit Blick auf die wachsende Vielfalt von Deep-Learning-Anwendungen in einigen Fällen ebenso schnell oder schneller sein, während sie gleichzeitig die Flexibilität bietet, die maßgebend für das Nutzenversprechen einer CPU ist. Folglich müsste die Frage eher lauten, ob CPUs Deep-Learning-Aufgaben gut genug bewältigen, um eine effektive Option für jene Kunden zu sein, die nicht in Beschleuniger-Hardware investieren wollen. Diese ersten MLPerf-Resultate1 2 3 und auch unsere Beispiele aus der Praxis zeigen, dass CPUs tatsächlich effektiv für das Trainieren eingesetzt werden können. Intels Strategie besteht darin, sowohl Standard- bzw. Universal-CPUs als auch Beschleuniger anzubieten, um die Machine-Learning-Bedürfnisse eines breiten Spektrums von Kunden zu befriedigen.
Auch bei zukünftigen Generationen unserer CPUs werden wir neue KI- und Deep-Learning-Funktionen wie Intel® Deep Learning Boost (Intel® DL Boost) oder bfloat16 für das Training einführen, und es wird zusätzliche Softwareoptimierungen geben. Bleiben Sie interessiert. Weitere Informationen über Softwareoptimierungen von Intel finden Sie unter ai.intel.com/framework-optimizations. Mehr über die skalierbare Intel® Xeon® Prozessorreihe erfahren Sie unter intel.de/xeonscalable.