mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
27e7e160af
Upgrade the version of related toolkits: - upgrade llvm to 15.0 - upgrade wasi-sdk to 19.0 - upgrade emsdk to 3.1.28 - upgrade wabt to 1.0.31 - upgrade binaryen to 111 And upgrade the CI scripts, sample workload build scripts, Dockerfiles, and documents.
1.5 KiB
1.5 KiB
"codecbench of meshoptimizer" sample introduction
This sample demonstrates how to build codecbench of messoptimizer into WebAssembly with simd support and run it with iwasm.
Preparation
please refer to installation instructions.
Build with wasi-sdk
$ mkdir build && cd build
$ cmake ..
$ make
# to verify
$ ls codecbench.wasm
Or build with EMSDK
EMSDK is another toolchain to compile C/C++ code to WASM. In this case, the output wasm file might have a higher performance than the file generated by wasi-sdk.
$ git clone https://github.com/zeux/meshoptimizer.git
$ cd messoptimizer
$ em++ tools/codecbench.cpp src/vertexcodec.cpp src/vertexfilter.cpp \
src/overdrawanalyzer.cpp src/indexgenerator.cpp src/vcacheoptimizer.cpp \
src/clusterizer.cpp src/indexcodec.cpp src/vfetchanalyzer.cpp \
src/spatialorder.cpp src/allocator.cpp src/vcacheanalyzer.cpp \
src/vfetchoptimizer.cpp src/overdrawoptimizer.cpp src/simplifier.cpp \
src/stripifier.cpp -O3 -msimd128 \
-s TOTAL_MEMORY=268435456 \
-o codecbench.wasm
$ ls -l codecbench.wasm
Run workload
Firstly please build iwasm with simd support:
$ cd <wamr dir>/product-mini/platforms/linux/
$ mkdir build && cd build
$ cmake ..
$ make
Then compile wasm file to aot file and run:
$ <wamr dir>/wamr-compiler/build/wamrc -o codecbench.aot codecbench.wasm
$ <wamr dir>/product-mini/platforms/linux/build/iwasm codecbench.aot