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

Bring reference_hardware.json inline with machine used for weights #5196

Merged
merged 5 commits into from
Aug 7, 2024

Conversation

alexggh
Copy link
Contributor

@alexggh alexggh commented Jul 31, 2024

Since May 2023 after paritytech/substrate#13548 optimization, Blake2256 is faster with about 30%, that means that there is a difference of ~30% between the benchmark values we ask validators to run against and the machine we use for generating the weights.So if all validators, just barely pass the benchmarks our weights are potentially underestimated with about ~20%, so let's bring this two in sync.

Same thing happened when we merged #2524 in Nov 2023 SR25519-Verify became faster with about 10-15%

Results

Generated on machine from here: https://github.com/paritytech/devops/pull/3210

+----------+----------------+--------------+-------------+-------------------+
| Category | Function       | Score        | Minimum     | Result            |
+============================================================================+
| CPU      | BLAKE2-256     | 1.00 GiBs    | 783.27 MiBs | ✅ Pass (130.7 %) |
|----------+----------------+--------------+-------------+-------------------|
| CPU      | SR25519-Verify | 637.62 KiBs  | 560.67 KiBs | ✅ Pass (113.7 %) |
|----------+----------------+--------------+-------------+-------------------|
| Memory   | Copy           | 12.19 GiBs   | 11.49 GiBs  | ✅ Pass (106.1 %) |

Discovered and discussed here: #5127 (comment)

Downsides

Machines that barely passed the benchmark will suddenly find themselves bellow the benchmark, but since that is just an warning and everything else continues as before it shouldn't be too impactful and should give the validators the necessary information that they need to become compliant, since they actually aren't when compared with the used weights.

@alexggh alexggh requested review from ggwpez, koute and bkchr July 31, 2024 09:15
Signed-off-by: Alexandru Gheorghe <[email protected]>
@alexggh alexggh added the T0-node This PR/Issue is related to the topic “node”. label Jul 31, 2024
@paritytech-cicd-pr
Copy link

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable 2/3
Logs: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/6869086

@alexggh alexggh added this pull request to the merge queue Aug 7, 2024
Merged via the queue into master with commit 8af9889 Aug 7, 2024
162 of 163 checks passed
@alexggh alexggh deleted the bump_reference_hw branch August 7, 2024 14:53
ordian added a commit that referenced this pull request Aug 7, 2024
* master:
  Umbrella crate: exclude chain-specific crates (#5173)
  Bring reference_hardware.json inline with machine used for weights (#5196)
  Snowbridge on Westend (#5074)
  Run semver check even when no prdoc (#5189)
  Export more from sc-service (#5250)
  Update the wishlist leaderboard script to handle PRs (#5256)
btwiuse pushed a commit to btwiuse/substrate-benchmark-machine that referenced this pull request Aug 9, 2024
dharjeezy pushed a commit to dharjeezy/polkadot-sdk that referenced this pull request Aug 28, 2024
…aritytech#5196)

Since `May 2023` after
paritytech/substrate#13548 optimization,
`Blake2256` is faster with about 30%, that means that there is a
difference of ~30% between the benchmark values we ask validators to run
against and the machine we use for generating the weights.So if all
validators, just barely pass the benchmarks our weights are potentially
underestimated with about ~20%, so let's bring this two in sync.

Same thing happened when we merged
paritytech#2524 in `Nov 2023`
SR25519-Verify became faster with about 10-15%

## Results

Generated on machine from here:
https://github.com/paritytech/devops/pull/3210
```
+----------+----------------+--------------+-------------+-------------------+
| Category | Function       | Score        | Minimum     | Result            |
+============================================================================+
| CPU      | BLAKE2-256     | 1.00 GiBs    | 783.27 MiBs | ✅ Pass (130.7 %) |
|----------+----------------+--------------+-------------+-------------------|
| CPU      | SR25519-Verify | 637.62 KiBs  | 560.67 KiBs | ✅ Pass (113.7 %) |
|----------+----------------+--------------+-------------+-------------------|
| Memory   | Copy           | 12.19 GiBs   | 11.49 GiBs  | ✅ Pass (106.1 %) |
```

Discovered and discussed here:
paritytech#5127 (comment)

## Downsides

Machines that barely passed the benchmark will suddenly find themselves
bellow the benchmark, but since that is just an warning and everything
else continues as before it shouldn't be too impactful and should give
the validators the necessary information that they need to become
compliant, since they actually aren't when compared with the used
weights.

---------

Signed-off-by: Alexandru Gheorghe <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T0-node This PR/Issue is related to the topic “node”.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants