M1 Memory Bandwidth

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • M1 Memory Bandwidth

    Hallo an die Optimierer!

    Weiß vielleicht jemand wie man die Angaben zum Speicher des M1 zu verstehen hat ? Angeblich ist die Memory Bandwidth beim M1 Max doppelt so hoch wie beim M1 Pro und beim M1 Ultra sogar 4 x so hoch. Trotzdem sind die Benschmarks kaum auseinander. Also frag ich mich woher das kommt. Kann es sein, dass sich dieser Wert auf alle Threads/Prozesse für alle Kerne gemeinsam bezieht ? Oder soll der Wert tatsächlich für einen einzelnen Prozess gelten ? Das ist ein himmelhoher Unterschied.

    Die Verdoppelung vom Max zum Ultra kann ich mir dadurch erklären, dass der Ultra ja aus zwei verbundenen Max-Prozessoren besteht. Was dafür spricht, dass die Bandbreite ein Gesamtwert ist. Andererseits ist vom Pro zum Max auch eine Verdoppelung, ohne dass der Max aus zwei Pros bestehen würde. Hmmm...

    Habe selber derzeit nur einen Pro und frage mich ob ich auf den M2 warten muss oder ob mir ein Upgrade auf den Max etwas bringt. Im Verhältnis zum Intel ist mir nämlich aufgefallen, dass der M1 in manchen Speicheroperationen deutlich langsamer ist als der Intel. Das ist ein echter Rückschritt.

    Gruß
    Thomas
  • Thallius schrieb:

    wie genau macht sich das denn negativ bemerkbar?
    Ich verstehe es so, dass es sich anscheinend wider Erwarten nicht positiv bemerkbar macht...

    Was bei Benchmarks eine grosse Rolle spielt ist ob das alles tatsächlich aus dem externen Speicher kommt oder das gesamte Benchmark im Cache auf dem Prozessorchip läuft. Entsprechend kann man wenig daraus für den einen oder den anderen Speicher ablesen.

    Da bei mir aber alles noch Intel ist (einer sogar von 2008) weiss ich über den M1 nichts Genaues.
  • hns schrieb:

    Thallius schrieb:

    wie genau macht sich das denn negativ bemerkbar?
    Ich verstehe es so, dass es sich anscheinend wider Erwarten nicht positiv bemerkbar macht...
    Was bei Benchmarks eine grosse Rolle spielt ist ob das alles tatsächlich aus dem externen Speicher kommt oder das gesamte Benchmark im Cache auf dem Prozessorchip läuft. Entsprechend kann man wenig daraus für den einen oder den anderen Speicher ablesen.

    Da bei mir aber alles noch Intel ist (einer sogar von 2008) weiss ich über den M1 nichts Genaues.

    Deshalb meine Frage. Mich interessiert dieses Theoretische Gemessen ehrlich gesagt überhaupt nicht.
    Aber ich trage mich mit dem Gedanken im nächsten Jahr auf einen M-Mac umzusteigen (Da mein MBP jetzt schon in die Jahre gekommen ist) und ich würde schon gerne wissen ob der wirklich "Gefühlt" soviel besser und schneller ist wie überall angepriesen oder ob das nur Marketing ist. Vorrangig natürlich wenn man als Web-App Entwickler damit arbeitet. Also IntelliJi offen, jede Menge Browser mit Dev-Tools offen, SQL Management Tools offen etc.
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Ob und wie stark die eigenen Tätigkeiten von Änderungen der Systemarchitektur profitieren, hängt maßgeblich von den genutzten Anwendungen / Funktionen ab. Hier auf technische Angaben (z. B. Speicheranbindung) oder generelle Benchmarks zu setzen, ist meiner Ansicht nach naiv und wenig aussagekräftig.

    @Thomas, ich würde mir überlegen, bei was momentan konkret "der Schuh drückt" und dann dieses Szenario mit den anderen Prozessoren testen (lassen): Alles andere ist Kaffeesatzlesen.

    Mattes

    ... der sich an viele Benutzer erinnert, die umbedingt "64bit" haben wollten und sich dann wunderten, dass der Rechner bei ihren Arbeiten langsamer war :D
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • @Thallius
    Ich arbeite nur mehr unter C und deswegen werkle ich sozusagen manuell im Speicher herum. Dabei habe ich sehr positiv in Erinnerung, dass ein memset auf Intel rasend schnell ist. Damit meine ich auffallend schneller als jedes manuelles setzen. Das ist z.B. unter M1 nicht so. Auch ist ein malloc() und free() unter M1 auffallend langsam.

    @MattesEs wäre halt schön wenn ich schon vor dem Kauf aus den technischen Daten herauslesen könnte, was ich später damit machen kann. Die von Apple angegebenen Werte sind leider so unspezifisch, dass sie kaum eine Schlussfolgerung zulassen.
  • Nun, die Memory-Bandwidth spielt v.A. beim Beschreiben und Durchsuchen von großen Speichermengen eine Rolle, was u.A. auch beim Verwenden des RAMs für Grafikoperationen Auswirkungen hat. Ein Benchmark misst das zwar mit, aber der misst auch zig andere Dinge, und da geht evtl. dieser Meßpunkt dann unter.
    Und der Durchsatz ist m.E. unabhängig von der Zahl der Threads.

    Wenn Du das richtig testen willst, dann finde einen reinen Memory-Benchmark oder schreibe selbst Code, der den ganzen Speicher ausliest, oder besser noch einen größtmöglichen Speicherblock (der physikalisch vorliegt, also nicht ins VM gemappt wird) reservieren und dann den Speicher um 1 oder 16 Bytes verschieben.

    Dazu benutze memcpy, nicht eine eigene Schleife, weil die mem-Funktionen dafür optimiert sind.


    Thomas schrieb:


    ein memset auf Intel rasend schnell ist. - Das ist z.B. unter M1 nicht so.
    Ja, bekannter Effekt, weil Intel-CPUs dafür Sonderbefehle haben, die das alles in der CPU erledigen. Deswegen meinte ich oben, die mem-Funktionen zu verwenden, weil die immer möglichst das Beste bei der CPU rausholen. Warum ARM nicht auch solche Befehle hat, ist mir auch nicht klar. Evtl. meint Apple. daß sie nie Speicher löschen brauchen, weil die das automatisch über die VM-Funktionalität machen. Das ist aber nur der Fall beim Neuladen von Prozessen - aber wenn ein Prozess selbst öfter löschen muss, dann steht man mit ARM tatsächlich blöde da. Wie immer: Apple denkt nicht über ihren eigenen Tellerrand hinaus.
    Apps: apps.tempel.org (Find Any File, iBored, iClip, Prefs Editor)
    Blog: http://blog.tempel.org
    Über mich: tempel.org/AboutThomasTempelmann
  • tempelmann schrieb:


    Wie immer: Apple denkt nicht über ihren eigenen Tellerrand hinaus.
    Ich verteidigte Apple nur hungern, aber hier tust du Apple unrecht. Bei EinenProzessor, der erst seit kurzem das Licht der Welt erblickte, kannst du nicht die ausgereifte Funktionalität erwarten wie bei eine 30 Jahre alten Prozessor. Eile mit Eile, und warte erst mal 30 Jahre ab, fall dann dann noch das Defizit besteht, teile ich deine Meinung, auch wenn sie mir bis dahin egal ist
  • Thallius schrieb:

    hns schrieb:

    Thallius schrieb:

    wie genau macht sich das denn negativ bemerkbar?
    Ich verstehe es so, dass es sich anscheinend wider Erwarten nicht positiv bemerkbar macht...Was bei Benchmarks eine grosse Rolle spielt ist ob das alles tatsächlich aus dem externen Speicher kommt oder das gesamte Benchmark im Cache auf dem Prozessorchip läuft. Entsprechend kann man wenig daraus für den einen oder den anderen Speicher ablesen.

    Da bei mir aber alles noch Intel ist (einer sogar von 2008) weiss ich über den M1 nichts Genaues.
    Deshalb meine Frage. Mich interessiert dieses Theoretische Gemessen ehrlich gesagt überhaupt nicht.
    Aber ich trage mich mit dem Gedanken im nächsten Jahr auf einen M-Mac umzusteigen (Da mein MBP jetzt schon in die Jahre gekommen ist) und ich würde schon gerne wissen ob der wirklich "Gefühlt" soviel besser und schneller ist wie überall angepriesen oder ob das nur Marketing ist. Vorrangig natürlich wenn man als Web-App Entwickler damit arbeitet. Also IntelliJi offen, jede Menge Browser mit Dev-Tools offen, SQL Management Tools offen etc.
    Also das kann ich bestätigen. Ich hab 2 MacBooks. Ein M1 und 16GBRam und ein M1 Pro und 32GB RAM. Beide sind Welten schneller.

    Mein tägliches Setup ist folgendes:
    2X IntelliJ mit jeweils Server gestartet und Postgres
    4x Xcode Projekte
    3x Android Studio
    Teams, Outlook
    Safari mit 20 Tabs

    Da ich KMM nutze werden beim Bauen eines Xcode Projektes ca. 600 Task ausgeführt. Mit Gradle und kompletten Programm. Bei meinem Kollegen auf Intel reden wir da von ca 4min. Mein M1er ist bei ca. 45s und mein M1Pro 20-30s.

    Backend ist in Go. Tests laufen auf M1 Pro in 2 Min (Windows bei Kollegen 28min), M1er 2:30 ca. Wichtigste ist aber aus der Erfahrung der RAM. Bei meinem kleinen M1er hab ich mindestens 15GB immer im SWAP. Beim großen zwar auch einiges aber der kann halt auch 25GB schön auslasten.

    Wir machen auch Angular mit KMM. Das geht auch rasend schnell. Intel so 3 min und bei M1 reden wir von 20s und M1Pro ca 10s.

    Musste wegen Defekt von M1Pro MacBook (einfach schwarz geworden und RAM scheinbar durchgebrannt) eine Woche mal nur den M1er nehmen und das war zwar schon schnell aber gefühlt Welten langsamer. Würde mir nur noch den M1Pro holen. Aber auch nur noch Leasing. Die Dinger gibt es für 50€ netto im Monat und so oft wie die kaputt gehen… Brauch so und so alle paar Jahre nen neuen wegen Leistung. Gravis und ImplementIT haben sich mit jemanden zusammen getan u d top Angebote.

    Das jetzt als ganz subjektiver Erfahrungsbericht nach fast auf den Tag genau ein jähriger Nutzung.
  • Habe gerade das hier bei Geekbench gefunden:

    System Mac14,6 Apple M2 Max 3544 MHz (12 cores)
    Uploaded November 30th, 2022
    Platform macOS
    Single-Core Score 1889
    Multi-Core Score 14586

    Sieht so aus, als entspräche die Leistung des kommenden M2 wie erwartet auch nur der Taktfrequenz und Anzahl der Kerne. Wird also wenig Neues zu erwarten sein.

    Was den M1 angeht habe ich inzwischen noch einige Benchmarks gelesen. Mit dem eindeutigen Resultat, dass der Max NICHT schneller ist als der Pro sofern man nicht sowas macht wie Videos codieren. Da hat der Max nunmal zwei Einheiten während der Pro nur eine hat.
    In einem Artikel stand bezüglich Speicherbandbreite, dass die eben vor allem von den GPUs und der Einheit zum Videodecodieren ausgenützt wird und bei den normalen Rechenkernen keine nennenswerte Rolle spielt. Das ist doch mal eine Aussage, die zu den Benchmarks passt.
  • Thallius schrieb:


    ... und ich würde schon gerne wissen ob der wirklich "Gefühlt" soviel besser und schneller ist wie überall angepriesen oder ob das nur Marketing ist. ...
    so rein subjektiv:

    M1 16 GB

    All ich das erste mal ein Build in Xcode gemacht hatte, dachte ich zuerst "warum geht das jetzt nicht ?" Aber der Build war nur einfach so schnell fertig =O

    Ok, ich hatte davor ein älteres MacBook Pro <X

    Meine Frau macht darauf auch Videobearbeitung und Grafiken mit Adobe oder Affinity
    Die will danach nie mehr zurück an ihr MacBook Pro. Sie wird sich jetzt wohl einen Mac Studio zulegen

    Wir sind begeistert über die M

    Aber wie oben geschrieben, das ist subjektiv und gefühlt
    Ich habe auch keine Loesung, aber ich bewundere das Problem!
    _____________________________________________________


    Hape42
  • hape42 schrieb:

    Thallius schrieb:

    ... und ich würde schon gerne wissen ob der wirklich "Gefühlt" soviel besser und schneller ist wie überall angepriesen oder ob das nur Marketing ist. ...
    so rein subjektiv:
    M1 16 GB

    All ich das erste mal ein Build in Xcode gemacht hatte, dachte ich zuerst "warum geht das jetzt nicht ?" Aber der Build war nur einfach so schnell fertig =O

    Ok, ich hatte davor ein älteres MacBook Pro <X

    Meine Frau macht darauf auch Videobearbeitung und Grafiken mit Adobe oder Affinity
    Die will danach nie mehr zurück an ihr MacBook Pro. Sie wird sich jetzt wohl einen Mac Studio zulegen

    Wir sind begeistert über die M

    Aber wie oben geschrieben, das ist subjektiv und gefühlt
    M1 vs M1 Pro vs M1 Max - Performance & Akku Vergleich | Welcher Chip ist für wen der Richtige?

    Vielleicht hilft dieses Video auch noch. Leider gibt es zu selten einen direkten Vergleich in der Entwicklung mit Xcode.
    Ich für meinen Teil kann Hape nur zustimmen, dass die Builds viel schneller laufen als auf meinem alten MB Pro, aber das ist auch ein unfairer Vergleich - die Kiste wäre mittlerweile 8 Jahre alt.
  • Wolf schrieb:

    Bei EinenProzessor, der erst seit kurzem das Licht der Welt erblickte, kannst du nicht die ausgereifte Funktionalität erwarten wie bei eine 30 Jahre alten Prozessor.
    Das ist aber eine ganz schwache Verteidigung:
    Der M1 ist ja nicht vom Himmel gefallen, und Prozessoren, die es in die Massenproduktion schaffen, werden nicht von Anfängern entworfen.
    Unterm Strich sind die ARM-CPUs afaik ja auch ziemlich beeindruckend, aber wenn sie in dem einem Punkt wirklich versagen, stimmt der Vorwurf mit dem Tellerrand schon.
    Vielleicht hat Apple aber auch einfach wieder nicht richtig dokumentiert, wie man als fortgeschrittener Nutzer arbeiten sollte ;)