commit | 2ec9017bb1de7d5ba552c1f016326088864b9cf9 | [log] [tgz] |
---|---|---|
author | Ben Vanik <ben.vanik@gmail.com> | Wed Oct 30 16:18:44 2024 -0700 |
committer | GitHub <noreply@github.com> | Wed Oct 30 16:18:44 2024 -0700 |
tree | 765e826efb85dcbee22de33b42dcef28970d0ef0 | |
parent | a744285e3c1a291bd7579cb3a1e699c1a114dba6 [diff] |
Improving VM conversion performance. (#18957) The major change here is using a precomputed import table in VM conversion patterns. This removes the symbol lookup that was happening on each call. In models with 100k calls to imports this speeds things up a lot. Also squashed a few more perf issues involving symbol lookups while profiling and made some passes that could nest on function-like ops do so. These changes drop VM translation of the 405b model from 3.5mins to ~1.5min. Disabling verification (`-verify-each=0` to iree-opt or `-verify=false` to iree-compile) takes it to 1min. Remaining work is mostly around parallelizing some passes that are not trivially parallelizable (FoldGlobals, DropUnusedCalls, etc) and parallelizing some analysis (Explorer global init, call graph walking) that tends to get real expensive when there are 250k calls and 500k ops. Any place that does a symbol use walk is going to suffer. Many of these fixes are in our code but there's several upstream components that fall over with this amount of IR (CallGraph, DataFlowSolver, the verifier, etc).
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
Package | Release status |
---|---|
GitHub release (stable) | |
GitHub release (nightly) | |
Python iree-compiler | |
Python iree-runtime |
Host platform | Build status |
---|---|
Linux | |
macOS | |
Windows |
For the full list of workflows see https://iree.dev/developers/general/github-actions/.
See our website for more information.
Community meeting recordings: IREE YouTube channel
IREE is licensed under the terms of the Apache 2.0 License with LLVM Exceptions. See LICENSE for more information.