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

try making bench numbers make sense #5526

Merged
merged 12 commits into from
Sep 4, 2024
4 changes: 2 additions & 2 deletions polkadot/runtime/parachains/src/inclusion/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ benchmarks! {
}

enact_candidate {
let u in 1 .. 32;
let h in 1 .. 32;
let u in 0 .. 2;
let h in 0 .. 2;
let c in 0 .. 1;

let para = 42_u32.into(); // not especially important.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
//! Autogenerated weights for `polkadot_runtime_parachains::inclusion`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2024-08-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2024-08-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-696hpswk-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! HOSTNAME: `runner-svzsllib-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024

// Executed Command:
Expand Down Expand Up @@ -70,13 +70,13 @@ impl<T: frame_system::Config> polkadot_runtime_parachains::inclusion::WeightInfo
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
/// Storage: `MessageQueue::Pages` (r:1 w:32)
/// Storage: `MessageQueue::Pages` (r:1 w:10)
/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(32818), added: 35293, mode: `MaxEncodedLen`)
/// Storage: `Hrmp::HrmpChannelDigests` (r:33 w:33)
/// Storage: `Hrmp::HrmpChannelDigests` (r:11 w:11)
/// Proof: `Hrmp::HrmpChannelDigests` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Hrmp::HrmpChannels` (r:32 w:32)
/// Storage: `Hrmp::HrmpChannels` (r:10 w:10)
/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Hrmp::HrmpChannelContents` (r:32 w:32)
/// Storage: `Hrmp::HrmpChannelContents` (r:10 w:10)
/// Proof: `Hrmp::HrmpChannelContents` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Paras::FutureCodeUpgrades` (r:1 w:0)
/// Proof: `Paras::FutureCodeUpgrades` (`max_values`: None, `max_size`: None, mode: `Measured`)
Expand All @@ -96,28 +96,31 @@ impl<T: frame_system::Config> polkadot_runtime_parachains::inclusion::WeightInfo
/// Proof: `Paras::UpgradeRestrictionSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
/// Proof: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
/// The range of component `u` is `[1, 32]`.
/// The range of component `h` is `[1, 32]`.
/// The range of component `u` is `[0, 10]`.
/// The range of component `h` is `[0, 10]`.
/// The range of component `c` is `[0, 1]`.
fn enact_candidate(u: u32, h: u32, c: u32, ) -> Weight {
// Proof Size summary in bytes:
// Measured: `33353 + c * (16114 ±0) + h * (75 ±0)`
// Estimated: `36818 + c * (26467 ±0) + h * (2551 ±0)`
// Minimum execution time: 4_829_551_000 picoseconds.
Weight::from_parts(1_892_697_027, 0)
.saturating_add(Weight::from_parts(0, 36818))
// Standard Error: 793_993
.saturating_add(Weight::from_parts(126_698_671, 0).saturating_mul(u.into()))
// Standard Error: 793_993
.saturating_add(Weight::from_parts(144_116_038, 0).saturating_mul(h.into()))
.saturating_add(T::DbWeight::get().reads(7))
// Measured: `33352 + c * (16115 ±0) + h * (76 ±0)`
// Estimated: `36283 + c * (19327 ±403) + h * (3057 ±59) + u * (1314 ±59)`
// Minimum execution time: 1_334_017_000 picoseconds.
Weight::from_parts(5_805_317, 0)
.saturating_add(Weight::from_parts(0, 36283))
// Standard Error: 282_194
.saturating_add(Weight::from_parts(128_332_196, 0).saturating_mul(u.into()))
// Standard Error: 282_194
.saturating_add(Weight::from_parts(146_910_684, 0).saturating_mul(h.into()))
// Standard Error: 1_905_330
.saturating_add(Weight::from_parts(91_514_854, 0).saturating_mul(c.into()))
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(h.into())))
.saturating_add(T::DbWeight::get().reads((8_u64).saturating_mul(c.into())))
.saturating_add(T::DbWeight::get().writes(10))
.saturating_add(T::DbWeight::get().writes(8))
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into())))
.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(h.into())))
.saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(c.into())))
.saturating_add(Weight::from_parts(0, 26467).saturating_mul(c.into()))
.saturating_add(Weight::from_parts(0, 2551).saturating_mul(h.into()))
.saturating_add(Weight::from_parts(0, 19327).saturating_mul(c.into()))
.saturating_add(Weight::from_parts(0, 3057).saturating_mul(h.into()))
.saturating_add(Weight::from_parts(0, 1314).saturating_mul(u.into()))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
//! Autogenerated weights for `polkadot_runtime_parachains::inclusion`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2024-08-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2024-08-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-696hpswk-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! HOSTNAME: `runner-svzsllib-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024

// Executed Command:
Expand Down Expand Up @@ -80,13 +80,13 @@ impl<T: frame_system::Config> polkadot_runtime_parachains::inclusion::WeightInfo
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
/// Storage: `MessageQueue::Pages` (r:1 w:32)
/// Storage: `MessageQueue::Pages` (r:1 w:2)
/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(131122), added: 133597, mode: `MaxEncodedLen`)
/// Storage: `Hrmp::HrmpChannelDigests` (r:33 w:33)
/// Storage: `Hrmp::HrmpChannelDigests` (r:3 w:3)
/// Proof: `Hrmp::HrmpChannelDigests` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Hrmp::HrmpChannels` (r:32 w:32)
/// Storage: `Hrmp::HrmpChannels` (r:2 w:2)
/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Hrmp::HrmpChannelContents` (r:32 w:32)
/// Storage: `Hrmp::HrmpChannelContents` (r:2 w:2)
/// Proof: `Hrmp::HrmpChannelContents` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Paras::FutureCodeUpgrades` (r:1 w:0)
/// Proof: `Paras::FutureCodeUpgrades` (`max_values`: None, `max_size`: None, mode: `Measured`)
Expand All @@ -104,28 +104,32 @@ impl<T: frame_system::Config> polkadot_runtime_parachains::inclusion::WeightInfo
/// Proof: `Paras::UpgradeRestrictionSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
/// Proof: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
/// The range of component `u` is `[1, 32]`.
/// The range of component `h` is `[1, 32]`.
/// The range of component `u` is `[0, 2]`.
/// The range of component `h` is `[0, 2]`.
/// The range of component `c` is `[0, 1]`.
fn enact_candidate(u: u32, h: u32, c: u32, ) -> Weight {
// Proof Size summary in bytes:
// Measured: `132737 + c * (15992 ±0) + h * (75 ±0)`
// Estimated: `136202 + c * (76098 ±0) + h * (2551 ±0)`
// Minimum execution time: 18_868_930_000 picoseconds.
Weight::from_parts(6_899_601_016, 0)
.saturating_add(Weight::from_parts(0, 136202))
// Standard Error: 1_952_665
.saturating_add(Weight::from_parts(467_810_135, 0).saturating_mul(u.into()))
// Standard Error: 1_952_665
.saturating_add(Weight::from_parts(551_226_340, 0).saturating_mul(h.into()))
.saturating_add(T::DbWeight::get().reads(11))
// Measured: `1447 + c * (15992 ±0) + h * (92 ±0) + u * (131259 ±0)`
// Estimated: `134587 + c * (25419 ±939) + h * (29985 ±511) + u * (82828 ±511)`
// Minimum execution time: 1_065_780_000 picoseconds.
Weight::from_parts(192_328_221, 0)
.saturating_add(Weight::from_parts(0, 134587))
// Standard Error: 1_263_527
.saturating_add(Weight::from_parts(454_948_671, 0).saturating_mul(u.into()))
// Standard Error: 1_263_527
.saturating_add(Weight::from_parts(527_131_211, 0).saturating_mul(h.into()))
// Standard Error: 2_093_815
.saturating_add(Weight::from_parts(11_112_489, 0).saturating_mul(c.into()))
.saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into())))
.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(h.into())))
.saturating_add(T::DbWeight::get().reads((8_u64).saturating_mul(c.into())))
.saturating_add(T::DbWeight::get().writes(11))
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into())))
.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(h.into())))
.saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(c.into())))
.saturating_add(Weight::from_parts(0, 76098).saturating_mul(c.into()))
.saturating_add(Weight::from_parts(0, 2551).saturating_mul(h.into()))
.saturating_add(T::DbWeight::get().reads((9_u64).saturating_mul(c.into())))
.saturating_add(T::DbWeight::get().writes(6))
.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(u.into())))
.saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(h.into())))
.saturating_add(T::DbWeight::get().writes((8_u64).saturating_mul(c.into())))
.saturating_add(Weight::from_parts(0, 25419).saturating_mul(c.into()))
.saturating_add(Weight::from_parts(0, 29985).saturating_mul(h.into()))
.saturating_add(Weight::from_parts(0, 82828).saturating_mul(u.into()))
}
}
13 changes: 13 additions & 0 deletions prdoc/pr_5526.prdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
title: "Fix enact_candidate weight generation"
doc:
- audience: Runtime Dev
description: |
This PR works around an issue in multivariate linear regression of weight generation.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there an issue for this and shall we reference it from the benchmarks, so the values can be changed back once fixed?

Copy link
Member Author

@ordian ordian Sep 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll need to dig a bit deeper to provide meaningful feedback for the issue, but I don't think there's a need to change those values back once fixed. The purpose of linear regression is to find the right correlation and if it can be achieved with just a points, there is no need to add more.


crates:
- name: polkadot-runtime-parachains
bump: patch
- name: rococo-runtime
bump: patch
- name: westend-runtime
bump: patch
Loading