commit | 6d3f2a5768d9197bc1253ed654ab49c3c7f3ec18 | [log] [tgz] |
---|---|---|
author | MaheshRavishankar <1663364+MaheshRavishankar@users.noreply.github.com> | Thu Jul 29 12:58:01 2021 -0700 |
committer | GitHub <noreply@github.com> | Thu Jul 29 12:58:01 2021 -0700 |
tree | 5b1f82019b201a1bf1c8164cbe9d1bd675d8f861 | |
parent | 1cd9f0ab6995d0333f7d76412a4bfdcc3c5d35b6 [diff] |
End-to-end CPUexecution of ops implementing `TiledOpInterface`. (#6588) This change enables the end-to-end execution of ops that implement the `TiledOpInterface` on CPU. To enable this - Change the CPU lowering configuration to treat `LinalgExtOp`s as "compute" ops as well (in additional to `LinalgOp`). Use a default for all ops that are not explicitly set. - Change the `TiledOpInterface` implementation of `linalg_ext.scatter` by specifying number of loops to be same as the number of dimensions of the `update`. This allows tile + distribution of dimensions that are not scattered as well. This is needed for effective parallelization (especially on GPU that is to come) - The above necessitated changes to `ConvertToLoops` pass to not have patterns per op, but rather use the interface to lower all ops that implement the `generateScalarImplementation` method. Also add large e2e tests of `scatter` to check the distribution of work. * Address comments and fix invalid assertion.
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!
IREE is licensed under the terms of the Apache 2.0 License with LLVM Exceptions. See LICENSE for more information.