StableHLO v1.0 Release (Coming Soon)

174 views
Skip to first unread message

Kevin Gleason

unread,
Apr 17, 2024, 7:51:23 PMApr 17
to OpenXLA Discuss

Hello everyone!


As I mentioned in the last community meeting, we are planning to cut our first major release for StableHLO, and are targeting to do so in the coming month. StableHLO is production ready, battle tested, and will be greatly extending compatibility guarantees in the near future. I wanted to add a post giving a recap of what’s been accomplished in the v0.X state, provide additional rationale for a v1.0, and denote what is/isn’t changing about StableHLO development.


A quick recap of StableHLO milestones from 2023/2024:

  • Fully specified: StableHLO has a spec for all 98 ops with verifiers and type inference.

  • Reference interpreter support for static ops, including C++ and Python APIs.

  • Compatibility infrastructure implemented and forward/backward compatibility guarantees battle tested in production workloads.

  • Dynamism was formalized and added to the spec, with interpreter support planned.

  • Quantization has been spec’ed and implemented, allowing for tools like the StableHLO Quantizer to be built (coming soon to OpenXLA).

  • 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, 

  • Testdata suite of 3k test files, forward / backward compatibility tests, and >90% code coverage.

  • 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.


Why release v1.0?

A few reasons! When we first discussed a v1.0 release we only planned for Spec, Compatibility, Dynamism and Quantization, and we’ve now exceeded those milestones. Second, we’ve now had StableHLO compatibility guarantees battle tested in production use cases for over a year, maintaining over a year of forward/backward compatibility through several opset changes. Lastly, in order to enable StableHLO’s use on-device we plan to extend compatibility guarantees to support 5yrs backward compatibility, and 2yrs forward compatibility, which will go into effect with release v1.0.


What’s left before v1.0?

We’ve put together a hotlist of items on the GitHub repo: StableHLO v1.0 Release. We plan to burn these down over the next month, and welcome any contributions as well as feedback on tickets that should be included! Additionally, once we tag the release, we will upload a wheel file to PyPi for easier pip installation.


What is / isn’t changing?

Extending compatibility guarantees is the biggest change happening at the v1.0 tag. We’re looking into deprecating a few redundant ops before the v1.0 cut (i.e. merging dynamic_slice and real_dynamic_slice), will send an RFC on these shortly. Aside from that, most existing dev practices will remain the same! After the release, 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.


Lastly, I want to thank our quickly growing community – for code contributions, community meeting engagement, RFC feedback, discord discussions, and everything in between!



Best,

Kevin (on behalf of the StableHLO Team @Google)


Kevin Gleason

unread,
May 15, 2024, 3:05:51 PMMay 15
to OpenXLA Discuss, Kevin Gleason

Hi everyone!


Following up on the last message, I’m excited to announce we’ve officially tagged the StableHLO v1.0 Release!


A few updates since the previous message:


There is plenty more exciting work ahead! Thanks to all who contributed to this project’s success!



Best,

Kevin (on behalf of the StableHLO Team @Google)



Reply all
Reply to author
Forward
0 new messages