commit | 1b9e84cf81836814e8fa4feb652a1e27b96a2b6f | [log] [tgz] |
---|---|---|
author | Nicolas Vasilache <nicolasvasilache@users.noreply.github.com> | Fri Apr 08 20:30:02 2022 +0200 |
committer | GitHub <noreply@github.com> | Fri Apr 08 11:30:02 2022 -0700 |
tree | 61779a491e9bdd701fb9e61c070364244cd230db | |
parent | eb0d678894aa6ebb20b056d0f09bad3a16d5d26c [diff] |
Adopt TransformDialectExtension and add iree_bufferize + iree_set_num_workgroups_to_one transform ops (#8821) * Adopt TransformDialectExtension This revision adds support for dynamic registration of ops into the transform dialect (see https://reviews.llvm.org/D123135 for more context). This PR also add ire_set_num_workgroups_to_one and iree_bufferize as transform dialect operations. With this layering improvement we can now run all transformations as a transform and connect to vector lowering all the way to LLVM (inclusive or not depending on the needs). For registration, we piggy-back on Interfaces.cpp::registerCodegenInterfaces for now. This layering should be improved in the future. The C++-specific parts of setnumthreads and bufferization can now be removed from the interp codegen path. The --linalg-transform-interp-disable-bufferization is now obsolete and deleted. * Extract the implementation of SetNumWorkgroup in a free function. This allows reusing the implementation from the transform dialect and ditch the pass application. Passes, nesting and non-Module root ops behave very surprisingly and may easily do nothing and not report anything. As a consequence, we would hit bug #8823 and get flaky single-thread results ..
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.