Skip to content

StableHLO 0.9.0

Compare
Choose a tag to compare
@burmako burmako released this 02 Mar 20:32
· 1046 commits to main since this release
c1a47c7

StableHLO is an operation set for high-level operations (HLO) in machine learning (ML) models. Essentially, it's a portability layer between different ML frameworks and ML compilers: ML frameworks that produce StableHLO programs are compatible with ML compilers that consume StableHLO programs.

This is the first release of StableHLO that consists of 572 commits by 15 contributors made over the course of more than 6 months. StableHLO is based on the MHLO dialect and the HLO opset which were developed by countless contributors over the course of many years. Thank you, everyone, for your hard work!

Integrations

StableHLO is now available as a drop-in replacement for MHLO/HLO in the role of compiler interface, and it has been used in production since the end of 2022. StableHLO can be produced by TensorFlow, JAX and PyTorch, it can be consumed by XLA and IREE, and it has all the public features provided by MHLO/HLO as well as additional functionality, including a comprehensive specification and compatibility guarantees.

Comprehensive specification

StableHLO comes with a comprehensive specification for 94 statically-shaped operations. The specification is inspired by XLA Operation Semantics which serves as a reference for the HLO opset. In StableHLO, we built upon this work and formalized the semantics of HLO ops, aiming to cover every nook and cranny of their semantics.

Compatibility guarantees

Stability is another big feature of StableHLO. Starting with 0.9.0, we are providing 1 month of forward and backward compatibility guarantees for portable artifacts, with plans to scale up to 5 years later this year. compatibility.md provides more details about what's in scope, what's out of scope and what comes next.

Next steps

At the moment, we are focused on establishing a pristine frontend contract and providing a reference implementation for this contract. After implementing these key new features and making high-priority cleanups in the codebase, we are planning to release StableHLO 1.0.0 in H2 2023. See roadmap.md for more details.