Enable static PGO for Linux SGX (#2270)

Enable static PGO for Linux SGX and update the related benchmarks
test scripts and documents.
This commit is contained in:
TianlongLiang
2023-06-09 14:13:43 +08:00
committed by GitHub
parent cabcb177c8
commit 2f01cb7b7a
15 changed files with 209 additions and 15 deletions

View File

@ -19,3 +19,7 @@ And then run `./build.sh` to build the source code, file `coremark.exe`, `corema
Run `./run.sh` to test the benchmark, the native mode, iwasm aot mode and iwasm interpreter mode will be tested respectively.
Run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled, please refer [here](../README.md#install-llvm-profdata) to install tool `llvm-profdata` and build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`.
- For Linux, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled.
- For Linux-sgx, similarly, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then `make` in the directory `enclave-sample`. And run `./test_pgo.sh --sgx` to test the benchmark.

View File

@ -5,8 +5,13 @@
PLATFORM=$(uname -s | tr A-Z a-z)
IWASM="../../../product-mini/platforms/${PLATFORM}/build/iwasm"
WAMRC="../../../wamr-compiler/build/wamrc"
if [ "$1" = "--sgx" ] && [ "$PLATFORM" = "linux" ]; then
IWASM="../../../product-mini/platforms/${PLATFORM}-sgx/enclave-sample/iwasm"
WAMRC="../../../wamr-compiler/build/wamrc -sgx"
else
IWASM="../../../product-mini/platforms/${PLATFORM}/build/iwasm"
WAMRC="../../../wamr-compiler/build/wamrc"
fi
if [ ! -e "coremark.wasm" ]; then
echo "coremark.wasm doesn't exist, please run build.sh first"

View File

@ -5,8 +5,13 @@
PLATFORM=$(uname -s | tr A-Z a-z)
IWASM="../../../product-mini/platforms/${PLATFORM}/build/iwasm"
WAMRC="../../../wamr-compiler/build/wamrc"
if [ "$1" = "--sgx" ] && [ "$PLATFORM" = "linux" ]; then
IWASM="../../../product-mini/platforms/${PLATFORM}-sgx/enclave-sample/iwasm"
WAMRC="../../../wamr-compiler/build/wamrc -sgx"
else
IWASM="../../../product-mini/platforms/${PLATFORM}/build/iwasm"
WAMRC="../../../wamr-compiler/build/wamrc"
fi
if [ ! -e "dhrystone.wasm" ]; then
echo "dhrystone.wasm doesn't exist, please run build.sh first"

View File

@ -29,3 +29,7 @@ And then run `./build.sh` to build the source code, the folder `out` will be cre
Run `./run_aot.sh` to test the benchmark, the native mode and iwasm aot mode will be tested for each workload, and the file `report.txt` will be generated.
Run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled, please refer [here](../README.md#install-llvm-profdata) to install tool `llvm-profdata` and build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`.
- For Linux, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled.
- For Linux-sgx, similarly, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then `make` in the directory `enclave-sample`. And run `./test_pgo.sh --sgx` to test the benchmark.

View File

@ -9,8 +9,13 @@ REPORT=$CUR_DIR/report.txt
TIME=/usr/bin/time
PLATFORM=$(uname -s | tr A-Z a-z)
IWASM_CMD=$CUR_DIR/../../../product-mini/platforms/${PLATFORM}/build/iwasm
WAMRC_CMD=$CUR_DIR/../../../wamr-compiler/build/wamrc
if [ "$1" = "--sgx" ] && [ "$PLATFORM" = "linux" ]; then
IWASM_CMD="$CUR_DIR/../../../product-mini/platforms/${PLATFORM}-sgx/enclave-sample/iwasm"
WAMRC_CMD="$CUR_DIR/../../../wamr-compiler/build/wamrc -sgx"
else
IWASM_CMD="$CUR_DIR/../../../product-mini/platforms/${PLATFORM}/build/iwasm"
WAMRC_CMD="$CUR_DIR/../../../wamr-compiler/build/wamrc"
fi
BENCH_NAME_MAX_LEN=20

View File

@ -18,6 +18,12 @@ And then run `./build.sh` to build the source code, the libsodium source code wi
Run `./run_aot.sh` to test the benchmark, the native mode and iwasm aot mode will be tested respectively.
Run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled, please refer [here](../README.md#install-llvm-profdata) to install tool `llvm-profdata` and build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`.
- For Linux, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled.
- For Linux-sgx, similarly, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then `make` in the directory `enclave-sample`. And run `./test_pgo.sh --sgx` to test the benchmark.
# Others
Refer to [Performance of WebAssembly runtimes in 2023](https://00f.net/2023/01/04/webassembly-benchmark-2023) for more about the performance comparison of wasm runtimes on running the libsodium benchmarks.

View File

@ -19,8 +19,13 @@ PLATFORM=$(uname -s | tr A-Z a-z)
readonly OUT_DIR=$PWD/libsodium/zig-out/bin
readonly REPORT=$PWD/report.txt
readonly IWASM_CMD=$PWD/../../../product-mini/platforms/${PLATFORM}/build/iwasm
readonly WAMRC_CMD=$PWD/../../../wamr-compiler/build/wamrc
if [ "$1" = "--sgx" ] && [ "$PLATFORM" = "linux" ]; then
readonly IWASM_CMD="$PWD/../../../product-mini/platforms/${PLATFORM}-sgx/enclave-sample/iwasm"
readonly WAMRC_CMD="$PWD/../../../wamr-compiler/build/wamrc -sgx"
else
readonly IWASM_CMD="$PWD/../../../product-mini/platforms/${PLATFORM}/build/iwasm"
readonly WAMRC_CMD="$PWD/../../../wamr-compiler/build/wamrc"
fi
readonly TIME=/usr/bin/time
BENCH_NAME_MAX_LEN=20

View File

@ -19,3 +19,9 @@ And then run `./build.sh` to build the source code, the folder `out` will be cre
Run `./run_aot.sh` to test the benchmark, the native mode and iwasm aot mode will be tested for each workload, and the file `report.txt` will be generated.
Run `./run_interp.sh` to test the benchmark, the native mode and iwasm interpreter mode will be tested for each workload, and the file `report.txt` will be generated.
Run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled, please refer [here](../README.md#install-llvm-profdata) to install tool `llvm-profdata` and build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`.
- For Linux, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled.
- For Linux-sgx, similarly, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then `make` in the directory `enclave-sample`. And run `./test_pgo.sh --sgx` to test the benchmark.

View File

@ -9,8 +9,13 @@ REPORT=$CUR_DIR/report.txt
TIME=/usr/bin/time
PLATFORM=$(uname -s | tr A-Z a-z)
IWASM_CMD=$CUR_DIR/../../../product-mini/platforms/${PLATFORM}/build/iwasm
WAMRC_CMD=$CUR_DIR/../../../wamr-compiler/build/wamrc
if [ "$1" = "--sgx" ] && [ "$PLATFORM" = "linux" ]; then
IWASM_CMD="$CUR_DIR/../../../product-mini/platforms/${PLATFORM}-sgx/enclave-sample/iwasm"
WAMRC_CMD="$CUR_DIR/../../../wamr-compiler/build/wamrc -sgx"
else
IWASM_CMD="$CUR_DIR/../../../product-mini/platforms/${PLATFORM}/build/iwasm"
WAMRC_CMD="$CUR_DIR/../../../wamr-compiler/build/wamrc"
fi
BENCH_NAME_MAX_LEN=20

View File

@ -21,3 +21,7 @@ Run `./run_aot.sh` to test the benchmark, the native mode and iwasm aot mode wil
Run `./run_interp.sh` to test the benchmark, the native mode and iwasm interpreter mode will be tested for each workload, and the file `report.txt` will be generated.
Run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled, please refer [here](../README.md#install-llvm-profdata) to install tool `llvm-profdata` and build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`.
- For Linux, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then run `./test_pgo.sh` to test the benchmark with AOT static PGO (Profile-Guided Optimization) enabled.
- For Linux-sgx, similarly, build `iwasm` with `cmake -DWAMR_BUILD_STATIC_PGO=1`, then `make` in the directory `enclave-sample`. And run `./test_pgo.sh --sgx` to test the benchmark.

View File

@ -9,8 +9,13 @@ REPORT=$CUR_DIR/report.txt
TIME=/usr/bin/time
PLATFORM=$(uname -s | tr A-Z a-z)
IWASM_CMD=$CUR_DIR/../../../product-mini/platforms/${PLATFORM}/build/iwasm
WAMRC_CMD=$CUR_DIR/../../../wamr-compiler/build/wamrc
if [ "$1" = "--sgx" ] && [ "$PLATFORM" = "linux" ]; then
IWASM_CMD="$CUR_DIR/../../../product-mini/platforms/${PLATFORM}-sgx/enclave-sample/iwasm"
WAMRC_CMD="$CUR_DIR/../../../wamr-compiler/build/wamrc -sgx"
else
IWASM_CMD="$CUR_DIR/../../../product-mini/platforms/${PLATFORM}/build/iwasm"
WAMRC_CMD="$CUR_DIR/../../../wamr-compiler/build/wamrc"
fi
BENCH_NAME_MAX_LEN=20