GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • iree-org/iree
  • Home
  • Building from source
  • Guides
  • Reference
  • Developers
  • Community
  • Blog
  • Getting started
  • Android cross-compilation
  • iOS cross-compilation
  • RISC-V cross-compilation
  • ML frameworks
  • JAX

This view

  • Original page
  • New address

GeezerVison is showing iree.dev — IREE

IREElink

IREE (Intermediate Representation Execution Environment1) 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.

Key featureslink

  • Ahead-of-time compilation


    Scheduling and execution logic are compiled together

    Project architecture

  • Support for advanced model features


    Dynamic shapes, flow control, streaming, and more

    Importing from ML frameworks

  • Designed for CPUs, GPUs, and other accelerators


    First class support for many popular devices and APIs

    Deployment configurations

  • Low overhead, pipelined execution


    Efficient power and resource usage on server and edge devices

    Benchmarking

  • Binary size as low as 30KB on embedded systems


    Running on bare-metal

  • Debugging and profiling support


    Profiling with Tracy

Support matrixlink

IREE supports importing from a variety of ML frameworks:

  • JAX
  • ONNX
  • PyTorch
  • TensorFlow and TensorFlow Lite

The IREE compiler tools run on Linux, Windows, and macOS and can generate efficient code for a variety of runtime platforms:

  • Linux
  • Windows
  • macOS
  • Android
  • iOS
  • Bare metal
  • WebAssembly (experimental)

and architectures:

  • ARM
  • x86
  • RISC-V

Support for hardware accelerators and APIs is also included:

  • Vulkan
  • ROCm/HIP
  • CUDA
  • Metal (for Apple silicon devices)
  • AMD AIE (experimental)
  • WebGPU (experimental)

Project architecturelink

IREE adopts a holistic approach towards ML model compilation: the IR produced contains both the scheduling logic, required to communicate data dependencies to low-level parallel pipelined hardware/API like Vulkan, and the execution logic, encoding dense computation on the hardware in the form of hardware/API-specific binaries like SPIR-V.

IREE Architecture IREE Architecture

Workflow overviewlink

Using IREE involves the following general steps:

  1. Import your model

    Develop your program using one of the supported frameworks, then import into IREE

  2. Select your deployment configuration

    Identify your target platform, accelerator(s), and other constraints

  3. Compile your model

    Compile through IREE, picking settings based on your deployment configuration

  4. Run your model

    Use IREE's runtime components to execute your compiled model

Importing models from ML frameworkslink

IREE supports importing models from a growing list of ML frameworks and model formats:

  • JAX
  • ONNX
  • PyTorch
  • TensorFlow and TensorFlow Lite

Selecting deployment configurationslink

IREE provides a flexible set of tools for various deployment scenarios. Fully featured environments can use IREE for dynamic model deployments taking advantage of multi-threaded hardware, while embedded systems can bypass IREE's runtime entirely or interface with custom accelerators.

  • What platforms are you targeting? Desktop? Mobile? An embedded system?
  • What hardware should the bulk of your model run on? CPU? GPU?
  • How fixed is your model itself? Can the weights be changed? Do you want to support loading different model architectures dynamically?

IREE supports the full set of these configurations using the same underlying technology.

Compiling modelslink

Model compilation is performed ahead-of-time on a host machine for any combination of targets. The compilation process converts from layers and operators used by high level frameworks down into optimized native code and associated scheduling logic.

For example, compiling for GPU execution using Vulkan generates SPIR-V kernels and Vulkan API calls. For CPU execution, native code with static or dynamic linkage and the associated function calls are generated.

Running modelslink

IREE offers a low level C API, as well as several sets of API bindings for compiling and running programs using various languages.

Communitylink

IREE is a sandbox-stage project of LF AI & Data Foundation made possible thanks to a growing community of developers. The project is governed by a Technical Steering Committee — see GOVERNANCE.md.

Find out about IREE community meetings and see how IREE is used:

Community

Project newslink

  • 2025-04-02: AMD submitted an IREE-based SDXL implementation to the MLPerf benchmark suite
  • 2024-05-23: IREE joins the LF AI & Data Foundation as a sandbox-stage project

Communication channelslink

  • GitHub issues: Feature requests, bugs, and other work tracking
  • IREE Discord server: Daily development discussions with maintainers, contributors, and collaborators
  • (New) iree-announce email list: Announcements
  • (New) iree-technical-discussion email list: General and low-priority discussion
  • (Legacy) iree-discuss email list: Announcements, general and low-priority discussion

Project operationslink

Developer documentationlink

Interested in contributing to IREE? Check out our developer documentation:

Developers

Roadmaplink

IREE uses GitHub Issues for most work planning. Some subprojects use both GitHub Projects and GitHub Milestones to track progress.


  1. Pronounced "eerie" and often styled with the emoji ↩

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.