mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2024-11-26 15:32:05 +00:00
76be848ec3
Segue is an optimization technology which uses x86 segment register to store the WebAssembly linear memory base address, so as to remove most of the cost of SFI (Software-based Fault Isolation) base addition and free up a general purpose register, by this way it may: - Improve the performance of JIT/AOT - Reduce the footprint of JIT/AOT, the JIT/AOT code generated is smaller - Reduce the compilation time of JIT/AOT This PR uses the x86-64 GS segment register to apply the optimization, currently it supports linux and linux-sgx platforms on x86-64 target. By default it is disabled, developer can use the option below to enable it for wamrc and iwasm(with LLVM JIT enabled): ```bash wamrc --enable-segue=[<flags>] -o output_file wasm_file iwasm --enable-segue=[<flags>] wasm_file [args...] ``` `flags` can be: i32.load, i64.load, f32.load, f64.load, v128.load, i32.store, i64.store, f32.store, f64.store, v128.store Use comma to separate them, e.g. `--enable-segue=i32.load,i64.store`, and `--enable-segue` means all flags are added. Acknowledgement: Many thanks to Intel Labs, UC San Diego and UT Austin teams for introducing this technology and the great support and guidance! Signed-off-by: Wenyong Huang <wenyong.huang@intel.com> Co-authored-by: Vahldiek-oberwagner, Anjo Lucas <anjo.lucas.vahldiek-oberwagner@intel.com> |
||
---|---|---|
.. | ||
build.sh | ||
README.md | ||
run_aot.sh |
Introduction
libsodium is a new, easy-to-use software library for encryption, decryption, signatures, password hashing and more.
Source: https://github.com/jedisct1/libsodium
Building
Please build iwasm and wamrc, refer to:
And install zig toolchain, refer to Install Zig from a Package Manager for how to install it.
And then run ./build.sh
to build the source code, the libsodium source code will be cloned, and test benchmarks of native version, wasm files and AOT files will be generated under libsodium/zig-out/bin
.
Running
Run ./run_aot.sh
to test the benchmark, the native mode and iwasm aot mode will be tested respectively.
Others
Refer to Performance of WebAssembly runtimes in 2023 for more about the performance comparison of wasm runtimes on running the libsodium benchmarks.