wasm-micro-runtime/tests/benchmarks/libsodium
Wenyong Huang 8d88471c46
Implement AOT static PGO (#2243)
LLVM PGO (Profile-Guided Optimization) allows the compiler to better optimize code
for how it actually runs. This PR implements the AOT static PGO, and is tested on
Linux x86-64 and x86-32. The basic steps are:

1. Use `wamrc --enable-llvm-pgo -o <aot_file_of_pgo> <wasm_file>`
   to generate an instrumented aot file.
2. Compile iwasm with `cmake -DWAMR_BUILD_STATIC_PGO=1` and run
      `iwasm --gen-prof-file=<raw_profile_file> <aot_file_of_pgo>`
    to generate the raw profile file.
3. Run `llvm-profdata merge -output=<profile_file> <raw_profile_file>`
    to merge the raw profile file into the profile file.
4. Run `wamrc --use-prof-file=<profile_file> -o <aot_file> <wasm_file>`
    to generate the optimized aot file.
5. Run the optimized aot_file: `iwasm <aot_file>`.

The test scripts are also added for each benchmark, run `test_pgo.sh` under
each benchmark's folder to test the AOT static pgo.
2023-06-05 09:17:39 +08:00
..
build.sh Implement the segue optimization for LLVM AOT/JIT (#2230) 2023-05-26 10:13:33 +08:00
README.md Add libsodium benchmark (#2025) 2023-03-15 08:24:08 +08:00
run_aot.sh Implement the segue optimization for LLVM AOT/JIT (#2230) 2023-05-26 10:13:33 +08:00
test_pgo.sh Implement AOT static PGO (#2243) 2023-06-05 09:17:39 +08:00

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.