Foren

Spielen auf dem M1

the8thark

Originalplakat
18. April 2011
  • 23.04.2021
Zuerst möchte ich ein paar Videos von YouTube teilen, in denen ein Typ eine Reihe von Spielen auf M1 (Macbook Pro) getestet hat. Der Mini sollte also eine ähnliche Leistung bekommen und der iMac eine etwas bessere Leistung (vermute ich).

Im ersten Video wurden 25 Spiele getestet, bei denen es sich um 64-Bit-Metal-2- und OpenGL-Spiele, iPhone- und iPad-Apps auf dem Mac sowie 32-Bit-Spiele handelt.

Spoiler:Klicken Sie hier, um die Liste der meisten der 25 Spiele im Video zu sehen Grenzland 3
Halbwertszeit 2
World of Warcraft
Schatten des Grabräubers
Minecraft
DOTA 2
Bioshock 2: Remastered
Unter uns
F1 Mobile Racing
Stardew Valley (iOS)
Toter Auslöser 2
Seelenritter
Monumenttal
Stardew Valley (Dampf)
DiRT-Rallye
Borderlands 2
Counter Strike Global Offensive
Cuphead
Mittelerde: Mordors Schatten
Sterbendes Licht
Hades
Der Weglose
Deus Ex: Gespaltene Menschheit
Batman Arkham Stadt
Die Sims 4

Das zweite Video enthält 33 getestete Spiele, bei denen es sich um eine Reihe von arm64-, Parallels 16-, Rosetta 2 und CrossOver-Spielen handelt.

Spoiler:Klicken Sie hier, um die Liste der meisten der 33 Spiele im Video zu sehen Außerirdische Isolation
Eine Seuchengeschichte: Unschuld
BioShock Remastered
Die Geschichte des Barden IV: DC
CS GO
SteamVR
GTA IV
The Elder Scrolls Online
SUPERHEISS: MCD
DARK SOULS: REMASTERED
Dieb
Kreuzfahrerkönige III
AAS
LEGO: Die Unglaublichen
Fallout 4
Factorio
F1 2016
Pfadfinder: Königsmacher - EPE
Moto Racer 4
Schalter
Aragami
Überleben
Die Sims 2
ZAHLTAG 2
Yooka-Laylee
Die lange Dunkelheit
Skul: Der Heldentöter

Das dritte Videovideo hat 32 Spiele getestet

Spoiler:Klicken Sie hier, um die Liste der meisten der 32 Spiele im Video zu sehen Metro-Exodus
Weg des Exils
Weltraumbasis Startopia
NBA 2K21 Arcade-Edition
Yakuza 0
GWENT: Das Hexer-Kartenspiel
Transportfieber 2
Gzdoom
Wrackfest
Ori and the Blind Forest: Definitive Edition
Ori und der Wille der Irrlichter
Unwirkliches Turnier
Frostpunk
Jenseits von Blau
Das letzte Lagerfeuer
HINGABE
Das Talos-Prinzip
Hellblade: Senuas Opfer
Tramper
Betritt das Gungeon
Valheim
Eindringling
Assassins Creed IV: Black Flag
Disco Elysium: The Final Cut
Verbände
Städte: Skylines
Schichten der Angst 2
Narita Junge
Kleine Albträume

Keines dieser Spiele ist brandaktuell oder 2021 end-Grafik, aber die beiden Videos hier sollten Ihnen einen guten Überblick darüber geben, wie leistungsfähig der M1 für Spiele ist. Es ist viel leistungsfähiger, als ich zuerst dachte.
Reaktionen:AdamInKent, George Dawes, matrix07 und 1 weitere Person

Lowhanger

26. November 2017


  • 23.04.2021
Das einzige Spiel, das ich auf meinem Mac mini spiele, ist World of Warcraft. Und es läuft recht gut und bietet eine respektable Auflösung von 60 Bildern pro Sekunde auf meinem M1 Mac mini. Ich habe überhaupt keine Beschwerden, für den Preis, den ich für den Mini bezahlt habe.

Apple hat mit dem M1 fantastische Arbeit geleistet und ich kann mir nur vorstellen, wie viel besser es im Laufe der Jahre werden wird, wenn sie es verbessern. Ich kann mir nicht vorstellen, wo Web in vier oder fünf Generationen dieser Prozessoren sein wird.
Reaktionen:LeeW, George Dawes und Retrostarscream

haralds

3. Januar 2014
Silicon Valley, Kalifornien
  • 25. Apr. 2021
Die Spieleleistung ist überraschend gut, selbst für Windows-Spiele, die unter dem Windows 10-Hypervisor und der x86-Emulation laufen.
Reaktionen:the8thark, George Dawes und thedocbwarren

George Dawes

17.07.2014
=VH=
  • 29. Apr. 2021
Stellen Sie sich ein Appletv mit dem m1-Chip vor!

Dann könnte man die Apple Arcade wahrlich Arcade/Konsolen-Ebene nennen.
Reaktionen:AdamInKent, SigEp265 und the8thark DAS

leman

14. Oktober 2008
  • 29. Apr. 2021
dmccloud sagte: Mit 'herkömmlicher' Logik sollte die Grafikleistung des M1 nicht annähernd so gut sein, wie sie ist.

Wenn Sie mit konventioneller Logik meinen, dass iGPUs langsam sind. Es ist dasselbe wie „ARM ist langsam“ – nur weil ein Paradigma traditionell für kostengünstige Geräte mit geringer Leistung verwendet wird, bedeutet dies nicht, dass es nicht zum Bau eines Hochleistungsgeräts verwendet werden kann.

M1 hat ein hervorragendes Potenzial für die Spieleleistung, insbesondere wenn Spiele seine einzigartigen Funktionen nutzen würden. Apples TBDR ermöglicht es, die Code- und Ressourcennutzung für viele moderne Rendering-Ansätze radikal zu vereinfachen und zu rationalisieren. Herkömmliche GPUs erfordern, dass Sie bei einigen Dingen durch nicht offensichtliche Reifen springen, mit Apples Geräten kann dies stattdessen ein Spaziergang sein.

dmccloud sagte: Dies basiert jedoch auf der Betrachtung der Dinge durch das x86-Paradigma (Intel), wo iGPUs bestenfalls heißer Müll sind, ansonsten völlig unbrauchbar. Dabei spielt UMA eine große Rolle, da sowohl CPU als auch GPU gleichzeitig auf dieselben Daten zugreifen können, anstatt die Daten sowohl in die System- als auch in die iGPU-Partition kopieren zu müssen und dann die auf beiden Kopien vorgenommenen Änderungen abzugleichen.

UMA ist für Spiele viel weniger wichtig (als beispielsweise für Software zur Inhaltserstellung), da Spiele sehr selten sowohl CPU- als auch GPU-Zugriff auf die Daten benötigen. Die überwiegende Mehrheit der Spiele verwendet die CPU als Staging-Bereich zum Einrichten von Ressourcen, die dann kopiert und auf der GPU verwendet werden. Das ist es.

Und noch ein paar Anmerkungen:

- Nur die Tatsache, dass Sie UMA haben, bedeutet nicht, dass Sie die Daten nicht kopieren müssen. Die Zero-Copy-Funktionalität erfordert die explizite Verwendung spezialisierter APIs und erfordert, dass Sie Ihre Daten auf ganz bestimmte Weise einrichten. Spiele stören einfach nicht. Sie müssen die Daten also immer noch kopieren, nur das Kopieren selbst ist viel schneller (Sie erhalten volle 68+GBps Bandbreite anstelle von 15GBps PCI-e 3.0 16x, die in High-End-Gaming-GPUs verwendet werden)

- Intel (und AMD) iGPUs verwenden UMA seit Jahren. Ihre Speichertopologie ist praktisch identisch mit der von Apple (CPU und GPU greifen über einen gemeinsamen Last-Level-Cache auf den Speicher zu). Apple hat einfach viel leistungsfähigere Speichercontroller (und auch GPU-Cache-Größen auf Desktop-Ebene) – sie optimieren hier Leistung und Effizienz und kosten nicht wie andere Anbieter.
Reaktionen:thekev, falainber, JMacHack und 1 weitere Person S

Spindel

5. Okt. 2020
  • 29. Apr. 2021
leman sagte: - Intel (und AMD) iGPUs verwenden UMA seit Jahren. Ihre Speichertopologie ist praktisch identisch mit der von Apple (CPU und GPU greifen über einen gemeinsamen Last-Level-Cache auf den Speicher zu). Apple hat einfach viel leistungsfähigere Speichercontroller (und auch GPU-Cache-Größen auf Desktop-Ebene) – sie optimieren hier Leistung und Effizienz und kosten nicht wie andere Anbieter.
Keine Intel- und AMD-iGPUs verwenden UMA überhaupt nicht.

Intel- und AMD-iGPU-Abschnitte eines Teils des System-RAM werden als vRAM verwendet, der Rest des Systems kann auf diesen Teil des RAM überhaupt nicht zugreifen, nur die GPU kann darauf zugreifen.

Bei UMA ist dies nicht der Fall, bei UMA hat das gesamte System jederzeit Zugriff auf den gesamten Arbeitsspeicher.

Und was Spiele angeht, die 'UMA nicht verwenden' hat das nichts mit den Spielen zu tun und alles mit den Grafiktreibern. Das Spiel ruft einfach per API den Grafiktreiber auf, der Treiber sortiert dann das Speicherhandling.
Reaktionen:cal6n und dmccloud DAS

leman

14. Oktober 2008
  • 29. Apr. 2021
Spindel sagte: Keine Intel- und AMD-iGPUs verwenden UMA überhaupt nicht.

Intel- und AMD-iGPU-Abschnitte eines Teils des System-RAM werden als vRAM verwendet, der Rest des Systems kann auf diesen Teil des RAM überhaupt nicht zugreifen, nur die GPU kann darauf zugreifen.

Das ist einfach falsch. Die Intel-Dokumentation besagt eindeutig, dass ihre iGPUs, die mit mindestens Sandy Bridge beginnen (wenn ich mich richtig erinnere) UMA verwenden und sie OpenCL-Zero-Copy-CPU/GPU-Datenerweiterungen bereitstellen, die identisch mit der Zero-Copy-Funktionalität von Apple Metal funktionieren.

Spindel sagte: Und was Spiele anbelangt, die 'die UMA nicht verwenden' hat das nichts mit den Spielen zu tun und alles hat mit den Grafiktreibern zu tun. Das Spiel ruft einfach per API den Grafiktreiber auf, der Treiber sortiert dann das Speicherhandling.

Das ist wiederum falsch (zumindest thematisch). Grafische APIs erfordern, dass Sie die Daten manuell kopieren (entweder indem Sie im Voraus einen Datenzeiger bereitstellen oder indem Sie Kopier-/Zuordnungs-APIs verwenden). Also UMA oder nicht UMA, wenn Sie etwas wie MTLBuffer.contents() oder MTLTexture.replace() verwenden, erstellen Sie immer eine Speicherkopie von dem von Ihrer Anwendung zugewiesenen Speicher in den vom Treiber zugewiesenen Speicher. Sie müssen MTLDevice.makeBuffer(bytesNoCopy: ) verwenden, wenn Sie ein Nullkopierverhalten wünschen.

Um es zusammenzufassen: Nur weil Ihr System über UMA verfügt, bedeutet dies nicht, dass alle Datenkopien auf magische Weise eliminiert werden können.
Reaktionen:Krevnik

dmccloud

7. September 2009
Ankerplatz, AK
  • 29. Apr. 2021
leman sagte: Das ist einfach falsch. Die Intel-Dokumentation besagt eindeutig, dass ihre iGPUs, die mit mindestens Sandy Bridge beginnen (wenn ich mich richtig erinnere) UMA verwenden und sie OpenCL-Zero-Copy-CPU/GPU-Datenerweiterungen bereitstellen, die identisch mit der Zero-Copy-Funktionalität von Apple Metal funktionieren.



Das ist wiederum falsch (zumindest thematisch). Grafische APIs erfordern, dass Sie die Daten manuell kopieren (entweder indem Sie im Voraus einen Datenzeiger bereitstellen oder indem Sie Kopier-/Zuordnungs-APIs verwenden). Also UMA oder nicht UMA, wenn Sie etwas wie MTLBuffer.contents() oder MTLTexture.replace() verwenden, erstellen Sie immer eine Speicherkopie von dem von Ihrer Anwendung zugewiesenen Speicher in den vom Treiber zugewiesenen Speicher. Sie müssen MTLDevice.makeBuffer(bytesNoCopy: ) verwenden, wenn Sie ein Nullkopierverhalten wünschen.

Um es zusammenzufassen: Nur weil Ihr System über UMA verfügt, bedeutet dies nicht, dass alle Datenkopien auf magische Weise eliminiert werden können.

Egal wie Intel es nennt, es ist immer noch kein echtes UMA. Gehen Sie zu Best Buy und sehen Sie sich einen der Laptops an, die nur mit integrierter Grafik angezeigt werden. Sie werden sehen, dass sie so etwas wie '8 GB RAM (6,03 GB verfügbar) sagen. Das liegt daran, dass sie den physischen RAM immer noch in virtuelle CPU/iGPU-Partitionen partitionieren. Intel täuscht oder lügt gerne in Marketing- und manchmal technischen Materialien. Als sie ihre CPUs der 11. Generation ankündigten, verglichen sie nur ihre iGPU (die eigentlich nur ein Rebranding der in den Teilen der 9. die MX350) um zu beweisen, dass ihre Grafik überlegen ist. Eine Gruppe von uns sah sich diese Präsentation bei der Arbeit an und riss Intel in Stücke, weil sie so viele irreführende Aussagen in eine 47-minütige, aufgezeichnete Präsentation gepackt hatten.
Reaktionen:dahlblom x

xWhiplash

Mitwirkender
21. Oktober 2009
  • 29. Apr. 2021
Der M1 schlägt oder konkurriert mit der GTX 1050 Ti, die immer noch auf Platz 2 der Steam-Hardware-Umfrage steht.

Steam-Hardware- und Softwareumfrage
Ich hoffe wirklich, dass die GPU bis zum großen Mac Pro ziemlich konkurrenzfähig ist. Der Versuch, auch nur eine RTX 3060 zu bekommen, ist unmöglich. x

xWhiplash

Mitwirkender
21. Oktober 2009
  • 29. Apr. 2021
leman sagte: Das ist einfach falsch. Die Intel-Dokumentation besagt eindeutig, dass ihre iGPUs, die mit mindestens Sandy Bridge beginnen (wenn ich mich richtig erinnere) UMA verwenden und sie OpenCL-Zero-Copy-CPU/GPU-Datenerweiterungen bereitstellen, die identisch mit der Zero-Copy-Funktionalität von Apple Metal funktionieren.
Wenn Sie das Dokument lesen, muss es sich um eine Programmänderung handeln. Wie viele Software hat diese Änderung vorhanden?

software.intel.com

Optimale Nutzung von OpenCL™ 1.2: So steigern Sie die Leistung durch...

Downloads Download OpenCL™ 1.2 optimal nutzen: So steigern Sie die Leistung durch Minimieren von Pufferkopien auf Intel® Proce software.intel.com
Führen Sie einen der folgenden Schritte aus, um Nullkopiepuffer zu erstellen:

Verwenden Sie CL_MEM_ALLOC_HOST_PTR und lassen Sie die Laufzeit die Erstellung eines Zuweisungspuffers für Nullkopien übernehmen

Wenn Sie bereits über die Daten verfügen und die Daten in ein OpenCL-Pufferobjekt laden möchten, verwenden Sie CL_MEM_USE_HOST_PTR mit einem Puffer, der an einer 4096-Byte-Grenze (ausgerichtet an einer Seiten- und Cachezeilengrenze) und einer Gesamtgröße, die ein Vielfaches von 64 ist, zugewiesen ist Byte (Cache-Zeilengröße).

Verwenden Sie beim Lesen oder Schreiben von Daten in diese Puffer vom Host clEnqueueMapBuffer(), bearbeiten Sie den Puffer und rufen Sie dann clEnqueueUnmapMemObject() auf. Dieses Dokument enthält Codebeispiele, um die besten bekannten Praktiken auf Intel®-Plattformen zu demonstrieren.
J

JouniS

22.11.2020
  • 29. Apr. 2021
Ich gehe davon aus, dass der M1 für die nächsten ein oder zwei Jahre gut bleibt. Wenn der Mangel an Komponenten endet, werden viele Leute Konsolen und GPUs der aktuellen Generation haben, und neue Spiele werden entwickelt, um die schnellere Hardware zu nutzen. Eine M1-GPU mit 16 Kernen wäre dann Low-End und 32 Kerne wären Mittelklasse.

Einige Zeit nach der Veröffentlichung einer neuen Konsolengeneration gibt es immer einen absichtlichen Anstieg der Hardwareanforderungen. Wären alte Konsolen für neue Spiele noch ausreichend, gäbe es wenig Grund, neue Modelle zu kaufen. Auf der anderen Seite, da die Zeit zwischen Konsolengenerationen ~7 Jahre beträgt, wird jede Hardware, die nach dem Sprung gut ist, viele Jahre lang gut bleiben. DAS

leman

14. Oktober 2008
  • 30. Apr. 2021
dmccloud sagte: Egal wie Intel es nennt, es ist immer noch kein echtes UMA. Gehen Sie zu Best Buy und sehen Sie sich einen der Laptops an, die nur mit integrierter Grafik angezeigt werden. Sie werden sehen, dass sie so etwas wie '8 GB RAM (6,03 GB verfügbar) sagen. Das liegt daran, dass sie den physischen RAM immer noch in virtuelle CPU/iGPU-Partitionen partitionieren.

So funktioniert das Treibermodell. Offensichtlich ist ein Teil des Speichers für GPU-Zwecke reserviert. Bei M1 ist das nicht so anders: Sie können die Menge des verfügbaren GPU-Speichers abfragen und die Zahl, die Sie erhalten, ist nicht der gesamte System-RAM. Das ist nur eine Frage der Berichterstattung/'Buchhaltung' und hat wenig mit UMA selbst zu tun. Unified Memory bedeutet, dass GPU und CPU in der Lage sind, physikalisch (und logisch) auf denselben Speicher auf Cache-kohärente Weise zuzugreifen, und jedes vernünftige Modell der Intel iGPU verfügt über diese Fähigkeit.

dmccloud sagte: Intel täuscht oder lügt gerne in ihrem Marketing...

Oh, da können wir uns absolut einig sein. Intel-Marketing ist, wie man es ausdrückt, gerne... 'optimistisch'. Aber aus technischer Sicht sind Intel-GPUs durchaus interessante und keine einfachen Geräte. Sie verfügen über sehr flexible Rechenfunktionen.

xWhiplash sagte: Wenn Sie das Dokument lesen, muss es sich um eine Programmänderung handeln. Wie viele Software hat diese Änderung vorhanden?

Genau das gleiche gilt für Apple Silicon. Wenn Sie kein Kopierverhalten wünschen, müssen Sie eine bestimmte API verwenden und sicherstellen, dass Sie Ihren Speicher auf eine bestimmte Weise zuweisen.
Reaktionen:thekev

LeeW

5. Februar 2017
Über den Hügel und weit weg
  • 30. Apr. 2021
Lowhangers sagte: Das einzige Spiel, das ich auf meinem Mac mini spiele, ist World of Warcraft. Und es läuft recht gut und bietet eine respektable Auflösung von 60 Bildern pro Sekunde auf meinem M1 Mac mini. Ich habe überhaupt keine Beschwerden, für den Preis, den ich für den Mini bezahlt habe.

Apple hat mit dem M1 fantastische Arbeit geleistet und ich kann mir nur vorstellen, wie viel besser es im Laufe der Jahre werden wird, wenn sie es verbessern. Ich kann mir nicht vorstellen, wo Web in vier oder fünf Generationen dieser Prozessoren sein wird.

Das bin ich auch, ich spiele WoW nur ​​lässig und tauche in Retail/Classic ein und aus, wenn es die Zeit erlaubt. Gespielt seit 2006, aber raide nicht mehr, genieße einfach ein bisschen Questen und um die Welt zu wandern.

Läuft auf dem M1 Mac Mini erstaunlich gut, im Vergleich zu meinen vorherigen Geräten aus den Jahren 2014 und 2018. 45-60 FPS auf 3440 x 1440 @ maximalen Einstellungen mit einer leichten Anpassung an die Schatten, es wird kaum warm und kommt damit gut zurecht. x

xWhiplash

Mitwirkender
21. Oktober 2009
  • 30. Apr. 2021
Leman sagte: Genau das gleiche gilt für Apple Silicon. Wenn Sie kein Kopierverhalten wünschen, müssen Sie eine bestimmte API verwenden und sicherstellen, dass Sie Ihren Speicher auf eine bestimmte Weise zuweisen.
So funktioniert es nicht. Apple Silicon hat Zugriff auf alle 16 GB RAM. Es gibt keinen separaten VRAM, aber für Intel iGPU gibt es ihn.
Reaktionen:dmccloud

Hessel89

27.09.2017
Niederlande
  • 30. Apr. 2021
Nur basierend auf den Geekbench-Ergebnissen hatte ich eine ähnliche Leistung wie bei einem AMD RX 560 erwartet.
Dies scheint in den meisten Spielen genau der Fall zu sein, mit dem einzigen Unterschied, dass ich die Zeichenentfernung auf der M1 auf das absolute Maximum einstellen kann. (Dank der 16 GB Unified-RAM)

Mit Metal 2 aktivierten Spielen ist es jedoch ein ganz anderes Ballspiel!
Ich kann X-Plane 11 bei 2560 x 1440 spielen, wenn alles auf Ultra / High eingestellt ist, und ich bekomme immer noch solide 30 bis 40 fps.
Das ist tatsächlich besser als das, was ein Freund von mir mit seiner RTX 2060 bekommt. Dabei bleibt es absolut leise!

Es sollte nicht so mächtig sein, aber irgendwie ist es das..
Reaktionen:Homy DAS

leman

14. Oktober 2008
  • 30. Apr. 2021
xWhiplash sagte: So funktioniert es nicht. Apple Silicon hat Zugriff auf alle 16 GB RAM. Es gibt keinen separaten VRAM, aber für Intel iGPU gibt es ihn.

Mir sind keine Einschränkungen bei der Speicheradressierung bei Intel iGPUs bekannt. Sowohl Intel- als auch Apple-Geräte greifen über denselben Last-Level-Cache und denselben Speichercontroller auf den Systemspeicher zu. Der gesamte Intel GPU-Speicher ist sichtbar und Cache-kohärent mit der CPU und umgekehrt. Sowohl Intel- als auch Apple-GPU-Geräte können mithilfe von Opt-in-APIs direkt auf Systemspeicherzuweisungen zugreifen (Zero-Copy).

Alle 'VRAM-Größen'-Berichte usw., die Sie möglicherweise sehen, sind treiber- oder betriebssystemspezifische Einschränkungen. Intel GPU-Treiber können diese Listen meines Wissens dynamisch anpassen, Apple Silicon verwendet von Anfang an sehr hohe natürliche Limits. Beide reservieren eine bestimmte Menge RAM für GPU-Zwecke. S

Spindel

5. Okt. 2020
  • 30. Apr. 2021
leman sagte: Mir sind keine Einschränkungen bei der Speicheradressierung bei Intel iGPUs bekannt. Sowohl Intel- als auch Apple-Geräte greifen über denselben Last-Level-Cache und denselben Speichercontroller auf den Systemspeicher zu. Der gesamte Intel GPU-Speicher ist sichtbar und Cache-kohärent mit der CPU und umgekehrt. Sowohl Intel- als auch Apple-GPU-Geräte können mithilfe von Opt-in-APIs direkt auf Systemspeicherzuweisungen zugreifen (Zero-Copy).

Alle 'VRAM-Größen'-Berichte usw., die Sie möglicherweise sehen, sind treiber- oder betriebssystemspezifische Einschränkungen. Intel GPU-Treiber können diese Listen meines Wissens dynamisch anpassen, Apple Silicon verwendet von Anfang an sehr hohe natürliche Limits. Beide reservieren eine bestimmte Menge RAM für GPU-Zwecke.
Ja, es stimmt, dass die Vram-Größe mit intel igpus dynamisch angepasst werden kann.
Aber Sie verstehen nicht, dass der Rest des Systems immer noch nicht auf den zugewiesenen VRAM zugreifen kann. Wenn Sie also eine grafische Entität haben, die positioniert werden muss (durch die CPU), muss sich diese Entität sowohl im VRAM als auch im System-RAM befinden. Da die CPU ihre Berechnungen durchführen muss und da sie nicht auf den VRAM zugreifen kann, benötigt sie eine Kopie im System-RAM (all dies grob vereinfacht).

mit UMA können sowohl die CPU als auch die GPU auf dieselbe Speicheradresse zugreifen. DAS

leman

14. Oktober 2008
  • 30. Apr. 2021
Spindel sagte: Aber Sie verstehen nicht, worauf es ankommt, der Rest des Systems kann immer noch nicht auf den zugewiesenen Vram zugreifen. Wenn Sie also eine grafische Entität haben, die positioniert werden muss (durch die CPU), muss sich diese Entität sowohl im VRAM als auch im System-RAM befinden. Da die CPU ihre Berechnungen durchführen muss und da sie nicht auf den VRAM zugreifen kann, benötigt sie eine Kopie im System-RAM (all dies grob vereinfacht).

Das ist einfach falsch. Bei modernen Intel- oder AMD-iGPUs gibt es kein 'VRAM'. Die CPU und die GPU können auf denselben physischen Speicher zugreifen. Wie ich bereits schrieb, teilen sich CPU und GPU die Caches und die Speichercontroller.

Wenn Sie mir nicht glauben, schauen Sie sich die verfügbaren Vulkan-Speicherpools für diese Geräte an (über vkGetPhysicalDeviceMemoryProperties). Nur die von ihnen angebotenen Speicherpools sind sowohl vom Gerät (GPU) als auch vom Host (CPU) zugänglich.

Spindel sagte: Mit UMA können sowohl die CPU als auch die GPU auf dieselbe Speicheradresse zugreifen.

Genau. Aus diesem Grund wundert es mich, dass Sie behaupten würden, Intel sei nicht UMA. Genau so funktionieren Intel iGPUs.

dmccloud

7. September 2009
Ankerplatz, AK
  • 30. Apr. 2021
leman sagte: Das ist einfach falsch. Bei modernen Intel- oder AMD-iGPUs gibt es kein 'VRAM'. Die CPU und die GPU können auf denselben physischen Speicher zugreifen. Wie ich bereits schrieb, teilen sich CPU und GPU die Caches und die Speichercontroller.

Wenn Sie mir nicht glauben, schauen Sie sich die verfügbaren Vulkan-Speicherpools für diese Geräte an (über vkGetPhysicalDeviceMemoryProperties). Nur die von ihnen angebotenen Speicherpools sind sowohl vom Gerät (GPU) als auch vom Host (CPU) zugänglich.



Genau. Aus diesem Grund wundert es mich, dass Sie behaupten würden, Intel sei nicht UMA. Genau so funktionieren Intel iGPUs.

Bei Intel iGPUs ist der Arbeitsspeicher in zwei virtuelle Partitionen aufgeteilt: Eine dient als System-RAM, die andere ist der iGPU gewidmet. Ein HP- oder Dell-Laptop, der mit 8 GB RAM ausgeliefert wird, hat also nur zwischen 6 und 7,5 GB RAM für Programme zur Verfügung, da der Rest ausschließlich der iGPU zugeordnet ist. Darüber hinaus kann auf Daten, die auf die Systempartition geschrieben werden, nur von der CPU zugegriffen werden, und auf Daten, die auf die GPU-Partition geschrieben werden, kann nur von der iGPU zugegriffen werden. Daher ist Intels Verwendung des Begriffs 'UMA' bestenfalls irreführend. Mit dem M1 hat Apple sowohl den CPU- als auch den GPU-Kernen vollen Zugriff auf den gesamten Speicheradressraum gewährt. Für Anwendungen, bei denen sowohl die GPU als auch die CPU verwendet werden (viele MMOs, darunter World of Warcraft, erfüllen diese Kriterien) müssen die Daten auf der Windows-Seite in beide Partitionen kopiert und dann die Änderungen abgeglichen werden, bevor eine Ausgabe durchgeführt wird. Beim M1 können sowohl die CPU- als auch die GPU-Kerne auf die Daten zugreifen und sie ändern gleichzeitig . Dies beschleunigt die Gesamtleistung, da der Abstimmungsschritt nicht mehr benötigt wird. DAS

leman

14. Oktober 2008
  • 30. Apr. 2021
dmccloud sagt: Bei Intel iGPUs ist der Arbeitsspeicher in zwei virtuelle Partitionen aufgeteilt: Eine dient als System-RAM, die andere ist der iGPU gewidmet. Ein HP- oder Dell-Laptop, der mit 8 GB RAM ausgeliefert wird, hat also nur zwischen 6 und 7,5 GB RAM für Programme zur Verfügung, da der Rest ausschließlich der iGPU zugeordnet ist. Darüber hinaus kann auf Daten, die auf die Systempartition geschrieben werden, nur von der CPU zugegriffen werden, und auf Daten, die auf die GPU-Partition geschrieben werden, kann nur von der iGPU zugegriffen werden. Daher ist Intels Verwendung des Begriffs 'UMA' bestenfalls irreführend.

Woher haben Sie diese Informationen? Dies steht im Widerspruch zu allen mir bekannten technischen Dokumentationen und API-Verhalten. Was die „virtuelle Partition“ angeht – das ist nur der RAM, der für die GPU-Nutzung reserviert ist. Apple-Systeme tun das auch. x

xWhiplash

Mitwirkender
21. Oktober 2009
  • 1. Mai 2021
leman sagte: Woher haben Sie diese Informationen? Dies steht im Widerspruch zu allen mir bekannten technischen Dokumentationen und API-Verhalten. Was die „virtuelle Partition“ angeht – das ist nur der RAM, der für die GPU-Nutzung reserviert ist. Apple-Systeme tun das auch.
Auch hier ist es eine Programmänderung. Wenn Sie ein altes Spiel aus dem Jahr 2005 auf einer modernen Intel iGPU ausführen, müssen Sie immer noch eine Kopie in den iGPU-Speicher durchführen. Sie müssen im Code tatsächlich angeben, dass Sie keinen Speicherpuffer haben möchten.

Da Apple keinen dedizierten iGPU-VRAM hat, tritt dieses Problem nicht auf. Es hat diese Trennung nicht.

Bitte zeigen Sie, wo Apple-Systeme dedizierte RAM-Bereiche NUR für die GPU anzeigen. Ich habe hier einen Mac mini M1 und kann nicht finden, wo nur 1 oder 2 GB VRAM verfügbar sind. DAS

leman

14. Oktober 2008
  • 1. Mai 2021
xWhiplash sagte: Auch hier ist es eine Programmänderung. Wenn Sie ein altes Spiel aus dem Jahr 2005 auf einer modernen Intel iGPU ausführen, müssen Sie immer noch eine Kopie in den iGPU-Speicher durchführen. Sie müssen im Code tatsächlich angeben, dass Sie keinen Speicherpuffer haben möchten.

Und wieder ist es dasselbe, wenn Sie Metal oder eine andere GPU-API verwenden. Ich bin wirklich verwirrt, was Sie sagen wollen.

Bitte nicht falsch verstehen, aber an dieser Stelle muss ich nur fragen: Wie sind eure Erfahrungen mit der GPU-Programmierung? Für mich klingt es nicht so, als ob Sie mit grafischen APIs allzu vertraut sind.

xWhiplash sagte: Da Apple keinen dedizierten iGPU-VRAM hat, tritt dieses Problem nicht auf. Es hat diese Trennung nicht.

Natürlich tut es das. Bitte beachten Sie die Metal-Dokumentation. Alle grundlegenden APIs gehen davon aus, dass Sie Daten in vom Treiber zugewiesene Speicherpuffer kopieren. Wenn Sie die Zero-Copy-Funktionalität erreichen möchten, müssen Sie spezialisierte APIs verwenden (wie Sie sagen, es handelt sich um eine Programmieränderung). Ich denke, es ist wie das fünfte Mal, dass ich es erwähne. Es wird langsam frustrierend.

xWhiplash sagte: Bitte zeigen Sie, wo Apple-Systeme dedizierte RAM-Abschnitte NUR für die GPU anzeigen. Ich habe hier einen Mac mini M1 und kann nicht finden, wo nur 1 oder 2 GB VRAM verfügbar sind.

Der verfügbare VRAM sind nur einige Informationen, die Ihnen der Treiber/das Betriebssystem liefert. Intel iGPU hat keinen VRAM. Sie verfügen über einen vom GPU-Treiber verwalteten Systemspeicher. Genau wie Apple. Der Rest ist nur das Verhalten des Fahrers. Ein Intel-Treiber unter Windows könnte Ihre maximale GPU-RAM-Auslastung auf etwa 4 GB begrenzen (ehrlich gesagt, ich weiß es nicht), Apple ist flexibler. x

xWhiplash

Mitwirkender
21. Oktober 2009
  • 1. Mai 2021
leman sagte: Bitte nicht falsch verstehen, aber ich muss an dieser Stelle nur fragen: Wie sind eure Erfahrungen mit der GPU-Programmierung? Für mich klingt es nicht so, als ob Sie mit grafischen APIs allzu vertraut sind.
Ich erstelle Videospiele, arbeite mit Pixel- und Vertex-Shadern in Direct X, XNA, MonoGame, Unity, Unreal und mehr. Ich habe meine Erfahrung, weshalb mehrere Leute, die geschrieben haben, dass Intel dieses Problem nicht hat, NICHT wissen, dass es sich um eine Programmieränderung handelt - und viele Leute haben nicht einmal bemerkt, dass es sich um eine Programmieränderung handelt. Ich habe kein Beispiel finden können, in dem Sie immer wieder behaupten, dass Apples M1 immer noch unter diesem Problem leidet, und ich habe tagelang gesucht. Ich bin nicht in der Lage, die Flags zu finden, die für einen Null-Speicherpuffer benötigt werden, wie Sie es für Intel tun. Also bitte, weise mich in die richtige Richtung, anstatt es nur 5 Mal zu sagen. Wenn Sie den Beweis haben, würde ich ihn auf jeden Fall gerne lesen. Ich habe KEINEN Beweis dafür gesehen, dass der M1 immer noch über eine eigene dedizierte GPU-Speicherzuweisung verfügt. ALLES, was ich gelesen habe und ALLE Dokumentationen, die ich gesehen habe, geben an, dass die M1-GPU auf ALLE 8 GB oder 16 GB des Unified Memory zugreifen kann.

Ich habe Dutzende von Entwicklerdiskussionen und Entwicklermeinungen wie diese gesehen:

Warum der Apple M1-Chip so schnell ist - Ein Entwickler erklärt | Produktionsexperte

Sie haben sich vielleicht schon gefragt, warum der Apple M1 Chip so schnell ist? In diesem Artikel erfahren wir von einem Entwickler, was selbst diese Einstiegs-Macs so schnell macht. www.pro-tools-expert.com
Beim M1 ist dies auch Teil des SoC. Der Speicher im M1 wird als „Unified Memory Architecture“ (UMA) bezeichnet, die es CPU, GPU und anderen Kernen ermöglicht, Informationen untereinander auszutauschen, und mit Unified Memory können CPU und GPU vielmehr gleichzeitig auf den Speicher zugreifen als das Kopieren von Daten zwischen einem Bereich in einen anderen.

Ich habe versucht, mir die Metalldokumentation anzusehen, und ich sehe NICHT, wo eine Programmieränderung erforderlich ist, wie dies bei Intel iGPU der Fall ist. Wenn Sie einen bestimmten Teil des Dokuments haben, weisen Sie mich bitte darauf hin. Aber all diese Berichte von Entwicklern und nichts, was ich bisher gesehen habe, weist mich auf das gleiche Problem hin, das Intel IGPU hat.

Und Sie wissen, wenn wir VRAM in Bezug auf Intel iGPU sagen, meinen wir eigentlich 'segmentierter Speicher, der der GPU vom Treiber zugewiesen wird'. VRAM ist kurz und einfach und schafft dennoch die Konversation. Zuletzt bearbeitet: 1. Mai 2021 DAS

leman

14. Oktober 2008
  • 1. Mai 2021
xWhiplash sagte: Ich erstelle Videospiele, arbeite mit Pixel- und Vertex-Shadern in Direct X, XNA, MonoGame, Unity, Unreal und mehr.

Ah, das ist großartig, also können wir das auf technischer Ebene besprechen.

Edit: Entschuldigung, das Forum fügt Emojis automatisch in die URLs ein :/

xWhiplash sagte: Ich habe meine Erfahrung, weshalb mehrere Leute, die geschrieben haben, dass Intel dieses Problem nicht hat, NICHT wissen, dass es sich um eine Programmieränderung handelt - und viele Leute haben nicht einmal bemerkt, dass es sich um eine Programmieränderung handelt. Ich habe kein Beispiel finden können, in dem Sie immer wieder behaupten, dass Apples M1 immer noch unter diesem Problem leidet, und ich habe tagelang gesucht. Ich bin nicht in der Lage, die Flags zu finden, die für einen Null-Speicherpuffer benötigt werden, wie Sie es für Intel tun.

Wenn Sie ein Zero-Copy-Verhalten haben möchten, dh Ihre eigene Speicherzuweisung als GPU-Puffer verwenden, müssen Sie explizit verwenden makeBuffer(bytesNoCopy:Länge Reaktionen:Krevnik und xWhiplashNächste

Gehe zu Seite

gehenNächste Zuletzt