StableHLO のロードマップ

この記事の執筆時点では、StableHLO はコンパイラ インターフェースとして MHLO/HLO に取って代わる準備ができています。TensorFlow、JAX、PyTorch で生成でき、XLA と IREE で使用できます。また、MHLO/HLO が提供するすべての公開機能と追加機能を備えています。

このドキュメントでは、StableHLO プロジェクトの次のステップについて説明します。その際、Issue Tracker に反映されている進行中の作業を分類し、この作業を計画成果物に整理します。

マイルストーン

2023 年には、2 つの大きなマイルストーンを予定しています。1)オペセットの初期バージョンと初期互換性保証を提供する StableHLO v0.9、2)優先度の高い改善を実装し、完全な互換性の保証を提供する StableHLO v1.0。

StableHLO v0.9 では MHLO/HLO をミラーリングし、静的にシェーピングされたオペレーションの仕様と初期互換性の保証を追加します。互換性 RFC に基づき、このリリースでは 1 か月間の上位互換性と下位互換性が提供されます。これらの軽微な保証によって、言語の進化の経験を積むことができ、完全な保証が有効になるまでのクリーンアップにしばらく時間がかかります。2023 年第 1 四半期に StableHLO v0.9 をリリースする予定です。

StableHLO v1.0 では、フロントエンド契約のクリーンアップ(現在の言語と未登録の属性の組み合わせではなく、StableHLO プログラムに StableHLO 言語の演算のみが含まれることを目標としています)やリファレンス実装の提供など、優先度の高い改善が実装されています。2023 年下半期に StableHLO v1.0 をリリースする予定です。

ワークストリーム

前述のマイルストーンに向けて開発を整理するために、Issue Tracker のチケットを複数のワークストリームに分類し、ワークストリームをマイルストーンに関連付けます。限られた数(10% 未満)のチケットは特定のワークストリームに割り当てられず、特定のマイルストーンには含まれません。

(P0)互換性実装ワークストリームは、互換性テストスイートとともに互換性 RFC の実装に特化しています。この作業のほとんどは StableHLO v0.9 で完了し、残りは StableHLO v1.0 で完了する予定です。

(P0)フロントエンドの契約ワークストリームは、StableHLO フロントエンドで使用されるが、まだ StableHLO 仕様に含まれていない機能の 100% の実装で構成されます。このワークストリームの目標は、現在の言語と未登録の属性の組み合わせではなく、StableHLO 言語の演算のみが StableHLO プログラムに含まれるようにすることです。このワークストリームの作業のすべてまたはほぼすべてを、StableHLO v1.0 で完了する予定です。

(P0)リファレンス実装ワークストリームは、StableHLO 仕様で定義されているように、StableHLO 演算の 100% にインタープリタを実装する作業を整理します。このワークストリームの作業のすべてまたはほぼすべてを、StableHLO v1.0 で完了する予定です。

(P0)ドキュメント ワークストリームでは、StableHLO のプロデューサーやコンシューマが必要とする可能性のあるすべての情報を提供します。StableHLO 仕様は主要な成果物であり、StableHLO API と StableHLO シリアル化形式のリファレンスでもあります。ワークストリームの重要な部分は StableHLO v1.0 で配信され、優先度の低い項目は順次対処されます。

(P1)Conformance Suite ワークストリームは、リファレンス実装と StableHLO バックエンドによって提供される実装を比較するテストスイートの提供で構成されます。リファレンス実装のテストでは、一種の適合性スイートが提供されるため、このワークストリームには P0 優先度はありません。ただし、興味深いテストケースを追加してこのスイートをさらに強化することは、今後の作業で役立つ可能性があります。

(P1)仕様への準拠ワークストリームにより、StableHLO 演算の 100% が StableHLO 仕様で定義されている StableHLO 言語で実装されていることが保証されます。StableHLO 言語はすでに合理的に準拠しているため、このワークストリームには P0 優先度はありませんが、多くの重要項目が残っており(特に検証ツールの実装の特殊なケース)、順次対処される予定です。

(P1)「新機能」ワークストリームは StableHLO ロードマップを完成させ、StableHLO オペレーション セットの新機能の ragtag コレクションで構成されています(他のワークストリームになる StableHLO 言語や StableHLO バインディングは含まれません)。これらの新機能のいくつかは StableHLO v1.0 での提供が予定されていますが、大部分は現在優先度の低いアイテムで、特定のマイルストーンには含まれていません。

(P1)公開 API ワークストリームは、StableHLO 言語用の C/C++/Python バインディングを配信することに特化したものです。既存の C++/Python バインディングはすでにかなり妥当であるため、このワークストリームには P0 優先度はありません。しかし、こうしたバインディングの安定性を提供する作業など、まだやるべきことが数多く残されています。これは、現在互換性 RFC でカバーされていないことですが、今後の作業に役立つ可能性があります。