Entwicklerwerkzeuge

PyTorch 2.15 bringt FP8 und schnellere LLM-Decodierung auf Apple Silicon

PyTorch 2.15 führt FP8-Unterstützung, native Metal-Kernel für MoE-Modelle und erhebliche Speichereinsparungen bei der Video-Generierung unter macOS 15 ein.

Ein Laptop zeigt Grafiken eines neuronalen Netzwerks und binäre Würfel, die FP8-Verarbeitung darstellen.
Für diesen Artikel generierte Illustration

Automatisch aus dem englischen Original übersetzt.

Das PyTorch-Team von Hugging Face hat Version 2.15 veröffentlicht, was ein bedeutendes Upgrade für Machine-Learning-Ingenieure darstellt, die mit Apple Silicon arbeiten. Dieses Update führt eine native FP8-Unterstützung ein, beschleunigt das Decoding von Mixture-of-Experts-Modellen um bis zu das 6,5-Fache und reduziert den Speicherbedarf für Video-Generierungsaufgaben drastisch. Die Veröffentlichung richtet sich an macOS 15 und Python 3.11 oder neuer und zielt darauf ab, Macs zu einer erstklassigen Umgebung für das Training und die Ausführung komplexer KI-Modelle zu machen.

Was passiert ist

In weiten Teilen des Jahres 2026 sahen sich Entwickler, die das MPS-Backend auf Macs nutzten, mit Leistungseinbrüchen, nicht unterstützten Operationen und unvorhersehbarem Speicherwachstum konfrontiert. Das PyTorch-Team von Hugging Face hat diese Probleme angegangen, indem es den älteren MPSGraph-Ausführungspfad durch dedizierte Metal-Kernel für kritische Operationen ersetzte. Dieser Wechsel ermöglicht eine direktere Kontrolle über GPU-Ressourcen und beseitigt viele der Engpässe, die zuvor die lokale Modellentwicklung behindert hatten.

Die bemerkenswerteste Neuerung ist die Unterstützung von float8_e4m3fn-Tensoren. Sie erlaubt es Entwicklern, Werte im halben Speicherplatz von BF16 zu speichern und skalierte Matrixmultiplikationen direkt auf der GPU durchzuführen. Diese Funktion gleicht die Fähigkeiten von Macs mit denen an, die bereits in CUDA- und CPU-Backends verfügbar sind. Darüber hinaus umfasst das Update umfangreiche Optimierungen für lineare Algebra, Audioverarbeitung und Videodekodierung, um sicherzustellen, dass ein breiteres Spektrum an Modellen effizient ausgeführt werden kann, ohne auf langsamere Ausführungspfade zurückzugreifen.

Die Leistungsverbesserungen sind insbesondere bei großen Sprachmodellen (LLMs) beeindruckend. Mixture-of-Experts-Architekturen profitieren nun von einer nativen Implementierung der gruppierten Matrixmultiplikation, die Daten auf der GPU hält und den Synchronisationsaufwand reduziert. Auch dichte Modelle verzeichnen Gewinne durch optimierte Single-Row-Linear-Layer und deutlich schnellere Softmax-Operationen. Diese Änderungen verwandeln den Mac insgesamt von einem Gerät, das primär für Inferenz genutzt wird, in ein tragfähiges Werkzeug für anspruchsvollere Trainings- und Generierungs-Workloads.

Wie es funktioniert

Der zentrale technische Wandel in PyTorch 2.15 besteht in der Migration von Operationen von MPSGraph zu benutzerdefinierten Metal-Kernels. MPSGraph war zwar flexibel, führte jedoch oft aufgrund von Graph-Kompilierung und CPU-GPU-Synchronisation zu Overhead. Durch das Schreiben dedizierter Kernel für spezifische Aufgaben wie gruppierte Matrixmultiplikation, konstantes Padding und Softmax stellt das Team sicher, dass Daten auf der GPU bleiben und mit minimaler Latenz ausgeführt werden. Beispielsweise liest der neue Kernel für gruppierte Matrixmultiplikation Gruppen-Offsets direkt auf der GPU und vermeidet so den kostspieligen Ansatz des Loop-over-Groups, der in früheren Versionen verwendet wurde.

Die Speichereffizienz wurde verbessert, indem die Handhabung von Treiberspeicher bei Padding-Operationen neu gestaltet wurde. In früheren Versionen löste die kachelbasierte VAE-Dekodierung von Videos Tausende von Padding-Aufrufen aus, die dazu führten, dass der Treiberspeicher anschwellte. Die neue, auf Metal basierende Implementierung für konstantes Padding verwaltet diese Allokationen effektiver und verhindert das exponentielle Wachstum des reservierten Speichers. Dieser Mechanismus ermöglicht es, komplexe Pipelines zur Video-Generierung innerhalb standardmäßiger Speicherlimits auszuführen, anstatt übermäßige Systemressourcen zu erfordern.

Wichtige Details

  • FP8-Unterstützung: Native Unterstützung für torch.float8_e4m3fn-Tensoren ermöglicht Halbbitz-Präzisionsspeicherung und skalierte Matrixmultiplikation auf MPS.
  • MoE-Beschleunigung: Mixture-of-Experts-Modelle decodieren 5–6,5× schneller; Qwen3.6-35B-A3B erreicht 61,3 Tokens/s auf einem M3 Ultra.
  • Speichereinsparungen: Der Spitzenwert des Treiberspeichers beim Wan2.2-Video-VAE-Decoding sinkt von 270 GiB auf etwa 8 GiB.
  • Lineare Algebra: Komplexe LU-Zerlegung, Dreieckslösungen und schnellere Inversionen kleiner Matrizen werden nun auf MPS unterstützt.
  • Softmax-Optimierung: Softmax über große Vokabulare ist ungefähr 8× schneller und fällt bei typischen Größen von 57 µs auf 7 µs.
  • Systemanforderungen: Das Update erfordert macOS 15 oder neuer und Python 3.11 oder neuer.

Warum das wichtig ist

Für Software-Ingenieure, die KI-Produkte auf Mac-Hardware entwickeln, beseitigt diese Veröffentlichung mehrere große Reibungspunkte. Die Möglichkeit, FP8-Gewichte zu verwenden, bedeutet, dass Sie größere Modelle in begrenzten VRAM passen oder den Druck auf die Speicherbandbreite während der Inferenz reduzieren können. Dies ist entscheidend für die lokale Entwicklung und das Testen von State-of-the-Art-Architekturen, die zuvor für Consumer-Grade-Apple-Silicon-Maschinen zu ressourcenintensiv waren.

Die dramatische Reduzierung des Speicherverbrauchs bei Workflows zur Video-Generierung eröffnet auch neue Möglichkeiten für kreative Anwendungen. Entwickler, die zuvor auf Out-of-Memory-Fehler oder Systeminstabilität stießen, wenn sie Tools wie ComfyUI oder Diffusers verwendeten, können diese Pipelines nun zuverlässig ausführen. Der Fix für Bildbearbeitungs-Korruption in Qwen-Image-2.1 stellt zudem sicher, dass die visuelle Qualität erhalten bleibt, und macht Macs zu einer vertrauenswürdigeren Plattform für produktionsreife Bild- und Videoaufgaben.

Was Sie tun können

  • Aktualisieren Sie Ihre Entwicklungsumgebung auf macOS 15 und Python 3.11, um Kompatibilität mit den neuen MPS-Funktionen sicherzustellen.
  • Testen Sie FP8-Quantisierung in Ihren Modellen unter Verwendung von torch.float8_e4m3fn und F.scaled_mm, um den Speicherfußabdruck zu reduzieren.
  • Führen Sie Benchmarks Ihrer Mixture-of-Experts-Modelle durch, um die durch die native gruppierte Matrixmultiplikation bereitgestellten Verbesserungen der Decoding-Geschwindigkeit zu messen.
  • Aktualisieren Sie Pipelines zur Video-Generierung, um die neuen Kernels für konstantes Padding zu nutzen, und überwachen Sie die Nutzung des Treiberspeichers.
  • Experimentieren Sie mit öffentlichen MPS-Streams über torch.mps.Stream für feinere Kontrolle über gleichzeitige GPU-Operationen.
  • Melden Sie verbleibende Leistungsprobleme oder fehlende Operationen im PyTorch GitHub Repository, um zukünftige Updates zu unterstützen.
  • #pytorch
  • #apple silicon
  • #machine learning
  • #mps
  • #fp8

Tools aus dem Bytechap-Shop

Weiterlesen

Alle Artikel