metal-kernel
Offizieller PyTorch-Leitfaden für native Metal-Kernel und MPS-Operatoren auf Apple Silicon.
- Skill Road
- metal-kernel
Kategorien
metal-kernel ist ein offizieller Skill aus dem PyTorch-Repository. Er richtet sich an Entwicklerinnen und Entwickler, die PyTorch-Operatoren für Apples MPS-Backend ergänzen, bestehende MPSGraph-Implementierungen auf native Metal-Kernel umstellen oder CUDA-nahe Logik für Apple Silicon übertragen. Laut Anbieter ist das Ziel ausdrücklich die Nutzung der nativen Metal-Infrastruktur unter c10/metal und nicht MPSGraph. Der Skill ist damit ein technischer Arbeitsleitfaden für PyTorch-Beiträge, kein fertiger GPU-Treiber, kein eigenständiges Metal-Framework und kein allgemeiner Einführungskurs in maschinelles Lernen.
Zweck und Architektur
Der beschriebene Ablauf verbindet drei Schichten. Zuerst wird in native_functions.yaml die Dispatch-Zuordnung für den Operator gepflegt. Bei einer Migration sollen alle relevanten Overloads geprüft werden, also funktionale, In-place-, Out- und Tensor- oder Scalar-Varianten. Danach entsteht der Metal-Kernel unter aten/src/ATen/native/mps/kernels. Für elementweise Operationen beschreibt die Quelle Funktoren und Registrierungs-Makros für unäre, binäre oder Alpha-Parameter. Die dritte Schicht ist der Host-seitige Stub unter aten/src/ATen/native/mps/operations. Er bindet TensorIterator an die passende Kernel-Bibliothek und registriert den MPS-Dispatch. Diese Trennung macht sichtbar, ob ein Fehler in der YAML-Zuordnung, im Metal-Code oder in der Host-Anbindung liegt.
Praktische Implementierung
Laut Anbieter helfen REGISTER_UNARY_OP und REGISTER_BINARY_OP dabei, die Iterator-Anbindung für typische elementweise Operationen zu kapseln. Je nach Semantik können Gleitkomma-, Integer-, BFloat16- oder komplexe Datentypen eigene Registrierungen und Funktor-Überladungen benötigen. Die Quelle erläutert opmath- und Akkumulationstypen sowie präzise mathematische Hilfsfunktionen aus c10/metal. Für komplexe Werte ist zu beachten, dass Metal-Darstellungen als Vektoren auftreten können. Wer eine vorhandene MPSGraph-Operation migriert, muss den alten Host-Implementierungspfad entfernen und jeden verbliebenen Verweis auf die alte Funktion prüfen. Ein einzelner unvollständig migrierter Overload kann sonst weiterhin den alten Pfad verwenden.
Tests und Diagnose
Die PyTorch-Testinfrastruktur unter test/test_mps.py prüft grundlegende Übereinstimmung zwischen Ausgaben. Der Skill verweist zusätzlich auf torch.mps.compile_shader, womit einzelne Metal-Shader isoliert kompiliert und auf dem MPS-Gerät getestet werden können. Die offizielle Dokumentation beschreibt dabei Threads als Gesamtzahl der Threads und group_size als Threadzahl pro Threadgruppe. Diese Unterscheidung ist wichtig, weil dispatchThreads nicht dasselbe bedeutet wie dispatchThreadgroups. Bei Pipelines aus mehreren Kerneln sollte jede Zwischenstufe gegen eine CPU- oder NumPy-Referenz geprüft werden, ohne aus Bequemlichkeit jeden GPU-Wert auf die CPU zu kopieren.
Grenzen und Sicherheit
Der Skill setzt Kenntnisse in C++, Objective-C oder Objective-C++, Metal, PyTorch-Builds und MPS voraus. Die beschriebenen Dateien liegen im PyTorch-Quellbaum; sie verändern nicht automatisch eine installierte PyTorch-Version. Apple-Hardware, passende Betriebssysteme, Compiler, SDKs und ein korrekt konfigurierter Build sind erforderlich. Der Leitfaden garantiert weder Performance noch numerische Gleichheit für jede Form und jeden Datentyp. Besonders wichtig sind leere und nicht zusammenhängende Tensoren, große Tensoren, Indexgrenzen und asynchrone Fehler. Laut Anbieter sollen Fehler über den vorgesehenen MPS-Fehlerpuffer gemeldet werden, nicht durch erzwungene GPU-zu-CPU-Synchronisation. Builds und Tests dürfen nur in einer kontrollierten Entwicklungsumgebung ausgeführt werden; unbekannte Dateien, Skripte oder automatisch erzeugte Änderungen müssen vor der Ausführung geprüft werden.
Quelle und Einordnung
Die Primärquelle ist https://github.com/pytorch/pytorch/tree/main/.claude/skills/metal-kernel. Ergänzend ist https://docs.pytorch.org/docs/stable/generated/torch.mps.compile_shader.html die offizielle PyTorch-Dokumentation für das isolierte Shader-Testen. Der Quellbaum von PyTorch ist unter BSD-3-Clause lizenziert. Diese Katalogbeschreibung wurde am 9. September 2026 geprüft. GitHub-Sterne werden für diesen Eintrag nicht gespeichert, weil das Skill-Modell kein github_stars-Feld besitzt. Der Skill passt zu Claude Code, weil er als .claude/skills-Ressource veröffentlicht ist; die fachliche Anleitung selbst ersetzt keine Prüfung der jeweils installierten PyTorch-Version.
- Anbieter
- PyTorch
- Lizenz
- BSD-3-Clause
- Zuletzt geprüft
- 09.09.2026
Repository und Dokumentation
Kategorien
Kompatibel mit
Passende Ratgeber
Anleitungen und Hintergrund, die zu diesem Eintrag passen.
Fakechat-Plugin für Claude Code einrichten
Das Fakechat-Plugin installieren, Claude Code mit Channels-Schalter starten und über eine lokale Browser-Oberfläche Nachrichten und Dateien testen.
30.09.2026
Laravel Boost einrichten
Laravel Boost in einer Laravel-Anwendung installieren und mit Claude Code, Cursor oder Codex verbinden.
29.09.2026
Azure DevOps MCP Server einrichten
Azure DevOps MCP Server einrichten mit geprüften Links, minimalen Rechten und sicherem ersten Test starten.
25.09.2026
Ein Claude-Code-Plugin installieren
Ein Plugin aus dem offiziellen Anthropic-Marketplace installieren – am Beispiel des Code-Review-Plugins.
24.09.2026