-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide finer grained build targets for downstream usage of pass pipelines #2255
Comments
The specific build errors we saw on Windows were: https://gist.github.com/ScottTodd/f93a66377454bed60a16725d9039a255, and on macOS: https://github.com/iree-org/iree/actions/runs/8821674527/job/24218079731#step:6:5701. We found patches (already merged or pending) for both of those. I'm less concerned with the specific build errors and more hoping for ways to keep the upstream/downstream environment healthy. |
Thanks for reporting these! A few questions:
We have mhlo/transforms, which splits pass definitions but builds them all together. Is the ideal setup that each pass has its own header, pattern gen file, etc?
|
Adding details from discussion in IREE discord:
I think splitting off the serialization is a short-term must-do. I'd also recommend we give the probe instrumentation it's own target as well given that it's intended for use by tooling / test more than compilation or conversion. |
Part of #2255. Currently the `stablehlo_passes` target bundles the reference interpreter, which isn't necessary or intuitive. This splits off the interpreter probe op pass to remove the dependency from stablehlo transforms.
Request description
We've been using StableHLO downstream in the IREE project, specifically these Bazel targets:
With iree-org/iree#16999, we wanted to also include VHLO to benefit from the compatibility aspects of that dialect.
We found two issues that make downstream usage tricky:
Depending on
@stablehlo//:stablehlo_passes
(StablehloPasses
in CMake) pulls in a large number of dependencies, includinginterpreter_ops
.@stablehlo//:stablehlo_portable_api
, that pulls in the passes target by way ofstablehlo_serialization
.Some parts of StableHLO have had build issues on macOS and Windows.
With those issues together, we found that adding a fairly small extra dependency introduced a relatively large chunk of unstable code to our build graph.
What I'd like to see as a downstream project could be a smaller footprint for the
@stablehlo//:stablehlo_portable_api
and@stablehlo//:stablehlo_serialization
targets, perhaps by splitting the VHLO serialization passes out from@stablehlo//:stablehlo_passes
. Improved support for Windows (recent MSVC compiler versions specifically) and macOS would be appreciated too.The text was updated successfully, but these errors were encountered: