commit | d3527a0d17c6d547b4ea800fcc64198121d73f55 | [log] [tgz] |
---|---|---|
author | bjacob <benoitjacob@google.com> | Mon Sep 26 15:45:37 2022 +0000 |
committer | GitHub <noreply@github.com> | Mon Sep 26 15:45:37 2022 +0000 |
tree | 332badd17c6f1a6c6f0f674c0a380da134095601 | |
parent | 2dfacaf744b0b2ec46951025c1f604d963136fcc [diff] |
mmt4d ukernel: early return paths for degenerate cases (#10533) Take care of cases where one of the M, N or K dimension is 0, in early-return paths. This is motivated by loop pipelining optimizations that I want to do soon in asm kernels, which will have to either assume K>=1 or add an additional conditional branch for that case. The compiler might help optimize away those degenerate cases with static shapes, but not with dynamic shapes anyway. The other motivation here, alluded to in a comment, is that conversations with hardware folks suggest that there's a need to specialize the whole mmt4d loop nest, not just the innermost loop as we are currently doing with the tile_func on CPU. This provides an explicit placeholder for that.
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.