Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various WASM tweaks and cleanups #2059

Closed
wants to merge 7 commits into from

Conversation

lrubasze
Copy link
Contributor

Summary

WASM cleanups before switching to Rust 1.84

Testing

Tests updated

Changelog

  • Verify maximum table size in WASM table section
  • Implement WasmFeaturesConfig module
  • Assure wasmi is configured with the same set of features as Radix Engine
  • Enable reference-types and multi-value WASM features
    These features are enabled by default since Rust 1.82, see this.

Copy link

github-actions bot commented Jan 20, 2025

Docker tags
docker.io/radixdlt/private-scrypto-builder:7cb421d698

Copy link

github-actions bot commented Jan 20, 2025

Docker tags
docker.io/radixdlt/private-scrypto-dev-container:7cb421d698

Copy link

github-actions bot commented Jan 20, 2025

Benchmark for 7cb421d

Click to view benchmark
Test Base PR %
costing::bench_prepare_wasm 44.4±0.08ms 44.8±0.12ms +0.90%
costing::decode_encoded_i8_array_to_manifest_raw_value 19.4±0.02ms 19.3±0.01ms -0.52%
costing::decode_encoded_i8_array_to_manifest_value 42.4±0.05ms 41.6±0.06ms -1.89%
costing::decode_encoded_tuple_array_to_manifest_raw_value 72.2±0.10ms 70.4±0.08ms -2.49%
costing::decode_encoded_tuple_array_to_manifest_value 98.3±0.16ms 98.7±0.14ms +0.41%
costing::decode_encoded_u8_array_to_manifest_raw_value 32.0±0.06µs 25.6±0.06µs -20.00%
costing::decode_encoded_u8_array_to_manifest_value 42.3±0.06ms 41.6±0.04ms -1.65%
costing::decode_rpd_to_manifest_raw_value 14.4±0.04µs 14.6±0.03µs +1.39%
costing::decode_rpd_to_manifest_value 10.7±0.06µs 10.8±0.02µs +0.93%
costing::deserialize_wasm 1231.7±5.32µs 1214.7±7.43µs -1.38%
costing::execute_transaction_creating_big_vec_substates 681.9±6.38ms 689.0±10.41ms +1.04%
costing::execute_transaction_reading_big_vec_substates 582.5±0.51ms 680.7±1.09ms +16.86%
costing::instantiate_flash_loan 907.5±292.26µs 1032.5±1093.59µs +13.77%
costing::instantiate_radiswap 903.6±414.10µs 827.0±198.16µs -8.48%
costing::scrypto_malloc 650.1±1.32ms 666.9±2.08ms +2.58%
costing::scrypto_sbor_decode 655.5±1.94ms 656.0±0.72ms +0.08%
costing::scrypto_sha256 583.9±0.87ms 589.9±3.63ms +1.03%
costing::spin_loop_v1 517.4±8.27ms 515.3±3.19ms -0.41%
costing::spin_loop_v2 961.1±4.93ms 597.2±0.45ms -37.86%
costing::validate_sbor_payload 30.3±0.18µs 28.9±0.05µs -4.62%
costing::validate_sbor_payload_bytes 247.1±0.49ns 260.3±0.54ns +5.34%
costing::validate_secp256k1 76.7±0.09µs 76.8±0.19µs +0.13%
costing::validate_wasm 34.2±0.05ms 33.7±0.03ms -1.46%
decimal::add/0 8.4±0.00ns 8.4±0.03ns 0.00%
decimal::add/rust-native 9.8±0.01ns 9.8±0.00ns 0.00%
decimal::add/wasmi 309.0±2.51ns 310.6±2.82ns +0.52%
decimal::add/wasmi-call-native 2.9±0.00µs 3.0±0.01µs +3.45%
decimal::div/0 168.3±0.12ns 168.5±0.09ns +0.12%
decimal::from_string/0 155.7±0.07ns 156.8±0.09ns +0.71%
decimal::mul/0 128.3±0.09ns 129.0±0.22ns +0.55%
decimal::mul/rust-native 128.4±0.17ns 128.5±0.10ns +0.08%
decimal::mul/wasmi 19.0±0.08µs 19.1±0.10µs +0.53%
decimal::mul/wasmi-call-native 3.1±0.00µs 3.2±0.00µs +3.23%
decimal::pow/0 597.1±0.36ns 595.5±1.03ns -0.27%
decimal::pow/rust-native 586.0±0.38ns 588.1±0.64ns +0.36%
decimal::pow/wasmi 91.9±0.10µs 90.7±0.35µs -1.31%
decimal::pow/wasmi-call-native 4.7±0.01µs 4.9±0.01µs +4.26%
decimal::root/0 8.0±0.01µs 8.0±0.01µs 0.00%
decimal::sub/0 8.1±0.00ns 8.1±0.00ns 0.00%
decimal::to_string/0 442.6±0.73ns 443.3±0.39ns +0.16%
large_transaction_processing::prepare 2.5±0.00ms 2.5±0.00ms 0.00%
large_transaction_processing::prepare_and_decompile 6.5±0.03ms 6.4±0.02ms -1.54%
large_transaction_processing::prepare_and_decompile_and_recompile 32.1±0.21ms 32.4±0.29ms +0.93%
metadata_validation::validate_urls 4.8±0.07µs 4.8±0.01µs 0.00%
precise_decimal::add/0 9.1±0.00ns 9.0±0.06ns -1.10%
precise_decimal::add/rust-native 10.9±0.07ns 10.8±0.00ns -0.92%
precise_decimal::add/wasmi 428.7±2.79ns 425.4±4.82ns -0.77%
precise_decimal::add/wasmi-call-native 3.8±0.01µs 3.9±0.01µs +2.63%
precise_decimal::div/0 297.6±0.73ns 295.3±0.76ns -0.77%
precise_decimal::from_string/0 206.3±0.28ns 206.9±0.28ns +0.29%
precise_decimal::mul/0 330.7±0.24ns 335.6±2.11ns +1.48%
precise_decimal::mul/rust-native 282.8±0.59ns 282.7±0.17ns -0.04%
precise_decimal::mul/wasmi 48.4±0.37µs 47.4±0.24µs -2.07%
precise_decimal::mul/wasmi-call-native 4.2±0.01µs 4.3±0.00µs +2.38%
precise_decimal::pow/0 1753.0±3.41ns 1732.8±2.59ns -1.15%
precise_decimal::pow/rust-native 1348.9±0.79ns 1352.4±0.72ns +0.26%
precise_decimal::pow/wasmi 232.3±0.73µs 231.4±0.40µs -0.39%
precise_decimal::pow/wasmi-call-native 7.6±0.01µs 7.6±0.04µs 0.00%
precise_decimal::root/0 58.7±0.11µs 59.1±0.07µs +0.68%
precise_decimal::sub/0 9.2±0.04ns 9.1±0.03ns -1.09%
precise_decimal::to_string/0 697.0±2.69ns 697.3±2.56ns +0.04%
schema::validate_payload 377.6±0.60µs 384.3±0.61µs +1.77%
transaction::radiswap 5.0±0.02ms 5.0±0.03ms 0.00%
transaction::transfer 1831.3±5.68µs 1786.4±3.50µs -2.45%
transaction_validation::validate_manifest 43.2±0.04µs 43.5±0.07µs +0.69%
transaction_validation::verify_bls_2KB 1096.7±23.05µs 1022.9±28.33µs -6.73%
transaction_validation::verify_bls_32B 1004.0±9.41µs 1002.8±13.94µs -0.12%
transaction_validation::verify_ecdsa 74.7±0.08µs 74.7±0.11µs 0.00%
transaction_validation::verify_ed25519 42.2±0.07µs 50.1±0.08µs +18.72%

@lrubasze lrubasze marked this pull request as ready for review January 20, 2025 13:51
@lrubasze lrubasze requested a review from a team as a code owner January 20, 2025 13:51
@lrubasze lrubasze closed this Jan 23, 2025
@lrubasze lrubasze deleted the tweak/wasm-cleanups branch January 23, 2025 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant