Zum Inhalt springen
← Alle KI-News
Aionity · KI-NewsTools & Produkte

PyTorch verlagert Spyre-Compiler auf Inductor

IBM hat den Compiler-Unterbau von torch-spyre von einer selbst entwickelten Lösung auf PyTorch Inductor umgestellt. Der neue Compiler ist nach Angaben der Entwickler rund siebenmal kleiner als sein Vorgänger.

Symbolbild: PyTorch verlagert Spyre-Compiler auf Inductor
Symbolbild · KI-generiert

Der Wechsel betrifft das Backend, das `torch.compile` für IBMs Spyre-Beschleuniger nutzt. Zuvor kam dafür sendnn zum Einsatz, ein separat entwickelter Compiler-Stack. Nun erweitert torch-spyre den quelloffenen Inductor, der zu PyTorch gehört. Der größte Teil von Inductor konnte laut den Entwicklern unverändert übernommen werden; nötig waren Ergänzungen für die Eigenheiten der Spyre-Hardware.

Spyre ist ein PCIe-Beschleuniger mit einer Leistungsaufnahme von 75 Watt, ausgelegt auf Inferenz mit reduzierter Genauigkeit. Die Architektur umfasst 32 kleine Kerne, die über einen Ring verbunden sind. Jeder Kern besitzt einen lokalen Scratchpad-Speicher von 2 MB statt eines gemeinsam genutzten Caches. Daten werden in festen Einheiten, sogenannten Sticks, mit jeweils 128 Byte bewegt; bei fp16 entspricht das 64 Werten.

torch-spyre übersetzt ein mit `torch.compile` verarbeitetes Modell zunächst mithilfe von Inductor-Erweiterungen in eine Zwischenrepräsentation namens SuperDSC. Anschließend wandelt der proprietäre Compiler DeepTools diese in Anweisungen für Spyre um. Der beschriebene Umbau betrifft die erste Stufe. Zu den Aufgaben der Erweiterungen zählen die Zuordnung von Datenlayouts, das Aufteilen von Berechnungen, die Verteilung der Arbeit auf Kerne und die Verwaltung des lokalen Speichers. Auch PyTorch-Operationen wie Layer Normalization werden in für Spyre geeignete Abläufe zerlegt.

Die Entwickler betonen, dass der Wechsel keine unveränderte Plug-and-play-Umstellung war: Für die Anpassungen mussten sie Inductors untere Ebenen und die Codegenerierung erweitern. Einen zentralen Eingriffspunkt binden sie derzeit über einen Monkey-Patch ein, weil Inductor dort noch keinen passenden offiziellen Erweiterungshaken bietet. IBM arbeitet nach eigenen Angaben mit dem PyTorch-Projekt daran, solche Erweiterungspunkte zu formalisieren, damit externe Hardware-Backends sie nutzen können.

War der Artikel hilfreich?

💡 Tipp: Wenn du PyTorch-Modelle für IBM Spyre entwickelst, kannst du prüfen, ob torch-spyre mit `backend=inductor` zu deinem Compiler-Workflow passt.

Vorgeschichte: Am 8. Oktober wurde beschrieben, wie torch-spyre PyTorch-Geräte, Speicherverwaltung, Streams und Compiler mit Spyre verbindet. Die neue Meldung baut auf dieser Integration auf und behandelt den Umbau ihres Compiler-Backends. → Spyre wird über torch-spyre als PyTorch-Gerät eingebunden (08.10.)

Frag Aiory dazu Aiory liest den Artikel und beantwortet deine Fragen dazu.

Quellen

  • PyTorchPrimärquelleInhalt der PyTorch Foundation, CC BY 4.0, zusammengefasst und übersetzt.

KI-erstellter Artikel: Die Aionity-KI hat recherchiert – sie sucht die Originalquelle (etwa die Seite des Herstellers), zieht weitere Berichte hinzu und schreibt daraus einen eigenen Text. Alle Quellen stehen oben. Eine eigene Meinung gibt sie nicht ab. Kennzeichnung nach Art. 50 KI-Verordnung. Fehler? Sag uns im Discord Bescheid.

Alle KI-Meldungen live im Discord Die wichtigsten auch auf X und Bluesky.

← Alle KI-News

Fragen? Einfach mitreden – im Discord.

Discord ist ein kostenloser Gruppenchat. Dort kannst du nachfragen, was eine Meldung bedeutet, eigene Fragen stellen und dich mit anderen austauschen – ganz ohne Vorwissen. Wir fangen gerade erst an: Schau gern vorbei und sag Hallo.