commit | 5224d8c02f154af0c9ad8d2e627134c4e24a6ca6 | [log] [tgz] |
---|---|---|
author | bjacob <benoitjacob@google.com> | Tue Jul 19 14:02:46 2022 -0400 |
committer | GitHub <noreply@github.com> | Tue Jul 19 11:02:46 2022 -0700 |
tree | 52a736d10568441b43159e4a8e8c6710a3e10e45 | |
parent | 1fe95b6b016de4dea3cd006188d7a097e66a82f2 [diff] |
Finish rationalizing atomics in remaining runtime/ code (#9837) Similar to other PRs from today (#9834, #9835, #9836) this is the rest of the "audit" on all remaining runtime/ code. With this, there are no remaining sequentially-consistent atomics in non-test IREE code. That wasn't a goal in itself: seq_cst atomics are fine (though expensive). But it happened that as many accesses were acquire/release anyway, making remaining accesses acquire/release was not only a potential optimization, it also makes the overall code easier to reason about and more self-documenting. One good thing about acquire and release orders is that they convey intent. By contrast, seq_cst and relaxed don't convey as much information about intent, so an audit of all uses was sure to find at least some cases that were using them for no particular reason. Some places are changed all the way from seq_cst to relaxed, when that was correct. Comments are added to justify relaxed, also at existing places that were already using relaxed. Relaxed is the most aggressive order and doesn't generally self-document intent (unlike acquire/release), so uses should generally be justified by a comment.
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.