What's new in StableHLO v1.0?
- Fully specified: the StableHLO Specification is defined for all 98 ops with verifiers and type inference.
- Compatibility guaranteed battle tested in production workloads, and extended to offer 5 years backward compatibility and 2 years forward compatibility to support long-term deployment and manage version skew across annual update cycles.
- Dynamism & Quantization formalized and added to the spec, with verification of constraints.
- Reference interpreter support for static and dynamic ops, including C++ and Python APIs.
- Extensibility via
composite
ops to enable experimentation on higher-level ops. - C++/Python APIs for core features and nightly dev-wheel files for easier onboarding.
- Colab tutorials to demonstrate Python APIs for extracting StableHLO from JAX and PyTorch, and for packaging StableHLO in SavedModel.
- Testdata suite of 3k test files, forward / backward compatibility tests, and >90% code coverage.
- Web-based documentation at https://openxla.org/stablehlo
- Program transformations for refining dynamic programs with shape computation support, program simplification, converting to to linalg or tosa dialects, and more.
- Many community-driven RFCs, opset changes, and contributions: New FP8 types, collective_broadcast, batched gather/scatter ops, hybrid quantization, interpreter APIs, CHLO decompositions, StableHLO simplification transformations, and many more.
What is / isn’t changing?
Extending compatibility guarantees is the biggest change happening at the v1.0 tag. A few ops are on their way out of the opset and are excluded from long-term compatibility, these ops are denoted in the StableHLO Spec > Deprecated Operations.
Aside from that, most existing dev practices will remain the same! We’ll still be evolving the opset, tooling, and APIs to cater to community needs, with opset changes warranting a minor version bump, and patch revisions weekly as we integrate into openxla/xla.
Install via pip
PyPi package will be uploaded shortly (#2346), in the meantime, the easiest way is using the release assets.
pip install stablehlo -f https://github.com/openxla/stablehlo/releases/expanded_assets/v1.0.0
Community Acknowledgements
Lastly, a huge thank you to our quickly growing community – for code contributions, community meeting engagement, RFC feedback, discord discussions, and everything in between!
Especially to our first time contributors since the v0.9.0 release, in alphabetical order:
@Andrew-Cain, @aartbik, @abhigunj, @anakinxc, @apivovarov, @chaserileyroberts, @cryptodeal, @doyeonkim0, @fzakaria, @jakeh-gc, @joker-eph, @jpienaar, @karthikrangasai, @kuhar, @linuxlonelyeagle, @majnemer, @mlevesquedion, @mvpant, @pcoet, @penagos, @penguin-wwy, @pparuzel, @qingyunqu, @scott-griffiths, @sjain-stanford, @srcarroll, @tomnatan30, @xiuhu17, @yinying-lisa-li
Full Changelog: v0.9.0...v1.0.0