commit | 9b97d80cb2c70fcad9e4a5a5b4f0c97822c28f00 | [log] [tgz] |
---|---|---|
author | bjacob <benoitjacob@google.com> | Tue Sep 20 13:25:34 2022 -0400 |
committer | GitHub <noreply@github.com> | Tue Sep 20 17:25:34 2022 +0000 |
tree | 7e766dc866e80c973a223bf5f6849f1b7ea515cb | |
parent | 8ad7a71b9e81276066a8636ed9947fb432c4829e [diff] |
mmt4d i8mm kernel register fix (#10476) This comes on top of #10475, the only actual diff here is in runtime/src/iree/builtins/ukernel/arch/arm_64/mmt4d_tile_arm_64_i8mm.S. I noticed that google benchmark was incorrectly running only 1000 iterations of this benchmark. Debugging, its floating point code computing elapsed time got wrong arithmetic in determining whether it was time to cut the benchmark short. Eventually I realized my mistake: this kernel uses all 32 SIMD registers, including v8--v15 whose bottom 64bit are callee-saved. We were overwriting the google-benchmark code's timestamp value stored in one of those! The standard fix would be to push these 8 x 64bit to stack an pop at the end, which could be done in a total of 4 store-pair + 4 load-pair = 8 instructions, but we save those instructions by instead just not using v8--v15 at all; we didn't really need them.
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.