Repository navigation
Chore/bench weights spec 17 - #156
Merged
Merged
Conversation
…marks, rewrite runtime-side weights to the upstream trait
…y the 2606 CLI analysis bug
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.
Summary
Regenerates every versioned weight on the reference hardware (Hetzner CPX62,
ubuntu-32gb-fsn1-1, 50/20) after spec 17, and fixes the benchmark runner. Before this fix, the runner could not complete on the CPX62.Runner (
scripts/benchmarks/run_benchmarks.sh)--no-median-slopes. In the 2606 CLI, the median-slopes analysis grows withrepeaton any benchmark that has a component. It is only printed: weights come from min-squares, the default of--output-analysis. Even so, it pushedpallet_relayerandpallet_ismp_messagingpast 31 GB, and they were OOM-killed on the CPX62.sha3fipswas OOM-killed even on a 64 GB host.Peak memory with the flag, measured locally at 50/20:
set_allowed_selectors(5×20)Ruled out first: PoV mode,
--no-storage-info,--no-verify,--disable-proof-recording, andT::X::get()ranges.Runtime-side weights are rewritten to the upstream trait. Applies to every file under
template/runtime/src/weights/, todayismp_grandpa. The script drops the localtrait WeightInfoand theimpl for (), and points the impl at<pallet>::weights::WeightInfo.Proof-size guard. After regenerating
pallet_ismp_messaging, the script runsdeclared_proof_sizes_stay_within_a_sane_ceiling. It fails the run when the CLI writes a corruptedproof_size(polkadot-sdk#13066).Comments and the exit-137 message are updated: they still said "~15 GB" and "no flag makes that fit".
Weights (CPX62, 2026-10-06)
Regenerated:
shielded-pool,zk-verifier,relayer,validator-set,ismp-messaging,ismp_grandpa.relayerandismphad not been regenerated since August and September, before the SDK 2606 migration.shield/shield_batch:shieldshield_batch, per entryThis is the pallet's own cost, mostly the Poseidon Merkle insert. Groth16 verification is not included: it is added separately through
verification_weight(~11.7 G ps).Hand-corrected
dispatch_getproof_size. The CLI wrote8433417681689641984against 283 measured bytes. The base is now 3748, the value--steps 3and--steps 5produce. Proof size is measured storage and does not depend on the host, and 3748 also equalsdispatch_post's base on this run, since both walkRequestCommitments. The per-key slope (k × 1874) and every execution time are the CPX62's. The "Hand-corrected value" header is restored fordispatch_get.Test plan
[3/3] All 12 benchmark(s) completed successfully.cargo check -p orbinum-runtimecargo test: ismp-messaging 86, shielded-pool 390, zk-verifier 128, relayer 106, validator-set 36.proof_sizeof 8 digits or more in the 6 regenerated files.ismp_grandpa.rscompiles, and it is byte-identical to the hand-fixed one on a simulated generator output.8433417681689641984, and is skipped for other pallets.