wasm-micro-runtime/samples/workload/XNNPACK
liang.he ecd4fccc96
Upgrade XNNPACK workload (#2394)
- Sync source code to b9d4073a6913891ce9cbd8965c8d506075d2a45a, which is
  referred by tensorflow
- Upgrade emscripten to 3.1.44
- CMake outputs are .wasm files and .aot files
2023-08-01 19:13:00 +08:00
..
.gitignore Fix app manager install atomics app issue and optimize workload scripts (#458) 2020-12-04 15:35:45 +08:00
benchmark.patch Implement SIMD latest opcodes and update LLVM to 13.0 (#758) 2021-09-17 19:12:57 +08:00
CMakeLists.txt Upgrade XNNPACK workload (#2394) 2023-08-01 19:13:00 +08:00
README.md Upgrade XNNPACK workload (#2394) 2023-08-01 19:13:00 +08:00
xnnpack.patch Upgrade XNNPACK workload (#2394) 2023-08-01 19:13:00 +08:00

"XNNPACK" sample introduction

This sample demonstrates how to build XNNPACK benchmarks into WebAssembly with emsdk toolchain and run them with iwasm.

Installation toolchains

please refer to installation instructions.

Build XNNPACK

please build wamrc:

cd <wamr-dir>/wamr-compiler
./build_llvm.sh
mkdir build && cd build
cmake ..
make

And then build xnnpack standalone wasm files

$ cd <wamr-dir>/samples/workload/XNNPACK
$ cmake -S . -B build
$ cmake --build build

Generated .wasm(and .aot) files are under samples/workload/XNNPACK/build.

Run benchmarks

Firstly please build iwasm with simd, libc-emcc and lib-pthread supporting:

$ cd <wamr-dir>/product-mini/platforms/linux/
$ mkdir build && cd build
$ cmake .. -DWAMR_BUILD_LIBC_EMCC=1 -DWAMR_BUILD_LIB_PTHREAD=1
$ make

Then run:

$ cd <wamr-dir>/samples/workload/XNNPACK/build
$ iwasm averag_pooling_bench.aot # (or other aot files)