GPU-Programmierung: Neue Features von Apples Metal 3 in der Praxis

Version 3 von Apples API für 3D-Apps und paralleles Rechnen auf der GPU stellt Tempo in den Vordergrund. Hier zeigen wir, wie man die Funktionen anwendet.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
,
Lesezeit: 17 Min.
Von
  • Jürgen Schuck
Inhaltsverzeichnis

Auf der WWDC 2022 hat Apple Metal 3 vorgestellt, ein großes Update, bei dem sich fast alles um das Thema Performance dreht: Sei es schnellerer Code, schnelleres Programmieren oder schnelleres Debuggen. Dazu hat Apple das neue Metal 3 um eine Reihe zusätzlicher Features erweitert, die es wert sind, näher betrachtet zu werden: Optimized Ray Tracing bringt die GPU auf Trab, Metal FX Upscaling rechnet kleine Bilder groß, Offline Shader Loading kompiliert Shader schon beim Build von Apps, Fast Resource Loading beschleunigt das Laden von großen Texturen und Mesh Shader bearbeiten anstelle der Vertex Shader ganze Hierarchien aus geometrischen Objekten auf der GPU.

Mehr zu iPhone und iOS 16
kurz & knapp
  • Viele Neuigkeiten in Metal 3 widmen sich der Performance und benötigen aktuelle Hardware und Betriebssysteme.
  • Metal 3 beschleunigt Raytracing, kann kleine Bilder groß rechnen und kompiliert Shader schon beim Build.
  • Die meisten betrachteten Features lassen sich auf einfache Weise in vorhandenem Code verwenden.
  • Xcode 14 erleichtert mit einigen verbesserten und neuen GUIs das Debugging von Metal-3-Apps.
  • Unter macOS bietet Metal 3 Backends für die Machine-Learning-Frameworks TensorFlow und PyTorch.

Metal 3 ist Teil der Betriebssysteme iOS 16, iPadOS 16, tvOS 16 und macOS Ventura. Die neuen Features erfordern im iPhone und iPad mindestens einen A13 Bionic oder M1 SoC (System-on-a-Chip). Macs mit Apple Silicon, AMD- oder Intel-Chips eignen sich ebenfalls. Mit dem neuen Wert .metal3 in der Enumeration MTLGPUFamily und dem Protocol MTLDevice lässt sich die Verfügbarkeit von Metal 3 für den verwendeten Chip zur Laufzeit zu prüfen. Die funktionalen Einschränkungen älterer Devices fasst Apple in der Tabelle Metal Feature Set Tables zusammen (Link im Webcode).

if device.supportsFamily(.metal3) {
  …
}

Den Showcase bildet die App SpeedMetal. Sie realisiert einen simplen Raytracer mit Controls für einige der neuen Features in Metal 3. Innerhalb der App gibt es drei Szenen mit einer, vier und neun Cornell-Boxen, einer Art Hello World für Grafikprogramme. Eine Laufzeitanzeige für die Render-Pipeline zeigt, wie die Features wirken, wenn sie ein- oder ausgeschaltet sind.