commit | e6425d6b193843e560ed9f3f669d3e3476d590bd | [log] [tgz] |
---|---|---|
author | Ben Vanik <ben.vanik@gmail.com> | Mon Mar 06 10:25:47 2023 -0800 |
committer | GitHub <noreply@github.com> | Mon Mar 06 10:25:47 2023 -0800 |
tree | 40c0ba28b03509f9b0374215f0404424b100d813 | |
parent | 84b4802c5e505c1a1991aa4893a4bb6be6fae043 [diff] |
Starting support for HAL dispatch specialization. (#12483) This allows `stream.cmd.dispatch` ops to specify multiple entry points in executables that can be dispatched. During interface materialization the entry points are expanded for all materialized variants. HAL backends are also able to add their own entry points either in existing variants or new ones during translation (no helpers yet, but it's possible). When lowering the `stream.cmd.dispatch` into `hal.command_buffer.dispatch` each export now chooses the condition for which it should be selected. This initial work just prepares the op for this conditional dispatch and also solves an issue with compiler reentrancy where between interface materialization and HAL conversion we had IR that would not verify (stream ops still referencing un-materialized exports). Only the existing target variant matcher condition is supported but we now have the place where we'd call out to HAL backend-produced logic for selection (`getExportConditionAttr`). The `inline-dynamic` HAL model can support this too but for now that's deferred until we add the backend support - the `hal.device.switch` op needs a reworking to be used in that context. Fixes #12476.
IREE (Intermediate Representation Execution Environment, pronounced as “eerie”) is an MLIR-based end-to-end compiler and runtime that lowers Machine Learning (ML) models to a unified IR that scales up to meet the needs of the datacenter and down to satisfy the constraints and special considerations of mobile and edge deployments.
See our website for project details, user guides, and instructions on building from source.
IREE is still in its early phase. We have settled down on the overarching infrastructure and are actively improving various software components as well as project logistics. It is still quite far from ready for everyday use and is made available without any support at the moment. With that said, we welcome any kind of feedback on any communication channels!
See our website for more information.
IREE is licensed under the terms of the Apache 2.0 License with LLVM Exceptions. See LICENSE for more information.