Apple M1 vs AMD vs Intel: Data Science & Machine Learning?

phillnet

Cadet 3rd Year
Registriert
Feb. 2005
Beiträge
41
Ich würde gerne vorschlagen die ComputerBase CPU Tests um eine oder zwei Anwendungsfälle im Bereich Data Science und Machine Learning (DS/ML) zu ergänzen.

Bisher haben die Tests immer eine Komponente zum Rendering (e.g., Cinebench), aber für viele Anwender sind mittlerweile einfache DS/ML Programme im Alltag angekommen. Von meinen Studenten zum Beispiel höre ich häufig die Frage was ich denn als Laptop empfehlen würde für meinen Data Science Kurs. Natürlich laufen große DS/ML Anwendungen in der Cloud, aber viele einfache Anwendungen mit immer noch Millionen von Datensätzen werden jeden Tag auf Laptops ausgeführt, sowohl in Unternehmen als auch privat oder im Studium.

Im Internet habe ich sonst überraschend wenig zum Thema gefunden (z.B. hier), und schon gar nicht mit Tests die wirklich rigoros mehrere CPUs miteinander vergleichen wie es CB macht. Es sieht aus als wäre das eine echte Marktnische die CB füllen könnte.

Die Frage ist spannend, weil Intel mit seiner Math Kernel Library (MKL) stark angepassten Code für seine Prozessoren bietet. Apple und AMD haben ähnliche Bibliotheken, aber die Frage ist in wie weit die in den gängigen DS/ML Anwendungen implementiert sind. So lange das keiner testet habe ich das Gefühl wird es da auch nur wenig Fortschritt geben.

Deshalb mein Vorschlag: erweitert die CB CPU Tests um 1–2 DS/ML Anwendungen. Zum Beispiel Deep Learning mit Tensorflow, Datenverwaltung mit Pandas/Numpy, oder statistische Anwendungen wie R oder Stata.
 
  • Gefällt mir
Reaktionen: PHuV, Jan, autoshot und 4 andere
Ich denke, damit das die richtigen Leute lesen, solltest du sie taggen
@Jan @Volker
 
  • Gefällt mir
Reaktionen: ZuseZ3, Jan, honky-tonk und 2 andere
  • Gefällt mir
Reaktionen: ZuseZ3
Intel und Nvidia sind immer die sichere Wahl bei professioneller Software, aber Benchmarks und fundierte Tests zur Kompatibilität würden mich auch interessieren.
 
Nen guten Maßstab, wie gut DS/ML auf Apple Silicon funktioniert, ist die Tatsache, dass Anaconda noch immer keine native Version bereitstellt.
Auch die Threads um Probleme mit Apples Tensorflow-Fork sind ellenlang.
Hinzu kommt, dass außerhalb von Bildbe- und -verarbeitung der Zugriff auf die Neural Engine selbst mit Apples Tensorflow-Fork verwehrt bleibt, sodass hier weiterhin nur CPU- und GPU-Kerne zur Verfügung stehen.

Es gibt ein paar Videos zu dem Thema hier: https://www.youtube.com/c/JordanHarrod/videos

Wie @Qarrr³ schon schrieb: Intel und Nvidia sind die sichere Wahl und daran wird sich vermutlich so lange nichts ändern, zumal Apple selbst wenig Interesse aufzeigt, selbst etwas ändern zu wollen. Ja, sie haben Tensorflow geforked, aber ansonsten hat sich da in dem Jahr seit Erscheinen nur wenig getan und ich würde da auch weniger die Entwickler hinter Open Source Projekten wie R oder den zig Packages in R oder Python der Verantwortung sehen, als Apple selbst. Geld genug hätten sie, um zumindest mit Nvidia in Konkurrenz zu treten - besonders, was die Software anbelangt.
 
xxMuahdibxx schrieb:
Ach die Intel math library welche Features anderer CPUs einfach ignoriert...schlechte Basis..

Mathlab zeigte da schon komisches Verhalten.

Gibt's Meldung darüber.
https://www.computerbase.de/2020-03/mkl-workaround-mathlab-amd-ryzen/
richtig, ist optimiert. wäre aber trotzdem spannend der Vergleich, weil es eben oft benutzte Libraries sind.
zum anderen Punkt: Pandas/Npy sind aber eh in C geschrieben? da ist evtl. nicht so gravierend (außer du vergleichst 2 riesige Dataframes mit df.iterrows() :freaky:)
 
mercury schrieb:
Pandas/Npy sind aber eh in C geschrieben? da ist evtl. nicht so gravierend (außer du vergleichst 2 riesige Dataframes mit df.iterrows() :freaky:)
Das macht sich selbst innerhalb von x86 massiv bemerkbar, auf meinem Intel Macbook Pro (i9 9880H) hat die gleiche Aufgabe 1-2 Stunden gebraucht, wofür ich bei meinem alten Desktop (Ryzen 7 2700) 4-6 Stunden warten musste.
 
Solche Tests sind meiner Meinung nach erst sinnvoll wenn die Tools 100% M1 Support auch anbieten, siehe zum Beispiel das nach wie vor offene Issue von PyTorch:
https://github.com/pytorch/pytorch/issues/47702
dort sieht man auch schon paar Benchmarks

Tensorflow ist schon weiter: https://blog.tensorflow.org/2020/11/accelerating-tensorflow-performance-on-mac.html

Benchmarks gibt es einige, z.B. https://github.com/tlkh/tf-metal-experiments/blob/main/README.md#experiments-and-benchmarks

Wie valide die am Ende sind, muss man aber hinterfragen.

Ansonsten ist die grosse Aufgabe aktuell noch ML Compute von Apple sinnvoll einzusetzen: https://machinelearning.apple.com/updates/ml-compute-training-on-mac


Schoen waere auch die Nutzung der NPUs dann, mal sehen wann die populaersten DL Libs soweit sind. Aber sie sind zumindest dran. Aber solange sehe ich Benchmarks eher als schwierig an, die muesste man ja stetig aktualisieren. Da wuerde ich eher auf die Blogs und Beitraege von Apple und TF, PzTorch etc. setzen um mich zu informieren.

In nem halben Jahr kann man dann bestimmt mal ueber ein Testsset bei CB nachdenken

Ansonsten kann ich nur sagen, bei uns nutzen einige mittlerweile auch ein M1 basiertes MacBook für DL. Es funktioniert ja und reicht zum lokalen testen alle male. Große Modelle werden eh auf Servern oder in der Cloud genutzt. Für Studenten wird es aber wohl locker reichen, Modell sind ja pre-trained. Und ihr werdet ja wohl kaum Modelle wie BERT und Derivate selbst trainieren. Ich würde wenn ein Student jetzt fragt nicht "nein" sagen wenn sich jemand unbedingt ein MacBook anschafft für's Studium.
 
Zuletzt bearbeitet:
Ich würde den Data Scientisten und Co. aber gleich mal empfehlen, sich ein Apple M1pro Gerät mit 32 GB RAM zu besorgen. Was sich bei uns immer wieder zeigt, das RAM bzw. VRAM der GPUs das große Limit für ML/DL ist. Mit 8 GB bei den gängigen günstigeren GPUs stößt man schon schnell an Grenzen. Da das OS und anderes auch RAM benötigt, sind die insgesamt 16 GB sehr schnell ausgereizt, und nur mit 32 GB wäre man auf der sicheren Seite.
 
PHuV schrieb:
Ich würde den Data Scientisten und Co. aber gleich mal empfehlen, sich ein Apple M1pro Gerät mit 32 GB RAM zu besorgen.
Für den Preis des Apple M1 pro bekommst du aber auch ein Laptop mit GTX 3080 mit 16GB, die mehr als doppelt so schnell ist wie die GPU des M1 pro und mehr als die doppelte Speicherbandbreite liefert. Damit sollten sie meisten Studierenden lange zurechtkommen. Außerdem funktionieren alle Programme garantiert.
 
  • Gefällt mir
Reaktionen: PHuV
Das ist wieder ein anderes Thema (weil wir ja von Apple sprechen), und ja, ich stimme Dir zu, hier würde ich auch eher zu Deiner Option greifen, da hier das P/L-Verhältnis für die gebotene Leistung deutlich besser ist. Aber das Gerät wird bestimmt wärmer als das Apple Teil.
 
Die Apple-Geräte sind sogar noch viel leiser und kühler, wenn die Software mangels Support gar nicht erst gestartet werden kann :D
 
  • Gefällt mir
Reaktionen: PHuV
PHuV schrieb:
Aber das Gerät wird bestimmt wärmer als das Apple Teil.
Lauter in erster Linie, wärmer eher nicht. Die GPUs bei Lenovo laufen ein gutes Stück entfernt von der maximal zulässigen Temperatur. Aber dafür halt auch nur halbe Wartezeit (wenn die Software bei Apple genauso effizient liefe, sonst sogar noch schneller) bei gleichem Preis, finde ich schon ganz cool.
 
  • Gefällt mir
Reaktionen: PHuV
Ich kann da leider nicht mitreden, weil unsere Data Analysen bei Bedarf einfach eine AWS Instanz mit einer Nvidia GPU bekommen, und fertig. Würde ich eh allen so raten, eher eine externe Instanz für ML/DL zu verwenden als ein Notebook. Spart vieles an Nerven bzgl. Wartung und Einrichtung, und das eigene Gerät wird damit nicht belastet.
 
@PHuV Studenten haben aber das nicht unbedingt daheim ^^
 
xxMuahdibxx schrieb:
@PHuV Studenten haben aber das nicht unbedingt daheim ^^
Wer sich als Studi jedoch ein 3k€ Gerät leisten kann, sollte sich auch die paar Euro für einen externen Server leisten können.

Eine externe Instanz aufziehen als Studi ist vielleicht das geringere Probleme. Zumal man in entsprechenden Fächern ohnehin den Umgang mit CLI, Linux und externem Computing beigebracht werden söllte. Problem ist eher, dass günstige Instanzen nicht bekannt sind (Google Colab wäre da etwa in gewissen Rahmen kostenfrei) oder im Zweifel nicht das Internet haben, um verlässlich größere Datenmengen transferiert zu bekommen. Hinzu kommt, dass sich dann vermutlich der Gedanke einschleicht, man könnte ja alles via iPad machen - und damit Dateien auf Google Colab oder überhaupt auf ein git zu bekommen, ist irgendwas zwischen abenteuerlich und unmöglich.
 
xxMuahdibxx schrieb:
@PHuV Studenten haben aber das nicht unbedingt daheim ^^
Sollen sie ja nicht daheim haben, sondern in der Cloud. 😁
Sehe ich wie tomgit, wenn man 3k für ein Gerät ausgeben kann, kann man auch ein paar Euro für eine Cloud-Instanz im Monat mieten. Das hätte auch den großen Vorteil, daß man hier einfach große Workloads laufen lassen könnte, ohne sein Gerät zu belasten, man arbeitet normal weiter, und holt sich dann einige Stunden später einfach sein Ergebnis ab.

Aber Du hast schon recht, zum ersten Lernen ist das etwas überdimensioniert.
 
Zurück
Oben