summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/README.md23
-rwxr-xr-xfluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/build.sh42
-rwxr-xr-xfluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/test_aot.sh59
3 files changed, 124 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/README.md b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/README.md
new file mode 100644
index 000000000..19500afe6
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/README.md
@@ -0,0 +1,23 @@
+# Introduction
+
+[libsodium](https://github.com/jedisct1/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:
+- [Build iwasm on Linux](../../../doc/build_wamr.md#linux), or [Build iwasm on MacOS](../../../doc/build_wamr.md#macos)
+- [Build wamrc AOT compiler](../../../README.md#build-wamrc-aot-compiler)
+
+And install [zig toolchain](https://ziglang.org/learn/getting-started), refer to [Install Zig from a Package Manager](https://github.com/ziglang/zig/wiki/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](https://00f.net/2023/01/04/webassembly-benchmark-2023) for more about the performance comparison of wasm runtimes on running the libsodium benchmarks.
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/build.sh b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/build.sh
new file mode 100755
index 000000000..1e9cc21a7
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/build.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+libsodium_CASES="aead_aes256gcm2 aead_aes256gcm aead_chacha20poly13052 aead_chacha20poly1305 \
+ aead_xchacha20poly1305 auth2 auth3 auth5 auth6 auth7 auth box2 box7 box8 \
+ box_easy2 box_easy box_seal box_seed box chacha20 codecs core1 core2 core3 \
+ core4 core5 core6 core_ed25519 core_ristretto255 ed25519_convert generichash2 \
+ generichash3 generichash hash3 hash kdf keygen kx metamorphic misuse \
+ onetimeauth2 onetimeauth7 onetimeauth pwhash_argon2id pwhash_argon2i \
+ pwhash_scrypt_ll pwhash_scrypt randombytes scalarmult2 scalarmult5 \
+ scalarmult6 scalarmult7 scalarmult8 scalarmult_ed25519 scalarmult_ristretto255 \
+ scalarmult secretbox2 secretbox7 secretbox8 secretbox_easy2 secretbox_easy \
+ secretbox secretstream shorthash sign siphashx24 sodium_core sodium_utils2 \
+ sodium_utils3 sodium_utils sodium_version stream2 stream3 stream4 stream verify1 \
+ xchacha20"
+
+readonly WAMRC_CMD=$PWD/../../../wamr-compiler/build/wamrc
+readonly OUT_DIR=$PWD/libsodium/zig-out/bin
+
+if [ ! -d libsodium ]; then
+ git clone -b stable https://github.com/jedisct1/libsodium.git
+fi
+
+cd libsodium
+
+echo "Build libsodium native"
+zig build -Drelease-fast -Denable_benchmarks=true
+
+echo "Build libsodium wasm32-wasi"
+zig build -Drelease-fast -Denable_benchmarks=true -Dtarget=wasm32-wasi
+
+for case in ${libsodium_CASES}
+do
+ ${WAMRC_CMD} -o ${OUT_DIR}/${case}.aot ${OUT_DIR}/${case}.wasm
+
+ if [ "$?" != 0 ]; then
+ echo -e "Error while compiling ${case}.wasm to ${case}.aot"
+ exit
+ fi
+done
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/test_aot.sh b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/test_aot.sh
new file mode 100755
index 000000000..2e4e3e357
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/tests/benchmarks/libsodium/test_aot.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+libsodium_CASES="aead_aes256gcm2 aead_aes256gcm aead_chacha20poly13052 aead_chacha20poly1305 \
+ aead_xchacha20poly1305 auth2 auth3 auth5 auth6 auth7 auth box2 box7 box8 \
+ box_easy2 box_easy box_seal box_seed box chacha20 codecs core1 core2 core3 \
+ core4 core5 core6 core_ed25519 core_ristretto255 ed25519_convert generichash2 \
+ generichash3 generichash hash3 hash kdf keygen kx metamorphic misuse \
+ onetimeauth2 onetimeauth7 onetimeauth pwhash_argon2id pwhash_argon2i \
+ pwhash_scrypt_ll pwhash_scrypt randombytes scalarmult2 scalarmult5 \
+ scalarmult6 scalarmult7 scalarmult8 scalarmult_ed25519 scalarmult_ristretto255 \
+ scalarmult secretbox2 secretbox7 secretbox8 secretbox_easy2 secretbox_easy \
+ secretbox secretstream shorthash sign siphashx24 sodium_core sodium_utils2 \
+ sodium_utils3 sodium_utils sodium_version stream2 stream3 stream4 stream verify1 \
+ xchacha20"
+
+readonly OUT_DIR=$PWD/libsodium/zig-out/bin
+readonly REPORT=$PWD/report.txt
+readonly IWASM_CMD=$PWD/../../../product-mini/platforms/linux/build/iwasm
+
+BENCH_NAME_MAX_LEN=20
+
+rm -f $REPORT
+touch $REPORT
+
+function print_bench_name()
+{
+ name=$1
+ echo -en "$name" >> $REPORT
+ name_len=${#name}
+ if [ $name_len -lt $BENCH_NAME_MAX_LEN ]
+ then
+ spaces=$(( $BENCH_NAME_MAX_LEN - $name_len ))
+ for i in $(eval echo "{1..$spaces}"); do echo -n " " >> $REPORT; done
+ fi
+}
+
+# run benchmarks
+cd $OUT_DIR
+
+echo -en "\t\t\t\t\t\tnative\tiwasm-aot\n" >> $REPORT
+
+for t in $libsodium_CASES
+do
+ print_bench_name $t
+
+ echo "run $t with native..."
+ echo -en "\t" >> $REPORT
+ ./${t} | awk -F '-' 'BEGIN{FIELDWIDTHS="10"}{ORS=""; print $1 / 1000000.0}' >> $REPORT
+
+ echo "run $t with iwasm aot..."
+ echo -en "\t \t" >> $REPORT
+ $IWASM_CMD ${t}.aot | awk -F '-' 'BEGIN{FIELDWIDTHS="10"}{ORS=""; print $1 / 1000000.0}' >> $REPORT
+
+ echo -en "\n" >> $REPORT
+done
+