heise+ | KI-Code mit Metal parallelisieren: So geht es mit Apples API

vor 7 Stunden 1
  1. KI-Code mit Metal parallelisieren: So geht es mit Apples API
    • Das Beispielprojekt
  2. GPT-2 124M als Testplattform
  3. Arbeit mit Metal
  4. Nutzung von Shadern
  5. Beschleunigung und Fazit

Rechenintensive Programme lassen sich auf unterschiedliche Weise parallelisieren, um sie schneller auszuführen. Im Bereich der künstlichen Intelligenz sind trotz leistungsstarker Server iPhone-Clients für Applikationen wie ChatGPT, Copilot und Gemini dadurch überhaupt erst praktikabel realisierbar. Auch eigene Apps lassen sich deutlich beschleunigen, indem sie die verfügbaren Prozessorkerne (Cores) des ausführenden Rechners parallel verwenden. In den Programmiersprachen C / C++ und Objective-C lassen sich die Kerne der CPU dank APIs wie pthreads, OpenMP oder Grand Central Dispatch (GCD) für eigenen Code erschließen.

Im Sprachumfang von Swift gibt es dafür Concurrency, ein Programmiermodell für parallel ausführbaren Code auf den Kernen der CPU. Für die GPU ist Metal das Mittel der Wahl. Im Unterschied zu den vergleichsweise wenigen Kernen einer CPU verfügt die GPU über mehr als tausend Recheneinheiten, deren Funktionsweise jeweils der eines CPU-Kerns ähnlich ist. Das Low-Level-API von Apple überträgt Code auf die GPU, um ihn parallel auf deren über tausend Recheneinheiten auszuführen.

  • Über Apples Metal-API lässt sich rechenintensiver Code von der CPU auf die GPU verlagern.
  • Dazu überträgt man geeignete Schleifenkörper als sogenannte Compute Shader in die Metal Shading Language.
  • Die parallele Ausführung durch die GPU verkürzt die Antwortzeiten von Large-Language-Modellen.

Das Core-ML-Framework von Apple verwendet über das Metal-API die GPU und ermöglicht dadurch Apps mit künstlicher Intelligenz auf iPhones, iPads und Macs ohne zusätzliche Rechenkapazitäten in der Cloud. Das Xcode-Projekt zu diesem Artikel, das Sie hier herunterladen können, demonstriert dies am Beispiel eines Large Language Models (LLM; siehe Glossar auf Seite 134). Das Open-Source-Projekt enthält ein LLM in Swift, das die CPU sequenziell ausführt, sowie zwei weitere Versionen in Metal für die GPU.

Das war die Leseprobe unseres heise-Plus-Artikels "KI-Code mit Metal parallelisieren: So geht es mit Apples API". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.

Gesamten Artikel lesen