Stabile HLO-Roadmap

Zum Zeitpunkt der Erstellung dieses Dokuments ist StableHLO bereit, MHLO/HLO als Compiler-Schnittstelle zu ersetzen. Sie kann von TensorFlow, JAX und PyTorch erstellt und von XLA und IREE genutzt werden. Außerdem enthält es alle öffentlichen Features von MHLO/HLO sowie zusätzliche Funktionen.

In diesem Dokument werden die nächsten Schritte für das StableHLO-Projekt beschrieben. Dabei wird die laufende Arbeit, die in der Problemverfolgung wiedergegeben wird, kategorisiert und diese Arbeit in geplante Liefergegenstände unterteilt.

Meilensteine

Für 2023 planen wir zwei große Meilensteine: 1) StableHLO v0.9 mit einer ersten Version des Vorgangs und der anfänglichen Kompatibilitätsgarantien sowie 2) stableHLO v1.0, die Verbesserungen mit hoher Priorität implementieren und mit der Bereitstellung vollständiger Kompatibilitätsgarantien beginnen wird.

StableHLO v0.9 spiegelt MHLO/HLO, erweitert mit einer Spezifikation für statisch geformte Vorgänge und anfängliche Kompatibilitätsgarantien. Gemäß Kompatibilitäts-RFC bietet dieser Release einen Monat lang Aufwärts- und Abwärtskompatibilität. Diese moderaten Garantien ermöglichen es Ihnen, Erfahrungen mit der Entwicklung des Dialekts zu sammeln und einige Zeit für die Bereinigung zu warten, bevor vollständige Garantien in Kraft treten. Die Veröffentlichung von StableHLO v0.9 ist für das 1. Quartal 2023 geplant.

StableHLO v1.0 implementiert Verbesserungen mit hoher Priorität, einschließlich der Bereinigung des Front-End-Vertrags (mit dem Ziel, dass StableHLO-Programme nur Vorgänge aus dem StableHLO-Dialekt und nicht die aktuelle Mischung aus Dialekten und nicht registrierten Attributen enthalten) und eine Referenzimplementierung bereitzustellen. Die Veröffentlichung von StableHLO v1.0 ist für das 2. Halbjahr 2023 geplant.

Workstreams

Um die Entwicklung anhand der oben genannten Meilensteine zu organisieren, haben wir die Tickets im Issue Tracker in mehrere Workstreams kategorisiert und diese Workstreams den Meilensteinen zugeordnet. Eine begrenzte Anzahl von Tickets (weniger als 10%) wird keinem bestimmten Workstream zugewiesen und ist nicht Teil eines bestimmten Meilensteins.

(P0) Der Workstream zur Kompatibilitätsimplementierung ist für die Implementierung von Kompatibilitäts-RFC zusammen mit einer Kompatibilitätstestsuite vorgesehen. Der Großteil dieser Arbeit wird in StableHLO v0.9 ausgeführt. Der Rest wird in StableHLO v1.0 ausgeführt.

(P0) Der Workstream des Front-End-Vertrags enthält 100% der Features, die von StableHLO-Front-Ends verwendet werden, aber noch nicht in der StableHLO-Spezifikation enthalten sind. Ziel dieses Workflows ist es, sicherzustellen, dass StableHLO-Programme nur Vorgänge aus dem StableHLO-Dialekt und nicht mehr der heutigen Mischung aus Dialekten und nicht registrierten Attributen enthalten. Wir planen, alle oder fast alle Arbeiten in diesem Workflow in StableHLO v1.0 abzuschließen.

(P0) Der Workstream zur Referenzimplementierung organisiert die Arbeit an der Implementierung eines Interpreters für 100% der StableHLO-Vorgänge, wie in der StableHLO-Spezifikation definiert. Wir planen, alle oder fast alle Arbeiten in diesem Workstream in StableHLO v1.0 abzuschließen.

(P0) Der Dokumentations-Workflow ist darauf ausgelegt, alle Informationen bereitzustellen, die StableHLO-Hersteller oder -Nutzer möglicherweise benötigen. Die StableHLO-Spezifikation ist ein wichtiger Liefergegenstand sowie eine Referenz für die StableHLO API und das StableHLO-Serialisierungsformat. Wichtige Teile des Workstreams werden in StableHLO v1.0 bereitgestellt. Elemente mit niedrigerer Priorität werden fortlaufend aktualisiert.

(P1) Der Workstream der Conformance Suite besteht aus der Bereitstellung einer Testsuite, die eine Referenzimplementierung mit Implementierungen von StableHLO-Back-Ends vergleicht. Tests für die Referenzimplementierung liefern eine Konformitätssuite von Sortierungen, sodass dieser Workstream keine P0-Priorität hat. Die weitere Erweiterung dieser Suite mit zusätzlichen interessanten Testfällen wird jedoch wahrscheinlich ein nützlicher Bereich für zukünftige Aufgaben sein.

(P1) Der Workstream Specification Compliance stellt sicher, dass 100% der StableHLO-Vorgänge im StableHLO-Dialekt implementiert sind, wie in der StableHLO-Spezifikation definiert. Der StableHLO-Dialekt ist bereits ausreichend konform, sodass dieser Workstream keine P0-Priorität hat. Viele kleinere Elemente bleiben jedoch erhalten (insbesondere in den seltenen Fällen der Prüfungsimplementierung) und werden fortlaufend bearbeitet.

(P1) Der Workstream New Features schließt die StableHLO-Roadmap ab und besteht aus einer Ragtag-Sammlung neuer Funktionen für das StableHLO-Opset (nicht für den StableHLO-Dialekt oder die StableHLO-Bindungen – das wären andere Workstreams). Einige dieser neuen Features sind für die Bereitstellung in StableHLO v1.0 geplant. Die meisten sind jedoch derzeit Elemente mit niedrigerer Priorität, die nicht Teil eines bestimmten Meilensteins sind.

(P1) Der Public API-Arbeitsstream ist für die Bereitstellung von C/C++/Python-Bindungen für den StableHLO-Dialekt vorgesehen. Vorhandene C++/Python-Bindungen sind bereits recht vernünftig, sodass dieser Workstream keine P0-Priorität hat. Es gibt jedoch noch einiges zu tun, insbesondere zur Bereitstellung von Stabilität für diese Bindungen. Diese Bindungen sind derzeit nicht durch den Kompatibilitäts-RFC abgedeckt, werden aber wahrscheinlich für zukünftige Arbeiten nützlich sein.