commit | 95dff5051647db93e838a4ed858981f6e12d7c99 | [log] [tgz] |
---|---|---|
author | Stella Laurenzo <laurenzo@google.com> | Sun Jul 31 14:16:12 2022 -0700 |
committer | GitHub <noreply@github.com> | Sun Jul 31 14:16:12 2022 -0700 |
tree | c30e92075770360cd7eb9f668cbc9bb5d5d6b940 | |
parent | e718fa3d43455faf3c8546f406e8443961c87add [diff] |
Add low level interface for defining VM modules in Python. (#9964) * Add low level interface for defining VM modules in Python. Inspired by #9947, which shows how to extend IREE with custom C modules, I just had to do the plumbing to also allow extension from Python. Usual caveats apply about Python being a terrible thing to implement real things in, but there is no escaping how easy it is -- in my experience, people will start by defining simple Python modules and then if we line that up seamlessly with how you do it in C, it creates a good glide path to progressively enhance. This is just the start. Specifically, it does not yet: * High level sugar: this is a low level interface that is aligned with the VM. It is TBD to add some nice-feeling decorators and such. * Custom types not yet plugged through, but I expect that this could be pretty nicely done and interop well with Python. * There's likely a nice story for integrating with the compiler side, but it needs more thought (i.e. custom ops directly from Python, etc) to make automatic. Also involves the usual grind of handling the ABI type grid, which I don't have time for today.
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.