Zum Hauptinhalt Zur Navigation

Asahi Linux: Apples M1-GPU komplett auf Metal ausgerichtet

Die GPU im Apple-SoC M1 unterstützt einige Hardwarefunktionen für Vulkan oder OpenGL nicht. Zum Reverse Engineering muss das in den Compiler.
/ Sebastian Grüner
5 Kommentare News folgen (öffnet im neuen Fenster)
Asahi Linux will Linux auf ARM-Macs portieren. (Bild: Asahi Linux)
Asahi Linux will Linux auf ARM-Macs portieren. Bild: Asahi Linux / CC-BY-SA 4.0

Die Entwicklerin Alyssa Rosenzweig berichtet in einem Blogpost(öffnet im neuen Fenster) von den Fortschritten zum Reverse Engineering der Apple-GPU in dem ARM-SoC M1 . Demnach fehlen der GPU Fixed-Function-Einheiten, "die bei Wettbewerbern allgegenwärtig sind" , wie Rosenzweig schreibt. Demnach gebe es keine Funktionen, um Uniform Buffer Objects(öffnet im neuen Fenster) oder Vertex Attributes(öffnet im neuen Fenster) auszulesen. Die Spezifikationen für OpenGL und Vulkan setzen voraus, dass es dafür feste Hardwarefunktionen gibt. Apple setzt dagegen auf das eigene Metal und muss dies nicht beachten.

Rosenzweig schreibt dazu: "Einfach ausgedrückt: Apple muss sich nicht um die Leistung von Vulkan oder OpenGL kümmern. Seine einzige ordnungsgemäß unterstützte API ist sein eigenes Metal, das es möglicherweise so gestaltet, dass es zur Hardware passt, anstatt die Hardware so zu verzerren, dass sie mit der API übereinstimmt" .

Arbeit im Compiler statt in Hardware

Die entsprechenden Arbeiten für diese Funktionen übernimmt dann der Shader-Compiler, den Rosenzweig für das Asahi-Linux-Projekt als Teil des Reverse Engineerings der GPU erstellt. Apple nutze außerdem einige weitere Tricks, um mit dem Kompilieren verbundene Leistungseinbußen zu umgehen. Und auch für Asahi Linux haben die fehlenden Hardwareeinheiten wohl Vorteile.

"Der Silberstreif am Horizont ist, dass es für 'fehlende' Funktionen wie Attributes und Uniform Buffer nichts zu reverse-engineeren gibt. Solange wir wissen, wie man auf den Speicher in Compute-Kernel zugreift, können wir den Code selbst schreiben, ohne Hardware-Rätseleien" , schreibt Rosenzweig.

Reklame

Apple 2023 MacBook Pro Laptop M2 Pro Chip mit 10-Core CPU und 16-Core GPU: 14" Liquid Retina XDR Display, 16GB Gemeinsamer Arbeitsspeicher, 512 GB SSD Speicher

Jetzt bestellen bei Amazon (öffnet im neuen Fenster)

Das ist ihr auch dank der Kooperation mit anderen Projektbeteiligten gelungen. Auf Grundlage des NIR-Compilers aus dem freien Mesa-Projekt und einem weitgehend gereiften Verständnis über die Funktionsweise der GPU und deren Befehlssatz existiert nun ein freier Shader-Compiler für die M1-GPU. Der bisherige Code reiche für einfache 3D-Szenen. Demonstriert wird dies mit einem fast schon üblichen gerenderten 3D-Würfel, für dessen Darstellung keinerlei proprietäre Blobs benötigt würden.

Bisher unterstützte der Compiler nur einen kleinen Teil der Funktionen von OpenGL ES 2.0. Auf dem Weg zu einem richtigen Treiber seien aber noch viele weitere wichtige Arbeiten notwendig.


Relevante Themen