commit | b6f78917cddd6d64bc09a6ceb64c1f4ef9f06580 | [log] [tgz] |
---|---|---|
author | Scott Todd <scotttodd@google.com> | Tue Mar 01 10:55:11 2022 -0800 |
committer | GitHub <noreply@github.com> | Tue Mar 01 10:55:11 2022 -0800 |
tree | 54a96926ae8d8077e993de5d07343d12be4a100c | |
parent | 24db592936b9f11802dcb6b3e54bfc54d0903d10 [diff] |
Build out dynamic web sample to behave like iree-run-module. (#8417) Live demo: https://scotttodd.github.io/iree-llvm-sandbox/web-tools/iree-dynamic-sample/ The dynamic web sample now has a UI and supports a few different ways of loading IREE programs and specifying functions along with their arguments. Features: * Program path, function name, and function arguments are encoded into URL query parameters (e.g. `index.html?program=simple_abs.vmfb&function=abs&arguments=f32%3D-1.23`), for easy local iteration and settings sharing * Drag-and-drop .vmfb files from your local machine to load them, see a bit of information about them in the console, and test calling functions on them * Click between a few sample compiled programs with preselected inputs to try the page out without compiling on your own Future work / other ideas: * Populate list of function names to call based on module exported function names (except `__init`) * Populate list of function arguments or offer better error messages based on exported function calling conventions * Add proper JavaScript (or TypeScript?) bindings and use those to pass structured data across the JS/Wasm boundary, rather than use semicolon delimited format strings * More complete error handling (check for Wasm support, report error messages to users, help with argument formatting, etc.) * Integrated benchmarking --- Implementation notes: * `parse_input_into_call` and `print_outputs_from_call` are forked from [vm_util.cc](https://github.com/google/iree/blob/main/iree/tools/utils/vm_util.cc), with changes to use C types instead of C++ and to mesh with the rest of the sample better (e.g. output into `iree_string_builder_t` instead of `std::ostream`). These similar implementations should be reconciled IMO.
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.