commit | c889a4cb3515b53c60166f302ff01f3c43e29a8a | [log] [tgz] |
---|---|---|
author | Ben Vanik <ben.vanik@gmail.com> | Tue Feb 21 16:52:43 2023 -0800 |
committer | GitHub <noreply@github.com> | Tue Feb 21 16:52:43 2023 -0800 |
tree | fd45ea17962e230374056f08d131c0c830e84620 | |
parent | de17d3d463f8a47d0fc822219e5b8f16faa00007 [diff] | |
parent | f810b62af43413cbda7508d2ba469dc7079a8562 [diff] |
Adding `iree_bitcode_library` using our own clang build. (#12097) Our own clang build allows us to cross-compile to all targets we care about with a consistent version separate from system compilers where we may not even have clang, or an ancient version of clang-12, or a clang that can't compile CUDA, etc etc. This initial PR enables the clang build and changes the custom_dispatch samples and the `iree/builtins/device` library to use it. The CUDA sample still includes nvcc to demonstrate how that can be used. The device builtins change allows us to remove the checked in bitcode files and instead compiles them from source as a normal part of building the compiler. Ergonomic improvements are needed before scaling this out such as a matrix rule for reducing the BUILD boilerplate. `iree/builtins/musl` will need to move off of using make but `iree/builtins/ukernel` should be easier to glob and use directly but has grown a bit too complex to directly use this right now (arch/config rewriting goo). This will bump up compiler build times as we're now building clang. I tried to avoid needing to do this but it's way better than any alternative (checking in bitcode, only being able to build microkernels on certain platforms, supporting random user errors with outdated/misconfigured clangs, 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!
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.