You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This proposal should be evaluated on architectures other than x86_64 and numbers/methodology should be recorded in this repository's proposal documentation. This should at least include aarch64 and should ideally include riscv64 and a 32-bit architecture too.
The text was updated successfully, but these errors were encountered:
Using https://github.com/alexcrichton/wasm-benchmark-i128 as a source of benchmarks I've analyzed a prototype of i64.{add,sub,mul}128. Numbers here are slowdowns-relative-to-native to lower is better. Negative numbers mean that the wasm is faster than native (take that with a grain of salt these are very-micro micro-benchmarks). This was evaluated with Wasmtime 25 and using Rust nightly-2024-08-20 to compile the wasm module (roughly). The x86_64 machine was Linux with Intel(R) Core(TM) i9-14900K and the aarch64 machine is a macOS M2 pro.
benchmark
x86_64 before
x86_64 after
aarch64 before
aarch64 after
blind-sig
616%
76%
325%
78%
lehmer
362%
13%
111%
-28%
mul-bignum
386%
28%
187%
10%
fib_10000
120%
9%
72%
-2%
shl
94%
94%
35%
30%
shr
101%
102%
35%
35%
div-bignum
353%
168%
218%
111%
sort-signed
81%
95%
79%
79%
sort-unsigned
100%
95%
77%
78%
This to me shows that aarch64 is, in cases where overflow-related instructions can be used, going to see similar performance improvements as x86_64. I unfortunately do not personally have other hardware to test on at this time.
This proposal should be evaluated on architectures other than x86_64 and numbers/methodology should be recorded in this repository's proposal documentation. This should at least include aarch64 and should ideally include riscv64 and a 32-bit architecture too.
The text was updated successfully, but these errors were encountered: