Merged
Conversation
|
@athei Thanks a lot for those benchmarks. Very exciting to see so massive speed-ups from the built-in fuel metering. 🚀 |
Member
Author
|
Yes great work there with your wasmi implementation! I just wanted to get a feel for it before putting into We should notice the gas usage improvements in our benchmarks we house in the ink! repo. |
5 tasks
Contributor
Benchmark results: wasmi 0.30 vs wasmi 0.29wasmi 0.29Results on Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHzwasmi 0.30tl;dr: performance improvement is being shown on all benchmarks except this one: Results on Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHz |
ukint-vs
pushed a commit
to gear-tech/wasm-instrument
that referenced
this pull request
Oct 3, 2024
* Upgraded to newest wasmi * Refactored benchmarks * Two new benchmark strategies (`no_metering` and `wasmi_builtin`) We can now benchmark the execution of modules using our two instrumentation strategies in addition to no metering (as a baseline) and wasmi's builtin metering. We can learn from the following results (ran on my M1) that the builtin metering decisively outperforms the instrumentation on every single fixture. cc @Robbepop ``` coremark/no_metering [15.586 s 15.588 s 15.589 s] coremark/wasmi_builtin [16.403 s 16.414 s 16.434 s] coremark/host_function [18.245 s 18.248 s 18.252 s] coremark/mutable_global [20.476 s 20.486 s 20.505 s] recursive_ok/no_metering [111.32 µs 111.33 µs 111.34 µs] recursive_ok/wasmi_builtin [138.64 µs 138.65 µs 138.66 µs] recursive_ok/host_function [495.55 µs 495.64 µs 495.78 µs] recursive_ok/mutable_global [514.07 µs 514.09 µs 514.11 µs] fibonacci_recursive/no_metering [3.9098 µs 3.9102 µs 3.9108 µs] fibonacci_recursive/wasmi_builtin [4.3242 µs 4.3246 µs 4.3250 µs] fibonacci_recursive/host_function [12.913 µs 12.914 µs 12.915 µs] fibonacci_recursive/mutable_global [13.202 µs 13.208 µs 13.212 µs] factorial_recursive/no_metering [530.72 ns 530.84 ns 530.91 ns] factorial_recursive/wasmi_builtin [619.17 ns 619.30 ns 619.44 ns] factorial_recursive/host_function [1.7656 µs 1.7657 µs 1.7659 µs] factorial_recursive/mutable_global [1.8783 µs 1.8786 µs 1.8788 µs] count_until/no_metering [1.2422 ms 1.2423 ms 1.2424 ms] count_until/wasmi_builtin [1.3976 ms 1.3978 ms 1.3981 ms] count_until/host_function [4.8074 ms 4.8106 ms 4.8125 ms] count_until/mutable_global [5.9161 ms 5.9169 ms 5.9182 ms] memory_vec_add/no_metering [4.1630 ms 4.1638 ms 4.1648 ms] memory_vec_add/wasmi_builtin [4.3913 ms 4.3925 ms 4.3930 ms] memory_vec_add/host_function [8.2925 ms 8.2949 ms 8.2967 ms] memory_vec_add/mutable_global [9.1124 ms 9.1152 ms 9.1163 ms] wasm_kernel::tiny_keccak/no_metering [613.21 µs 613.42 µs 613.58 µs] wasm_kernel::tiny_keccak/wasmi_builtin [617.04 µs 617.46 µs 617.81 µs] wasm_kernel::tiny_keccak/host_function [817.24 µs 817.44 µs 817.89 µs] wasm_kernel::tiny_keccak/mutable_global [873.42 µs 873.90 µs 874.65 µs] global_bump/no_metering [1.4597 ms 1.4598 ms 1.4600 ms] global_bump/wasmi_builtin [1.6151 ms 1.6152 ms 1.6153 ms] global_bump/host_function [5.5393 ms 5.5418 ms 5.5435 ms] global_bump/mutable_global [6.9446 ms 6.9454 ms 6.9461 ms] ```
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
no_meteringandwasmi_builtin)We can now benchmark the execution of modules using our two instrumentation strategies in addition to no metering (as a baseline) and wasmi's builtin metering.
We can learn from the following results (ran on my M1) that the builtin metering decisively outperforms the instrumentation on every single fixture.
cc @Robbepop