From 4350100e39111f55b8394d7e6e64fb48a485fafd Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Sat, 6 Jul 2024 13:37:12 +0200 Subject: [PATCH 1/6] add benchmark building script --- Cargo.lock | 204 +++++++++++++++++++++ Cargo.toml | 1 + crates/wasmi/benches/rust/build/Cargo.toml | 14 ++ crates/wasmi/benches/rust/build/main.rs | 59 ++++++ 4 files changed, 278 insertions(+) create mode 100644 crates/wasmi/benches/rust/build/Cargo.toml create mode 100644 crates/wasmi/benches/rust/build/main.rs diff --git a/Cargo.lock b/Cargo.lock index c4f5d12b04..4e679daf06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -201,6 +201,14 @@ dependencies = [ "serde", ] +[[package]] +name = "build_benches" +version = "0.0.0" +dependencies = [ + "cargo_metadata", + "wasm-opt", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -213,6 +221,15 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + [[package]] name = "cap-fs-ext" version = "0.26.1" @@ -278,6 +295,29 @@ dependencies = [ "winx", ] +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "cast" version = "0.3.0" @@ -374,6 +414,16 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "colorchoice" version = "1.0.1" @@ -592,6 +642,50 @@ dependencies = [ "typenum", ] +[[package]] +name = "cxx" +version = "1.0.124" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "273dcfd3acd4e1e276af13ed2a43eea7001318823e7a726a6b3ed39b4acc0b82" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.124" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b2766fbd92be34e9ed143898fce6c572dc009de39506ed6903e5a05b68914e" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.68", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.124" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "839fcd5e43464614ffaa989eaf1c139ef1f0c51672a1ed08023307fa1b909ccd" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.124" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2c1c1776b986979be68bb2285da855f8d8a35851a769fca8740df7c3d07877" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + [[package]] name = "debugid" version = "0.8.0" @@ -745,6 +839,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + [[package]] name = "flagset" version = "0.4.5" @@ -1050,6 +1150,15 @@ dependencies = [ "libc", ] +[[package]] +name = "link-cplusplus" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +dependencies = [ + "cc", +] + [[package]] name = "linux-raw-sys" version = "0.0.46" @@ -1390,6 +1499,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + [[package]] name = "ryu" version = "1.0.18" @@ -1405,11 +1520,20 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + [[package]] name = "semver" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] [[package]] name = "serde" @@ -1521,6 +1645,25 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + [[package]] name = "syn" version = "1.0.109" @@ -1565,6 +1708,27 @@ version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix 0.38.34", + "windows-sys 0.52.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + [[package]] name = "termtree" version = "0.4.1" @@ -1821,6 +1985,46 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-opt" +version = "0.116.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +dependencies = [ + "anyhow", + "libc", + "strum", + "strum_macros", + "tempfile", + "thiserror", + "wasm-opt-cxx-sys", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-cxx-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" +dependencies = [ + "anyhow", + "cxx", + "cxx-build", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" +dependencies = [ + "anyhow", + "cc", + "cxx", + "cxx-build", +] + [[package]] name = "wasm-smith" version = "0.13.1" diff --git a/Cargo.toml b/Cargo.toml index 3f0854cc41..ad30ba3232 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ members = [ "crates/wasmi/benches/rust/tiny_keccak", "crates/wasmi/benches/rust/reverse_complement", "crates/wasmi/benches/rust/regex_redux", + "crates/wasmi/benches/rust/build", "fuzz", ] exclude = [] diff --git a/crates/wasmi/benches/rust/build/Cargo.toml b/crates/wasmi/benches/rust/build/Cargo.toml new file mode 100644 index 0000000000..96c93e720f --- /dev/null +++ b/crates/wasmi/benches/rust/build/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "build_benches" +version = "0.0.0" +publish = false +authors.workspace = true +edition.workspace = true + +[[bin]] +name = "build_benches" +path = "main.rs" + +[dependencies] +wasm-opt = "0.116.1" +cargo_metadata = "0.18.1" diff --git a/crates/wasmi/benches/rust/build/main.rs b/crates/wasmi/benches/rust/build/main.rs new file mode 100644 index 0000000000..0792dcac8a --- /dev/null +++ b/crates/wasmi/benches/rust/build/main.rs @@ -0,0 +1,59 @@ +use cargo_metadata::{camino::Utf8PathBuf, Error as MetaError, Metadata, Package}; +use std::{ + error::Error, + fs, + io::{stdout, Write}, + process::Command, +}; +use wasm_opt::OptimizationOptions; + +fn build(target_dir: &Utf8PathBuf, package: &Package) -> Result<(), Box> { + let name = &package.name; + let Some(pretty_name) = package.name.strip_prefix("wasmi_benches_") else { + // Do not build packages that do not start with `wasmi_benches_` + // since they are no benchmarks by convention of this repository. + return Ok(()); + }; + println!("{pretty_name}:"); + print!(" building .. "); + stdout().flush().unwrap(); + Command::new("cargo") + .args([ + "build", + "--package", + &format!("wasmi_benches_{pretty_name}"), + "--profile", + "wasm", + "--target", + "wasm32-unknown-unknown", + ]) + .output()?; + print!("done\n optimizing .. "); + stdout().flush().unwrap(); + let path_prefix = format!("{target_dir}/wasm32-unknown-unknown/wasm"); + let in_file = format!("{path_prefix}/{name}.wasm"); + let out_file = format!("{path_prefix}/{name}.opt.wasm"); + OptimizationOptions::new_opt_level_3() + .run(&in_file, &out_file) + .unwrap(); + print!("done\n finalizing .. "); + stdout().flush().unwrap(); + fs::copy( + &out_file, + &format!("crates/wasmi/benches/rust/{pretty_name}/out.wasm"), + )?; + println!("done"); + Ok(()) +} + +fn metadata() -> Result { + cargo_metadata::MetadataCommand::new().no_deps().exec() +} + +fn main() -> Result<(), Box> { + let meta = metadata()?; + for package in &meta.packages { + build(&meta.target_directory, package)?; + } + Ok(()) +} From 4bd468d5c846bc6385a0de08fcfd8550568d4f7f Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Sat, 6 Jul 2024 13:39:52 +0200 Subject: [PATCH 2/6] add README for new script --- crates/wasmi/benches/rust/build/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 crates/wasmi/benches/rust/build/README.md diff --git a/crates/wasmi/benches/rust/build/README.md b/crates/wasmi/benches/rust/build/README.md new file mode 100644 index 0000000000..7a3cb8fcda --- /dev/null +++ b/crates/wasmi/benches/rust/build/README.md @@ -0,0 +1,14 @@ +# Benchmarks Builder + +Use with + +``` +cargo run --package build_benches +``` + +This builds the benchmark `.wasm` files for all the Rust based benchmarks +such as `tiny_keccak`, `reverse_complement` and `regex_redux` with proper +optimizations and stores the results in their respective directories. + +Use this script whenever a benchmark has changed or when a new Rust, LLVM or `wasm-opt` +version has been released. From d50d4381810ee39cb1b84c84f24a2e9a5e513467 Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Sat, 6 Jul 2024 13:47:04 +0200 Subject: [PATCH 3/6] use out.wasm files generated by the build script --- crates/wasmi/benches/benches.rs | 15 ++++++++------- .../out.wasm} | Bin 1058329 -> 1058497 bytes .../out.wasm} | Bin 28453 -> 28455 bytes crates/wasmi/benches/rust/tiny_keccak.wasm | Bin 12291 -> 0 bytes .../wasmi/benches/rust/tiny_keccak/out.wasm | Bin 0 -> 10959 bytes 5 files changed, 8 insertions(+), 7 deletions(-) rename crates/wasmi/benches/rust/{regex_redux.wasm => regex_redux/out.wasm} (80%) rename crates/wasmi/benches/rust/{reverse_complement.wasm => reverse_complement/out.wasm} (94%) delete mode 100644 crates/wasmi/benches/rust/tiny_keccak.wasm create mode 100644 crates/wasmi/benches/rust/tiny_keccak/out.wasm diff --git a/crates/wasmi/benches/benches.rs b/crates/wasmi/benches/benches.rs index eb486c526a..d5adf78369 100644 --- a/crates/wasmi/benches/benches.rs +++ b/crates/wasmi/benches/benches.rs @@ -233,19 +233,19 @@ fn bench_translate_for_all(c: &mut Criterion, name: &str, path: &str) { } fn bench_translate_tiny_keccak(c: &mut Criterion) { - bench_translate_for_all(c, "tiny_keccak", "benches/rust/tiny_keccak.wasm"); + bench_translate_for_all(c, "tiny_keccak", "benches/rust/tiny_keccak/out.wasm"); } fn bench_translate_reverse_complement(c: &mut Criterion) { bench_translate_for_all( c, "reverse_complement", - "benches/rust/reverse_complement.wasm", + "benches/rust/reverse_complement/out.wasm", ); } fn bench_translate_regex_redux(c: &mut Criterion) { - bench_translate_for_all(c, "regex_redux", "benches/rust/regex_redux.wasm"); + bench_translate_for_all(c, "regex_redux", "benches/rust/regex_redux/out.wasm"); } fn bench_translate_spidermonkey(c: &mut Criterion) { @@ -427,7 +427,7 @@ fn bench_translate_case_worst_stackbomb_big(c: &mut Criterion) { fn bench_instantiate_using(c: &mut Criterion, name: &str) { let id = format!("instantiate/{name}"); c.bench_function(&id, |b| { - let path = format!("benches/rust/{name}.wasm"); + let path = format!("benches/rust/{name}/out.wasm"); let module = load_module_from_file(&path); let linker = >::new(module.engine()); b.iter(|| { @@ -724,7 +724,7 @@ fn bench_instantiate_erc1155(c: &mut Criterion) { fn bench_execute_tiny_keccak(c: &mut Criterion) { c.bench_function("execute/tiny_keccak", |b| { - let (mut store, instance) = load_instance_from_file("benches/rust/tiny_keccak.wasm"); + let (mut store, instance) = load_instance_from_file("benches/rust/tiny_keccak/out.wasm"); let data_ptr = instance .get_typed_func::<(), i32>(&store, "setup") .unwrap() @@ -744,7 +744,8 @@ fn bench_execute_tiny_keccak(c: &mut Criterion) { fn bench_execute_rev_comp(c: &mut Criterion) { c.bench_function("execute/reverse_complement", |b| { - let (mut store, instance) = load_instance_from_file("benches/rust/reverse_complement.wasm"); + let (mut store, instance) = + load_instance_from_file("benches/rust/reverse_complement/out.wasm"); // Allocate buffers for the input and output. let data_ptr = instance @@ -796,7 +797,7 @@ fn bench_execute_rev_comp(c: &mut Criterion) { fn bench_execute_regex_redux(c: &mut Criterion) { c.bench_function("execute/regex_redux", |b| { - let (mut store, instance) = load_instance_from_file("benches/rust/regex_redux.wasm"); + let (mut store, instance) = load_instance_from_file("benches/rust/regex_redux/out.wasm"); // Allocate buffers for the input and output. let data_ptr = instance diff --git a/crates/wasmi/benches/rust/regex_redux.wasm b/crates/wasmi/benches/rust/regex_redux/out.wasm similarity index 80% rename from crates/wasmi/benches/rust/regex_redux.wasm rename to crates/wasmi/benches/rust/regex_redux/out.wasm index 26a47817adbac42670ed7b19c3fd7b49e7f72c6e..ab3d6ffd9bf8ef222d23eaf7dea7b3f02e7e3de1 100644 GIT binary patch delta 113971 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 delta 113591 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 E0&Y=MKZ2+1MU4Pj)|r*Kvt? X3xS7e8^eENcpAh1V|4euemMF8MeZ%F delta 284 zcmXwzJxT;Y5QXcfyJuxwFcB6(c-?`KrUs%i6)u<=$mB*n(a46v9%3U8Ag02C7w{f? z7HdY0ih5PN@B29L`+-02nBVsI{P?u}5^lEALF{B5I#AYQZb3$%!E`L4=7{in0q3M0 z6zPiSh6u^H<^=Uo6mh+zwnc;>3}s=jV`*wuFK2{Wg4cOZWAw1}z;si@&Q@bS^2L9X zIg1@EgLx{u%YJnso0n@L@O(q`Q6h8#O`3BTA?#{@emkcv7LLho0B8G)I8vZB%WTen P<~*76zq#zc`{&aiTD2@` diff --git a/crates/wasmi/benches/rust/tiny_keccak.wasm b/crates/wasmi/benches/rust/tiny_keccak.wasm deleted file mode 100644 index aef48b5d2f3ecf546f6b51b3732f9a71f3c12505..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12291 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 literal 0 HcmV?d00001 From 7cf1a3d6b048c0d72792082c7f22fade1dcbaa76 Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Sat, 6 Jul 2024 13:47:16 +0200 Subject: [PATCH 4/6] track callers of load_wasm_from_file --- crates/wasmi/benches/bench/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/wasmi/benches/bench/mod.rs b/crates/wasmi/benches/bench/mod.rs index 58ca23bb11..7c232bd3e2 100644 --- a/crates/wasmi/benches/bench/mod.rs +++ b/crates/wasmi/benches/bench/mod.rs @@ -10,6 +10,7 @@ use wasmi::{Config, StackLimits}; /// # Panics /// /// If the benchmark Wasm file could not be opened, read or parsed. +#[track_caller] pub fn load_wasm_from_file(file_name: &str) -> Vec { let mut file = File::open(file_name) .unwrap_or_else(|error| panic!("could not open benchmark file {}: {}", file_name, error)); From 9db0b9e9caed8da50f5b86728a8f9192438e111b Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Sat, 6 Jul 2024 13:48:15 +0200 Subject: [PATCH 5/6] remove outdated READMEs from benchmarks --- .../wasmi/benches/rust/regex_redux/README.md | 35 ------------------- .../benches/rust/reverse_complement/README.md | 35 ------------------- .../wasmi/benches/rust/tiny_keccak/README.md | 35 ------------------- 3 files changed, 105 deletions(-) delete mode 100644 crates/wasmi/benches/rust/regex_redux/README.md delete mode 100644 crates/wasmi/benches/rust/reverse_complement/README.md delete mode 100644 crates/wasmi/benches/rust/tiny_keccak/README.md diff --git a/crates/wasmi/benches/rust/regex_redux/README.md b/crates/wasmi/benches/rust/regex_redux/README.md deleted file mode 100644 index 9904c07f91..0000000000 --- a/crates/wasmi/benches/rust/regex_redux/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## Benchmark - Regex Redux - -Rust based `regex_redux` benchmark test case. - -Build with - -``` -cargo build \ - --package wasmi_benches_regex_redux \ - --profile wasm \ - --target wasm32-unknown-unknown -``` - -Post-optimize with `wasm-opt` using: - -``` -wasm-opt \ - -O3 \ - target/wasm32-unknown-unknown/wasm/wasmi_benches_regex_redux.wasm \ - -o target/wasm32-unknown-unknown/wasm/wasmi_benches_regex_redux.opt.wasm -``` - -Finally move the post-optimized Wasm binary into the proper place: - -``` -cp \ - target/wasm32-unknown-unknown/wasm/wasmi_benches_regex_redux.opt.wasm \ - crates/wasmi/benches/rust/regex_redux.wasm -``` - -Benchmark with: - -``` -cargo bench --bench benches execute/regex_redux -``` diff --git a/crates/wasmi/benches/rust/reverse_complement/README.md b/crates/wasmi/benches/rust/reverse_complement/README.md deleted file mode 100644 index 448de60ab9..0000000000 --- a/crates/wasmi/benches/rust/reverse_complement/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## Benchmark - Reverse Complement - -Rust based `reverse_complement` benchmark test case. - -Build with - -``` -cargo build \ - --package wasmi_benches_reverse_complement \ - --profile wasm \ - --target wasm32-unknown-unknown -``` - -Post-optimize with `wasm-opt` using: - -``` -wasm-opt \ - -O3 \ - target/wasm32-unknown-unknown/wasm/wasmi_benches_reverse_complement.wasm \ - -o target/wasm32-unknown-unknown/wasm/wasmi_benches_reverse_complement.opt.wasm -``` - -Finally move the post-optimized Wasm binary into the proper place: - -``` -cp \ - target/wasm32-unknown-unknown/wasm/wasmi_benches_reverse_complement.opt.wasm \ - crates/wasmi/benches/rust/reverse_complement.wasm -``` - -Benchmark with: - -``` -cargo bench --bench benches execute/reverse_complement -``` diff --git a/crates/wasmi/benches/rust/tiny_keccak/README.md b/crates/wasmi/benches/rust/tiny_keccak/README.md deleted file mode 100644 index 4062879e90..0000000000 --- a/crates/wasmi/benches/rust/tiny_keccak/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## Benchmark - Tiny Keccak - -Rust based `tiny_keccak` benchmark test case. - -Build with - -``` -cargo build \ - --package wasmi_benches_tiny_keccak \ - --profile wasm \ - --target wasm32-unknown-unknown -``` - -Post-optimize with `wasm-opt` using: - -``` -wasm-opt \ - -O3 \ - target/wasm32-unknown-unknown/wasm/wasmi_benches_tiny_keccak.wasm \ - -o target/wasm32-unknown-unknown/wasm/wasmi_benches_tiny_keccak.opt.wasm -``` - -Finally move the post-optimized Wasm binary into the proper place: - -``` -cp \ - target/wasm32-unknown-unknown/wasm/wasmi_benches_tiny_keccak.opt.wasm \ - crates/wasmi/benches/rust/tiny_keccak.wasm -``` - -Benchmark with: - -``` -cargo bench --bench benches execute/tiny_keccak -``` From be0bb13f74ad30f07fc7987f81330fb21330b290 Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Sat, 6 Jul 2024 13:48:58 +0200 Subject: [PATCH 6/6] generalize README for Rust based benchmarks --- crates/wasmi/benches/{rust/build => }/README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) rename crates/wasmi/benches/{rust/build => }/README.md (86%) diff --git a/crates/wasmi/benches/rust/build/README.md b/crates/wasmi/benches/README.md similarity index 86% rename from crates/wasmi/benches/rust/build/README.md rename to crates/wasmi/benches/README.md index 7a3cb8fcda..ea969d8da9 100644 --- a/crates/wasmi/benches/rust/build/README.md +++ b/crates/wasmi/benches/README.md @@ -1,6 +1,8 @@ -# Benchmarks Builder +# Rust based Benchmarks -Use with +## Building + +Build with ``` cargo run --package build_benches @@ -10,5 +12,7 @@ This builds the benchmark `.wasm` files for all the Rust based benchmarks such as `tiny_keccak`, `reverse_complement` and `regex_redux` with proper optimizations and stores the results in their respective directories. +## Usage + Use this script whenever a benchmark has changed or when a new Rust, LLVM or `wasm-opt` version has been released.