tree acdcdf637ee44926d196deb9e1101852e7f483d8
parent 41880a44b5376387ad83054582fc62e0c2e5457d
author Scott Todd <scotttodd@google.com> 1643396545 -0800
committer GitHub <noreply@github.com> 1643396545 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJh9D3BCRBK7hj4Ov3rIwAAZFkIABcLmOGUv11jfgaeKrq/eaKP
 B2osYpPmH9BAoCdHeb8YivjVmw6V3WBXo7c/ZgPLPGYi6g6A/ioaGGuuES5sU223
 7zyV6nH3c9ychSGtNzipH6w0bB18xJp7AtW8UJr1DWPGvbsGZQ5YwiMWrUZZ1adF
 20fCumuHWuUojCzFz3VuCqHi+clwO3Vrlv9Min3IXu4gOTCDvoT1QOpruUQwjI2K
 XhnYidrvfvJdPq4+SOsSbqldinyIbj5PfyWq1TnYVoV2n9q4MYHY/76ELel+wlq5
 4XN9X+eH7u+nr6t9Nf+/dEc4I1gCBfcFZK/GE6b0HLcqKR0wE1OTBUvmNAmXxrc=
 =TxiE
 -----END PGP SIGNATURE-----
 

Add an experimental static library web demo using Emscripten. (#8171)

This is a proof of concept for deploying to the web using IREE. See the README for more details.

Rough structure:
* `build_static_emscripten_demo.sh` compiles an MNIST sample model targeting WebAssembly (`--iree-hal-target-backends=llvm --iree-llvm-target-triple=wasm32-unknown-unknown -iree-llvm-link-static`), compiles the runtime using Emscripten, then starts a local webserver for the provided index.html
  * Parts of this could be folded into the CMakeLists.txt, but I think this split is easier to follow
* `index.html` has the web demo code (`<canvas>` for drawing, javascript for interfacing between the UI and the Wasm module)
* `main.c` has the native demo code (using IREE's high level `runtime/` API)
* `device_sync.c` and `device_multithreaded.c` implement CPU devices using the static library output

Future work _not_ finished here:

* Finish multithreading setup. I'm still debugging something in our use of threading/synchronization primitives and Emscripten's pthreads implementation (an infinite timeout instead always returns immediately, breaking our implementation)
* Support for non-static deployment by implementing an emscripten loader (similar to dlopen)
* Building/testing on our CI. We have an Emscripten build in https://github.com/google/iree/blob/main/build_tools/buildkite/cmake/build_configurations.yml that could be extended to cover this though

The resulting web page looks like this:  ![mnist_demo](https://cdn.discordapp.com/attachments/782059441641881630/935243419029225523/iree_mnist_web_demo.gif)

(again - proof of concept, the demo program is not very accurate and the preprocessing logic may be wrong :D)