Wie wird sich der Apple M1 auf das maschinelle Lernen auswirken? (Teil 1)

Apple hat den allerersten Apple-Silizium-Desktop-/Laptop-Prozessor vorgestellt, der auf den Prozessoren der Apple-A-Serie im iPad und iPhone basiert. Dieser neue Prozessor wurde zusammen mit drei neuen Macs vorgestellt, darunter das neue M1 MacBook Air, das M1 MacBook Pro und der M1 Mac mini.

Diese neuen M1 Macs werben mit unglaublichen Spezifikationen, die den neuen M1-Prozessor nutzen, CPU-Geschwindigkeiten bis zu 3,5x schneller. Die GPUs sind bis zu 5x schneller und mit der neuen Neural Engine ist das maschinelle Lernen bis zu 9x schneller. Was die Batterielaufzeit angeht, so wirbt das MacBook Air mit 15 Stunden drahtlosem Surfen im Internet und 18 Stunden Filmwiedergabe (ein kleiner Vorbehalt ist die Filmwiedergabe mit der Apple TV App). Ich bin mir nicht sicher, ob das einen Unterschied macht, aber das wird sich erst zeigen, wenn es jemand auf Youtube getestet hat. Beim MacBook Pro beträgt die Batterielaufzeit 17 Stunden beim drahtlosen Surfen im Internet und 20 Stunden bei der Wiedergabe von Filmen mit der Apple TV App. Ich weiß nicht, wie es Ihnen geht, aber 20 Stunden sind unglaublich. Ich verwende derzeit das 16″ i9 MacBook Pro und fand die 11 Stunden Batterielaufzeit dieses Modells bemerkenswert.

M1-Architektur

Die neue M1-Architektur wird mit der neuesten 5nm-Technologie hergestellt. Sie hat 1 CPU, 1 GPU, 1 Neural Engine und DRAM-Einheiten, die in den Prozessor eingebaut sind. Da der Arbeitsspeicher in den Prozessor integriert ist, greifen alle Komponenten auf denselben Speicher zu. Was bedeutet das? Nun, es bedeutet, dass es keine Leistungseinbußen mehr gibt, die durch das Verschieben und Umgestalten des Speichers von einer Komponente auf die nächste Komponente entstehen. Sie müssen nicht mehr herausfinden, ob Ihr Modell in den Speicher der GPU passt.

CPU

Die CPU ist eine 8-Kern-CPU, wobei 4 Kerne Hochleistungskerne für die Datenverarbeitung und Aufgaben sind, die eine hohe Leistung erfordern, und 4 Kerne, die als „E-Cores“ oder hocheffiziente Kerne bezeichnet werden und eine effizientere Verarbeitung bei geringerem Stromverbrauch ermöglichen.

Auf der Website gibt Apple keine CPU-Geschwindigkeiten an; ein Geekbench-Listing, das auf gadgets.ndtv.com gibt eine Basisfrequenz von 3,2 GHz an, was höher ist als die Basisfrequenz des Intel Core i9-9880H Prozessors im 16″ Macbook Pro.

Lassen Sie uns einige Geekbench-Ergebnisse des neuen M1-Prozessors vergleichen.

Vergleicht man die Ergebnisse von 4 sehr beliebten CPUs, so übertrifft der Apple M1 alle von ihnen, sogar den i9 Prozessor im 16″ Macbook Pro bequem im Single-Core Score. Erst bei den Multi-Core-Werten fangen andere an, mit dem M1 zu konkurrieren, vor allem die AMD-Prozessoren.

Was bedeutet das alles für das maschinelle Lernen?

Zunächst einmal sollte der von CPU und GPU gemeinsam genutzte Arbeitsspeicher die Leistung erhöhen, da es keine Latenz bei der Übertragung von Daten vom CPU-RAM zum GPU-RAM gibt.

Was die Single-Core-Punktzahl im Vergleich zur Multi-Core-Punktzahl angeht, so nutzen die meisten Bibliotheken zur Datenvorverarbeitung nicht die Vorteile der mehreren Kerne im Prozessor; daher bringt die Multi-Core-Punktzahl nur sehr wenig für die Datenvorverarbeitung. Ein besserer Single-Core-Score ist für die Datenvorverarbeitung besser geeignet.

GPU

Der integrierte Grafikprozessor ist ein 8-Core-GPU, der 25.000 Threads gleichzeitig ausführen kann. Apple behauptet, dies sei die „weltweit schnellste integrierte Grafik in einem Personal Computer“ mit einem Durchsatz von 2,6 TFLOPS (FP32). Das ist sicherlich beeindruckend für eine integrierte GPU, aber wir als Datenwissenschaftler sind an der Gesamtleistung interessiert.

Schauen wir uns zum Vergleich einige andere an.

Bei diesen Werten würde es wahrscheinlich gut für Videoverarbeitung, Bildverarbeitung, Apple Arcade oder Spiele funktionieren. Für maschinelles Lernen ist der Grafikprozessor nicht geeignet. Sie könnte es, aber sie bietet nicht die Leistung, die Sie und ich wahrscheinlich suchen. Etwas wie das Razer Blade Pro 17 mit der RTX 2080 Super würde mit 11,2 TFLOPS besser abschneiden. Mit diesem Gedanken hätten Sie recht. Allerdings hat Apple im M1 auch eine Neural Engine in den Prozessor integriert, die speziell für die Effizienz des maschinellen Lernens entwickelt wurde.

Neural Engine

Der M1 Prozessor bringt auch Apples branchenführende Neural Engine mit, die speziell für maschinelle Lernprozesse entwickelt wurde. Die neuronale Engine wurde bereits dem A-Serien-Prozessor auf dem iPad und iPhone hinzugefügt, war aber bisher noch nicht auf dem Mac zu finden.

Apple behauptet 11 TOPS (Billionen Operationen pro Sekunde) auf seiner neuen 16-Kern neuronalen Engine.

*11 TOPS? Meinen sie 11 TFLOPS? Wenn es 11 TFLOPS sind, dann könnte es ein Konkurrent in diesem Bereich sein.

Wenn man diese Geschwindigkeit mit integriertem Speicher (reduzierte Latenz) und 20 Stunden Akkulaufzeit kombiniert, könnte das für Datenwissenschaftler, die unterwegs sind, ein entscheidender Vorteil sein. Du bekommst nicht nur eine GPU, die mit einer RTX 2080 Super vergleichbar ist, eine CPU, die einen der besten Single-Core-Werte in der Branche hat, einen Formfaktor des MacBook Air, sondern auch 18-20 Stunden Akkulaufzeit. Wow!

Ein weiterer Gedanke hierzu wäre, wenn einige der ML-Frameworks sowohl die GPU als auch die Neural Engine nutzen könnten, um zu trainieren und Inferenzen durchzuführen.

Apple M1 und Software-Support

Lassen Sie uns nun über Software-Support sprechen. Meine Fragen hier sind:

Funktioniert M1 mit einigen der am häufigsten verwendeten Programme? (z.B. Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon verwendet eine ARM-basierte Befehlssatzarchitektur. Python läuft bereits auf vielen anderen Plattformen wie ARM, MIPS, PowerPC, i386 und x86-64. Es sollte keine Probleme mit Python geben.

Juypter Notebook

Es ist im Moment unklar, ob Juypter Notebooks mit dem Apple M1 Prozessor funktionieren. Ich habe einen Link gefunden, der Juypter-Notebooks auf einer ARM-Architektur mit Docker laufen lässt. Die Zeit wird dies zeigen. Vielleicht wird VSCode, sobald es produktionsreif ist, eine Juypter-Erweiterung haben, die funktioniert.

VSCode

Microsoft kündigte am 10. November 2020 auf Twitter an, dass sie an einem Universal Build von VSCode für den Apple M1 arbeiten. Zum Zeitpunkt des Verfassens dieses Artikels ist der experimentelle ARM-Build auf ihrer Website hier zu finden.

Microsoft Excel

Microsoft kündigte außerdem am 11. November 2020 an, dass es einen neuen Universal-Build seiner Mac Office 2019 Beta veröffentlichen wird, der den neuen Apple M1-Prozessor unterstützt. Tatsächlich kündigte Erik Schwiebert auf Twitter an, dass Microsoft noch am selben Tag eine Beta-Version im Beta-Kanal veröffentlichen wird. Es wurde jedoch kein Datum für die öffentliche Veröffentlichung bekannt gegeben.

Arbeitet M1 mit ML-Frameworks (d. h. Tensorflow, Scikit-Learn, Keras usw.)?

Auf dem Apple M1-Event erwähnte Apple die Unterstützung für Tensorflow. Ich habe noch keine Einzelheiten zu dieser Behauptung gefunden. Das Tensorflow-Framework ist für die x86_64-Architektur und Nvidia-GPUs gebaut. Es gibt keine anderen Builds für die ARM- oder Apple M1-Architektur.

Einige behaupten, man könne Inferenzen aus Tensorflow-Modellen durchführen, indem man den Apple Converter nutzt. Hier ist ein Link zu einem Artikel, der über die Konvertierung von TF-Modellen in CoreML spricht. Einige andere denken, dass sie sich auf Swift für Tensorflow beziehen.

Im Moment ist es unbekannt, und ich kann nichts finden, was darauf verweist.

Scikit-Learn

Wird Scikit-learn mit dem Apple M1 funktionieren? Ich denke, die kurze Antwort ist „vielleicht“. Wir wissen, dass Python mit der ARM-Architektur des M1 funktioniert, und Scikit-Learn nutzt keine GPU-Unterstützung aus. Theoretisch sollte Scikit-learn also für den Apple M1 funktionieren.

Ich könnte weiter machen, aber wir würden hier ewig mit all den Bibliotheken, die in ML verwendet werden (PyTorch, Keras, etc.)

Synopsis

  • Apple M1: 8-Kern-CPU, 8-Kern-GPU, 16-Kern Neural Engine mit integriertem Speicher auf dem Chip.
  • Apple M1 CPU hat einen der höchsten Single-Core-Scores mit 1687; okes Ergebnis beim Multi-Core-Score mit 7433 im Vergleich zum Intel i9-9880H (Macbook Pro 16″): 1029 Single-Core, 6012 Multi-Core-Score.
  • Apple M1 GPU kommt auf 2,6 TFLOPS im Vergleich zu Nvidia GeForce RTX 2080 Super (Razer Laptops) mit 11,2 TFLOPS.
  • Apple M1 Neural Engine wirbt mit 11 Billionen Operatoren pro Sekunde. Die Frage ist hier, ob das TFLOPS (FP32) sind. Dies wird mit der Nvidia GeForce RTX 2080 Super bei 11.2 verglichen.
  • Hat die Apple M1 Software-Support?

Haftungsausschluss: Ich habe noch keine Apple M1 in die Hände bekommen. Ich habe es bestellt, aber noch nicht erhalten. Ich stütze mich bei meinen Aussagen über die Softwareunterstützung lediglich auf Forschungsergebnisse. Bitte kaufen Sie nicht aufgrund meiner Ergebnisse, sondern führen Sie Ihre eigenen Nachforschungen durch, bevor Sie einen Kauf tätigen.

Wenn ich mein Apple M1 MacBook Pro erhalten habe, werde ich einen neuen Artikel mit meinen Ergebnissen schreiben.

Aktualisiert:

Nur als Update, hier ist die offizielle Presse von Docker über den M1 Chip und die Unterstützung.

Teil 2 dieses Artikels finden Sie hier.

Schreibe einen Kommentar