From af1712b7b67d073247223dffe5cde53a57c3d5b4 Mon Sep 17 00:00:00 2001 From: Edoardo Marangoni Date: Tue, 29 Oct 2024 08:54:07 +0100 Subject: [PATCH 1/2] feat: Add execution benchmarks --- Cargo.toml | 6 ++- benches/compiler_run.rs | 77 +++++++++++++++++++++++++++++++++++++ benches/mods/argon2.wasm | Bin 0 -> 60522 bytes benches/mods/bulk_ops.wasm | Bin 0 -> 114 bytes benches/mods/counter.wasm | Bin 0 -> 65 bytes benches/mods/fib_iter.wasm | Bin 0 -> 97 bytes benches/mods/fib_rec.wasm | Bin 0 -> 61 bytes benches/mods/matmul.wasm | Bin 0 -> 228 bytes benches/mods/primes.wasm | Bin 0 -> 65 bytes 9 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 benches/compiler_run.rs create mode 100644 benches/mods/argon2.wasm create mode 100644 benches/mods/bulk_ops.wasm create mode 100644 benches/mods/counter.wasm create mode 100644 benches/mods/fib_iter.wasm create mode 100644 benches/mods/fib_rec.wasm create mode 100644 benches/mods/matmul.wasm create mode 100644 benches/mods/primes.wasm diff --git a/Cargo.toml b/Cargo.toml index f298946d665..834b38ab23a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -138,7 +138,7 @@ wasmer = { version = "=5.0.0-rc.1", path = "lib/api", features = [ "sys", ] } anyhow = "1.0" -criterion = { version = "0.5", default-features = false } +criterion = { version = "0.5", features = ["csv_output"] } clap = { version = "=4.4.11" } clap_builder = { version = "=4.4.11" } clap_derive = { version = "=4.4.7" } @@ -229,6 +229,10 @@ opt-level = 3 [profile.dev.package.digest] opt-level = 3 +[[bench]] +name = "compile_run" +harness = false + [[bench]] name = "deserialize_modules" harness = false diff --git a/benches/compiler_run.rs b/benches/compiler_run.rs new file mode 100644 index 00000000000..52b6c13371f --- /dev/null +++ b/benches/compiler_run.rs @@ -0,0 +1,77 @@ +use criterion::{criterion_group, criterion_main, Criterion}; +use wasmer::*; + +static BENCHMARKS_ARTIFACTS_BASE_URL: &str = "https://pub-53a226d993e144159d6f8b993fe0cbf3.r2.dev"; + +fn get_engine() -> Engine { + #[cfg(feature = "llvm")] + return LLVM::new().into(); + + #[cfg(feature = "singlepass")] + return Singlepass::new().into(); + + #[cfg(feature = "cranelift")] + return Cranelift::new().into(); + + #[cfg(not(any(feature = "cranelift", feature = "llvm", feature = "singlepass")))] + return Default::default(); +} + +pub fn run_fn(c: &mut Criterion, module: &[u8], name: &str, input: i64) { + c.bench_function(name, |b| { + let engine = get_engine(); + let mut store = Store::new(engine); + let module = Module::new(&store, module).unwrap(); + let import_object = imports! {}; + let instance = Instance::new(&mut store, &module, &import_object).unwrap(); + let func = instance + .exports + .get_typed_function::(&store, "run") + .unwrap(); + + b.iter(|| { + func.call(&mut store, input); + }) + }); +} + +pub fn download_and_run(c: &mut Criterion) { + let name = if cfg!(feature = "cranelift") { + "cranelift" + } else if cfg!(feature = "llvm") { + "llvm" + } else if cfg!(feature = "singlepass") { + "singlepass" + } else if cfg!(feature = "v8") { + "v8" + } else if cfg!(feature = "wamr") { + "wamr" + } else if cfg!(feature = "wasmi") { + "wasmi" + } else { + panic!("Unrecognized backend!") + }; + + let bytes = include_bytes!("./mods/counter.wasm"); + run_fn(c, bytes, &format!("exec/{name}/counter"), 5_000_000); + let bytes = include_bytes!("./mods/primes.wasm"); + run_fn(c, bytes, &format!("exec/{name}/primes"), 1_000); + let bytes = include_bytes!("./mods/fib_rec.wasm"); + run_fn(c, bytes, &format!("exec/{name}/fib_rec"), 40); + let bytes = include_bytes!("./mods/fib_iter.wasm"); + run_fn(c, bytes, &format!("exec/{name}/fib_iter"), 2_000_000); + let bytes = include_bytes!("./mods/bulk_ops.wasm"); + run_fn(c, bytes, &format!("exec/{name}/bulk_ops"), 5_000); + let bytes = include_bytes!("./mods/matmul.wasm"); + run_fn(c, bytes, &format!("exec/{name}/matmul"), 200); + let bytes = include_bytes!("./mods/argon2.wasm"); + run_fn(c, bytes, &format!("exec/{name}/argon2"), 1); +} + +criterion_group!( + name = run_benches; + config = Criterion::default().sample_size(60); + targets = download_and_run +); + +criterion_main!(run_benches); diff --git a/benches/mods/argon2.wasm b/benches/mods/argon2.wasm new file mode 100644 index 0000000000000000000000000000000000000000..704cd488c2f1036f0bc934c2d83e6ecfb383cced GIT binary patch literal 60522 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

D+Me&d~J2%61m zq%l=uW0_B-3x!fLSt)3!XY*(l{a6SYY${W10+w-GIF?##W>8JRJ68t;M=qJB zoVcd(Q07b!TE5Ok-{n@>YK=qORJznGr78vX?h36{Ex}aUjD!KLOufMBkKCrJ9CUdg zw8gJi&s5qxZ9nUVr&!BYv!!&7)A{SotZS@OL(#LRyPVA}coFt^!%jHY;MnO+-Q=hZ@eRj@^ z>&a9RyCQ?P2fwA))e0nBV&CUlrhd!duNKnjCNmrQOynJ;kCTQwmfdO5YoLHRm|`Nrt_sFT;>X=f!5B$vaxQZZf1vWHm}=VkqT z!s}EWo47{&N3NO5HuLQzt-Xg4ci?Ici4?TKtZ7;EluN3R#@Hw3 z1675KX9<)Hy4X7~YlU8EvuaV$4O=7SX?_vEbqJJN_*d{k>-d~z0cSnxKMgIC*^=&j z1!b|OjZlGeutFnK$N{aC_5kW>w8V>6R9>`>*gvS6N*2-??8tn!*5KGgqx8d(|5Pnm zC?WyrY_6877gim;vVl*?a+tx%P)Ij$IiyMm`x1toWlbru6R#bapE@S7Ol(|mzv33J zlnQ8{RWVo-{ZUHER3lsC47kEp+dxi*Vdx`(mK@C }@*xoM<(AK;lVutXWRJGVB ztd3qD{t|pjEB37%IpSBY*9l?BtU9P=r)Zj;_=&b>o}gYMVwnyqnA2H~;VL+m`J)}V zbDVhk_!1pX*g&aXCn!iA1{z?_qQix8gi50Ov&1FwQa9SJY3{dn41h|rf5oYnEaW&T zuT>0C3elW$rlpdLBBitnIIAHq5kkHO@Hb=2M39x$J^@*11rz3qSx!_qziV=yTQZPZ z+xYyrJ;v8ev1wy#n8bL@Rf-za529o8dDt$YY1v91<6i@OcKiz+$NT6+lyW{_Cr}jE z&gzJ-AuuQ}Dn5?`K8Yuu=(@JpijLPaA-^c7bwy2&pZQ>GbLVqdyw8f2TDvDD0I8Nt zHZsH#RhwDW;R=-ZCSu1PDNQIO^APCjuE8=VVg=mkFcovXQfM~nx(B81S92v2St_nX zB4%owYE(FdZ{{jB54|5{xMNDz;Eqjuu7NR{EEaObVlG*)tc7HR!Wqhn*k3c*+KI3# z7E1L}GFO*F-=aaO^W8(FA$ud2Wm}eEd*eY|fxBw;IxfKoRnF!K$Ia$aM44txJXYV% z(-a4D2B&E=nXTpWwbZJ#VHcvh!@8<8nnV(1>iKjvsoNCH(*+%~OEjyxgQH!}Ud--N z$HiG4L`k9rij``m!4V!o=ouyQ1s%t$tfR8Fj#i4CR5sNO5+>V@X2!76Qw{x?Yn+^~ zOhODotusvmCu=M~&1Ow^qzxT*!{-!3+zxffOY9%vkA&?>sE7%)?Oab87mh%L5oZ`| zBa_cIa+!`cAhP!0eH}K0ey$J^Q6#pyk;aQ@=qNB)AzYWOkem?{2_YAdL{gIZVh*2k zk^}Q%x&sQ^+jjhXa#66%*{%O{E>DPHKA%kEZqI4-mWGq*W$|*5(!uoSeNfP7)a!Ip zNGFLIDrOCGtZ5lss$bHCjB!RxoOqKE^o#*;C54&iCQL(xbaLc^)hWIRPSfjYqphfr zR7U>x+W0NglU$6M6#bf#y%!;^c<>4h_9zA~;X->$TU2}O>O6bFBdq%QS~67y$6`Kb zwprbioJv;ex8S6ei)$hP+=0ljKyxaW#7CD_UH=gHFtK%)+I*^Q^X_Vg99vg)Xo$O{a6%Kwhs}yLE_80dI(0 z78A+IWzxk`GDQGowMOvYB7zouCv^rNbCk{R4erCLXI@vEsbcF)Em4c2TS()nz)f)})!B!pPO?>s?Ta{T@5he|Eg z6LOuTP%UP%4SWMd53e7|SrP{zSqw&EepAf~ApvcQcg&U&Yy4YY>{j zUJ=nzEpy&+1(LZ`B$ep4Vt-eQ&LJK)Ls&Bh>l{?2Qy!m|Ke1iA<4=O+@>rkQS_!vO zJ(p=DSBGpk!B#uL9T&hvst~Khj)yHi$KM7a#mlt9Qks*MRF+WAe^b>`AzRGgMaeC0 zt#s5%;nyj(iDNmgO%fk@i!24{DiJ`$17@*W@ZuV{tZ5zdTvde>=gGK>a9U(anMP`{ zXq?USVczP&&fuaHr*3I(26ez%ar5oD2pJAew`#GOYi62QUyZtfNP8!h(>k){>sY#z z;znGDhfD{PibG^lR70^^ZL(j(dL%H(edVS?5KG2!&MmG0U;{@j6hQ~lFd@q>-qdFVZ!>vxt`BeQXC4f zS;}*n!GpNM&SuTAPU7UR{OgadzBXNUn{s~saiajm6|()Riff5tP}*FWKEf3g)>a;_H85ckPxDz z3)Os~f$NEgapDI|2fXDt@$U-Je8B<1T0k{ zz$u$)q&f3xtDM!Zm9;Mua~+>SqE1C)aPPCqa6LFHaDL4qC5K`ti41(N6LiMuctaz& z0^qeA`Vzvy!B4u9{ zg2^#(p=!c`&1Z=erae28T%%G*CUHmAs+Co#wA{o?=Q}2zXLIOJSO6XuQZ>`Sg_Pl# zx=}FElSzP+N9~!ZnQUU#5`#@-5@DQqvnJ#%`gfjF`NemhJ=KIqtyJM$l^Z{Kb`HAz zvugJ*wFL?NX4S7Cu>XndRRJzjXJWy{-X5{nhWi?xNhq zfU^MBr0M?uPOe36uFGt7g z zwfh3^RX_K*`!4e)AKusf`!UNK@+li{=n5az;4(|^^ED(X*5CK=(+te3N00t1N1Jlo zU?e4w*-v)3%=}CrZu?+hNr@Nj?dOYVd0q4E6908ga=F*_8v0_>${;q=oZS_|Tn89Mn?MS1-Jl*4emSD-`{(@t6{`3qhrP1@{H3Xxyx z<8n)7SDF6*$>!zuRf{L|k3rC3vu8B7ztythV$YVaz3xi0TUk@Rm0n&9?A#^w#);WWmVD)MUvexpMyS>$vop0zCXZIfW@axru(aA(lY2*8=P&X> z8t$nTGy7^c&yS^3B|hJ}rVnHmjf$%gZQQK5D&eTPmVxO?wM$A>z6O@#`gfiuZtOIl zrR3UfwMlG6DMc70*LdprdVWnn&x=~gWX>SMYIA=)YgAm7T4u%7sb$t&weR#=`!*}C z-go+kN7Pi#L}S%~rPewyv*PLlOIb{r89vUqZ!WA2$jgox5qpGG& zveim`n60y!${ORdeZ_o+dn+*|m3Hn&3E)L5Z7 zmUMTw#N6e4I=e5K-Ip%y;V+JTBN7|apIMzeI@Kuh&Gev^=C^Iz|K1yyhkVwZf3`oO z7H<48WciFPnn8W~{kP=rHCeyT@0HuOsKIGKYp|_Ml-trw_Pa|nmCJWY_L7WCWW8RR zt6HyAwj5#t<`TW{SqhDlo~4PqC*751ON2ZxMd4Wj&Cutl$*E zWJ`7o5~)vvdWm_y#K(uV{gKe6@6eSBLJsu}3P~sust=A!3Y@)hkl+65f$qYRKj$2@ z!Xn^HB%Y3?8tTc3h}N2~+}yB(*Q2zo9*T&q zn{CwhRbOp~lp@=@ssgk2_VMQn#O`i3Ds%j)gjwg}J_cW@PB!-4JULyhOwL{$nI)8C IAI|mv4Nb#&uK)l5 literal 0 HcmV?d00001 diff --git a/benches/mods/bulk_ops.wasm b/benches/mods/bulk_ops.wasm new file mode 100644 index 0000000000000000000000000000000000000000..fe27e5600e96d959ee528b034381c8e768d8b15b GIT binary patch literal 114 zcmWm0u?>ST5Czcx&jc(kC@a`v5gP`eqlPvTDS~Lt3amhtC0zun_b{&u0kGu6#AJkc z6r{DKWkPqHFRdz?@Ad)eo{_RUv>1y3jqr5%d68g(qm!Xw#GR}cS0&fD$G7JbsvYzX Dc7P8l literal 0 HcmV?d00001 diff --git a/benches/mods/counter.wasm b/benches/mods/counter.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6551b6de650ffea955a941f26a4be930503b092f GIT binary patch literal 65 zcmWN_u?>JQ3`N2JVu?ruc5s*^${18I02ClP!arq&!Vg92qNHleIr)&kJ<` literal 0 HcmV?d00001 diff --git a/benches/mods/fib_rec.wasm b/benches/mods/fib_rec.wasm new file mode 100644 index 0000000000000000000000000000000000000000..75d0af323b1368a515ce13e5268c6ac201ddb7e0 GIT binary patch literal 61 zcmZQbEY4+QU|?WmV@zPIW2|FlVq{=vXJjra&0}ETl4F!%P+)Lk3}3`t KB1}N4h8qC)<_G%# literal 0 HcmV?d00001 diff --git a/benches/mods/matmul.wasm b/benches/mods/matmul.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3a51f2c9ae080c03e8a5d9ed3f1f19c332a5f764 GIT binary patch literal 228 zcmXwy%MAiC3`EDyR|I-+#El9#ZlC~Kfa@x70CC;z0nq~mAW-_>OK16Sw%z{_81)0Q(t(k=j*KBxD=FA{Y>|sT{dab@! zF^yO8O9c>swKR8 G9nu&3OdO>E literal 0 HcmV?d00001 diff --git a/benches/mods/primes.wasm b/benches/mods/primes.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6551b6de650ffea955a941f26a4be930503b092f GIT binary patch literal 65 zcmWN_u?>JQ3`N2JVu?ruc5s*^${18I02ClP Date: Tue, 29 Oct 2024 08:56:03 +0100 Subject: [PATCH 2/2] fix: Fix typo in benchmark name, update `Cargo.lock` --- Cargo.lock | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 64ee2bf0d65..4a5aedcf3c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1053,11 +1053,14 @@ dependencies = [ "ciborium", "clap", "criterion-plot", + "csv", "is-terminal", "itertools 0.10.5", "num-traits", "once_cell", "oorandom", + "plotters", + "rayon", "regex", "serde", "serde_derive", @@ -1163,6 +1166,27 @@ dependencies = [ "typenum", ] +[[package]] +name = "csv" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + [[package]] name = "ctor" version = "0.1.26" @@ -3540,6 +3564,34 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" +[[package]] +name = "plotters" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" + +[[package]] +name = "plotters-svg" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" +dependencies = [ + "plotters-backend", +] + [[package]] name = "portable-atomic" version = "1.9.0" diff --git a/Cargo.toml b/Cargo.toml index 834b38ab23a..4bab9a48075 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -230,7 +230,7 @@ opt-level = 3 opt-level = 3 [[bench]] -name = "compile_run" +name = "compiler_run" harness = false [[bench]]