Skip to content

leanvm-cli: claim-set trees in aggregate --signers and the tracked benchmarks - #617

Merged
kevaundray merged 40 commits into
leanEthereum:riscv-explorationfrom
kevaundray:kw/signer-set-cli
Oct 14, 2026
Merged

kevaundray merged 40 commits into
leanEthereum:riscv-explorationfrom
kevaundray:kw/signer-set-cli

Conversation

@kevaundray

@kevaundray kevaundray commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

This PR was created with Claude Code, prompted by @kevaundray.

Fifth of the signer-set aggregation stack, after #614 (claim-set trees), #618 (height tiers), #626 and #627: the CLI proves claim-set trees over leanXMSS and leanSPHINCS leaves, and the tracked benchmarks count and prove them. A tree is its leaf program's, so each tree is of one scheme.

cargo leanvm aggregate --signers (leanxmss or leansphincs; fibonacci is refused) proves --leaves distinct runs, each publishing its signer set, then the tree bottom-up with Tree::aggregate_leaves and Tree::aggregate, and verifies the root by its set alone (Tree::verify_claims). The capacity is a parameter, --max-claims and --max-groups, required with no default, and the tree has one tier (ClaimShape::new): it sets every circuit's heights, and main's capacity is far heavier than these trees need (see #614). Each leaf splits its --n signatures across --groups, group j signing message j, and --overlap percent of each group's signers are the previous leaf's, so the union is smaller than the sum. A level's last node takes fewer children (a lone child is taken by the node of two, its other place absent); --declare half has the root declare half its union. It reports the union and the sum, each used circuit's rows and committed words, per-circuit proving times and proof sizes, Tree::new, the root's verification, the heap peak and peak RSS. The positional aggregate is unchanged.

The claims are the programs': Workload carries a leanvm::aggregate::ClaimSet built from leanxmss_host::SignerSet::label_groups() or leansphincs_host::SignerSet::label_groups(), and the CLI never looks inside the union or assumes a capacity.

Tracked: counted aggregate-signers-leanxmss-400-2to1 (capacity 1,601 claims in 16 groups) and -4to1 (6,401 in 16), every node arity reported (-node the largest, -node<k> the smaller); proven aggregate-signers-leanxmss-100-2to1-16thread (401 in 16) and -4to1-16thread (1,601 in 16), over copies of one leaf proof, so every node's children overlap entirely; both proven cases join bench.yml's matrix. Positional names and numbers are unchanged.

Counts (bench --cycles-only at riscv-exploration dfb7570, identical at 37c1525, one tier, ClaimShape::new(capacity)): only these rows are added.

Case Rows Proven rows Committed EMUL EXK HASH SPLIT CAST
2to1 first 216,605 313,344 2^22.63 119,120 64,685 14,760 726 16,761
2to1 node 199,769 313,344 2^22.63 85,450 82,685 16,252 987 13,840
4to1 first 570,214 922,624 2^24.51 291,556 201,300 32,515 1,646 42,642
4to1 node2 421,740 922,624 2^24.51 174,123 193,527 22,815 1,358 29,351
4to1 node3 488,252 922,624 2^24.51 205,451 215,405 30,903 1,832 34,095
4to1 node (4) 554,768 922,624 2^24.51 236,782 237,284 38,990 2,307 38,839

The positional trees are 2^22.51 (2to1) and 2^23.51 (4to1).

Proven (before #618, #626 and #627, which change the union by a few rows and no proven height; Ryzen 9 7950X3D, 16-thread pool, target-cpu=native, one binary, positional and signer-set cases alternating ABBA, 8 runs each, medians):

Case Positional Signer sets Heap peak Proof Root verify
2to1 first 77.9 ms 82.7 ms 318.8 / 319.5 MiB 256,219 / 257,051 B 2.11 / 2.16 ms
2to1 node 83.1 ms 85.3 ms 318.7 / 319.7 MiB 256,859 / 257,243 B 2.24 / 2.27 ms
4to1 first 143.4 ms 155.7 ms 637.8 / 638.8 MiB 280,383 / 280,695 B 2.18 / 2.13 ms
4to1 node 155.8 ms 165.6 ms 637.3 / 639.4 MiB 281,215 / 281,143 B 2.66 / 3.92 ms

The positional cases against riscv-exploration with #614 (scripts/ab.sh, 5 alternating rounds): proving time within -0.2% to +1.6%, every interval spanning zero; proof sizes and allocations identical; heap peaks within 0.02%.

Tests: the overlap arithmetic; an end-to-end tree for leanxmss and leansphincs (6 leaves at arity 2, so a node takes a lone child, its other place absent, the root declaring half), which also checks each host's label_groups() digest is its guest's output. Release smoke at dfb7570: aggregate --signers over 6 leaves of leanxmss and of leansphincs (3 groups, 50% overlap, declare half), at arity 4 and at arity 2 (a lone child), proves and verifies.

Merge of riscv-exploration 37c1525 (#631, #619 to #624, #633, #634): the CLI follows the new bench API (pretty_integer and pretty_f64 from bench, closures to Plan take no pass argument, Plan suppresses tracing itself, Plan::default and without_cooldown replace the hand-built plans). #634 removed Tree::node_stats, which nothing in the library read; this PR restores it beside Tree::stats, since the tracked counts report every node arity of a signer-set tree through it. No protocol, session or wire format changes, so no version moves.

Zero-knowledge leaves work with signer sets: with --zk, aggregate --signers proves zero-knowledge leaves and shapes the tree's leaf as a zero-knowledge one (LeafShape::zero_knowledge), as plain aggregate does; the tree's own proofs stay plain. The tracked benchmarks remain plain proofs and still refuse --zk.

Checks at 56179da: formatting, haswell Clippy on Rust 1.97 and 1.99, native Clippy on 1.99, AVX-512 and ARM64 Clippy, system allocator CLI Clippy, rustdoc and the complete local release workspace suite pass. Release smoke: aggregate --signers over 6 leaves of leanxmss and of leansphincs (3 groups, 50% overlap, declare half) at arity 2 and 4, and over 6 zero-knowledge leanxmss leaves at arity 2, proves and verifies the root by its set. bench --cycles-only --markdown prints the same counts as at dfb7570.

A signer set is the claims an aggregate publishes: XMSS groups of keys that signed one message at one leaf index, and SPHINCS (key, message) claims. Its digest is a chain of BLAKE2s compressions, one per item (a group header, a block of two keys, the end), each item's counter saying what it is, so a parse of the blocks is fixed by their counters and a recursion circuit can read a set of any shape in fixed rows.

- leanvm_guest::signers: SignerStream, the digest a guest writes one group and one key at a time.
- leanvm::SignerSet: the claims, their written form and digest (cross-checked against the guest's stream), the canonical form a root must publish (check, with main's capacity: fewer than 2^16 claims, at most 1,024 groups), from_claims, and bytes that refuse trailing data.
A node of a signer-set tree reads its children's sets from their digests, declares a set of their claims, and proves every declared claim is a selected child claim:

- Each side is a pool of items, one compression of a set's written form each; an item's kind is hinted bits that give its counter word, so a run's chain equals its set's digest only if it is read as that set.
- The children share one pool, a run each starting at a chunk boundary; a one-hot over the children, moved on at each chunk that begins a run, says which digest each run's end must hold. So the pools are fixed by the digests before any challenge.
- A challenge point drawn from a transcript of the digests and the packed selection bits checks the product of the selected child claims' factors against the declared claims': a claim's fingerprint carries its scheme, leaf index and message, so a key backs only a claim of its own group.

Builder: block (a compression whose counter and finalization words are a wire), d_to_halves (a digest's halves in one cast row), Compression::with_flags.
The leanXMSS and leanSPHINCS guests now read their signatures in groups and commit one value, the digest of the signer set they verified (leanvm_guest::signers), instead of committing every claim. So a leaf's output is BLAKE2s of its signer set's digest, which a signer-set tree can rebuild from the set's claims.

- leanXMSS advice: the number of groups, then per group its leaf index (below 2^32), message and count, then that many (key, signature) entries read in place. Each signature is verified at its group's leaf index and message; the guest writes one XMSS group per advice group and each key as its Merkle root then public parameter.
- leanSPHINCS advice: the number of groups, then per group its message and count, then the entries. A set writes SPHINCS claims as runs of one message, so a group opens a run only if it has a signature and its message differs from the open run's: the output is the set's digest whatever the advice's grouping.
- Hosts: batch(n) is one group (one leaf index and message for leanXMSS, one message for leanSPHINCS), and batch_groups(&[Group]) takes several, with overlapping signer ranges, so a key can sign in several groups. Both return a Batch: the Run (advice and expected output) and the leanvm::SignerSet the guest proves, in the advice's order and not canonical. A leanXMSS key signs at one leaf index, so a signer at two leaf indices is two keys; at one leaf index it signs several messages under one key.
- Tests: the expected output, a native stream over the advice and the guest on the interpreter agree for one group of every count up to 5 (3 for leanSPHINCS), several groups, several messages at one leaf index and one key in several groups; a changed signature, group message or out-of-range leaf index traps.
- Rebuilt both ELFs; the CLI's workloads take batch(n).run.
A tree's shape now chooses its semantics. A tree of outputs is as before: its root states its leaves' outputs in order. A signer-set tree (TreeShape::signers, a capacity) aggregates signer sets as leanVM main does:

- A leaf publishes a signer set: its output is the hash of its set's digest.
- Each tree proof declares a set, by default the union of its children's sets, or any covered part of it (Tree::aggregate_leaves, Tree::aggregate). Its rows run the union gadget, so every declared claim is one of its children's; duplicates and dropped claims are simply unselected.
- Anyone combines any proofs of the tree: there is a node circuit for every arity from two to the tree's largest, all of one height, and one child is taken twice. Aggregate pairs a proof with its set, for handing between provers.
- The root's verifier takes the set alone (Tree::verify_signers): canonical, within the capacity, stated by the root.

A child's kind is now its circuit's index: with more than two circuits the rows hold it to an index and split it, its bits selecting the circuit's block of the fixed polynomial, whose top now has as many variables as the index has bits. A dense claim's top is a list of coordinates. Positional and signer-set operations refuse the other semantics, and both the semantics and the capacity are in the session.

Versions: LVMT 14 to 15, leanvm-tree-11 to leanvm-tree-12. Docs: e-recursion.tex, Signer-set trees, and the circuit identity for several kinds.
… benchmarks

`cargo leanvm aggregate --signers` (leanxmss, leansphincs) proves distinct leaves, each publishing its signer set (`--n` signatures split over `--groups` messages, `--overlap` percent of each group's signers the previous leaf's), then the tree bottom-up with aggregate_leaves / aggregate (`--arity0`, nodes of up to `--arity`, the last of a level fewer), the root declaring its union or half of it (`--declare`), within `--max-claims` / `--max-groups` (Capacity::MAIN by default), and verifies the root with verify_signers. It reports the union, each used circuit's rows and committed words, each kind's proving time, the root's verifying time and the proving's heap peak. Workload carries the signer set a signature guest publishes.

Tracked: counted aggregate-signers-leanxmss-400-2to1 (capacity 1601/16) and -4to1 (6401/16), every node arity reported; proven aggregate-signers-leanxmss-100-2to1-16thread (401/16) and -4to1-16thread (1601/16).

Measured (32-vCPU x86-64, 16-thread pool):
- Positional counted tree rows unchanged vs kw/signer-set-guests (diff of `bench --cycles-only --markdown` only adds the signer rows).
- Counted signer trees, rows / committed: 400-2to1 first 216,604 / 2^22.63, node 199,753 / 2^22.63; 400-4to1 first 570,214, node2 421,725, node3 488,230, node(4) 554,742, all 2^24.51.
- Capacity::MAIN, arity_0 4, arity 16, leanxmss-8 leaves: Tree::new 20.5 to 23.4 s (heap peak 8.46 GiB, RSS 12.6 GiB); every circuit committed 2^26.63; first EMUL 1,335,268, node2 EMUL 1,246,742, node16 EMUL 1,770,629; warm proving first 1.18 to 1.42 s, node16 1.96 to 2.37 s, node2 1.30 to 1.35 s; proving heap peak 5.54 / 5.83 / 5.54 GiB; process max RSS 15.3 GiB.
- Proven, --repeat 3, ABBA against the positional tree: 2to1 first 0.083 vs 0.080/0.083 s, node 0.086/0.087 vs 0.083/0.089 s, heap 0.312 GiB both; 4to1 first 0.156/0.159 vs 0.142/0.152 s, node 0.168/0.180 vs 0.154/0.163 s, heap 0.62 GiB both.
The tree's union gadget no longer knows what a claim means. A claim set is groups of claims sharing a 6-word label, each with 4-word members; it is written and hashed as before (a header a group, two members a block, the end, each block's counter saying what it is), and the gadget's fingerprint tuple is (1, label, member). What labels and members mean is the programs': rec::tree::multiset defines the format, its digest and its canonical form (labels strictly increasing, members strictly increasing, groups non-empty).

- rec/tree/signers.rs becomes rec/tree/union.rs, over ClaimSet; its session tag is leanvm-claim-union-1.
- rec/tree/multiset.rs: ClaimSet, ClaimGroup, Claim, Capacity, ClaimSetError, the written form and digest, bytes.
- A test hands the rows an uncovered claim, which the product refuses.
Merges the generic union gadget and renames the tree's API to claim sets: TreeShape::claims, ClaimLeaf, Aggregate { proof, claims }, Tree::verify_claims, and the errors with them. The core keeps no signer types: a leaf program says what its claims mean and hands the tree a ClaimSet. The recursion annex describes the claim-set tree with labels and members.
leanEthereum#612 was merged at its head from before the restructure, so riscv-exploration re-added leanvm::SignerSet and leanvm_guest::signers, its guests wrote the old format, and the hosts imported two SignerSets and failed to compile (E0252).

This brings it to the restructured tree: the programs own their signer sets (leanxmss::signers and leansphincs::signers in the guest libraries, SignerSet in each host), the guests' main writes the digest through its library's Stream, the hosts' Batch holds the program's SignerSet, and the SDK keeps only blake2s_compress, the portable counterpart of precompile::blake2s_compress. leanvm::SignerSet and leanvm_guest::signers are removed again, and both ELFs are rebuilt.
The programs own their signer sets (leanEthereum#615); the core keeps only the scheme-agnostic claim sets.
…ner-set-cli

# Conflicts:
#	bins/leanvm/src/tracked.rs
#	bins/leanvm/src/workload.rs
#	programs/leansphincs/guest/src/main.rs
#	programs/leansphincs/host/src/lib.rs
#	programs/leansphincs/leansphincs.elf
#	programs/leanxmss/guest/src/main.rs
#	programs/leanxmss/host/src/lib.rs
#	programs/leanxmss/leanxmss.elf
Each signature guest's host signer set reaches the tree as a ClaimSet through its label_groups (labels of six words, members of four); the tree proves with ClaimLeaf, aggregate_leaves and aggregate and checks the root with verify_claims. The capacity stays a parameter (--max-claims, --max-groups); the flags keep their names.

Counted recursion rows unchanged by the port: aggregate-signers-leanxmss-400-2to1 first 216,604, node 199,753 (2^22.63); 400-4to1 first 570,214, node2 421,725, node3 488,230, node 554,742 (2^24.51). The positional trees' rows are unchanged too; leanxmss-400 and leansphincs-104 cycles move with the restructured guests (768,711 to 768,713, 973,689 to 969,940).
@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Exact counts

cargo leanvm bench --cycles-only, the counts that changed: 56179da merged into its base, against the base 37c1525. Any increase fails the Counts check.

program measure base this PR change
aggregate-signers-leanxmss-400-2to1-first rows none 216,605 new
aggregate-signers-leanxmss-400-2to1-first proven-rows none 313,344 new
aggregate-signers-leanxmss-400-2to1-first committed none 6,505,472 new
aggregate-signers-leanxmss-400-2to1-node rows none 199,769 new
aggregate-signers-leanxmss-400-2to1-node proven-rows none 313,344 new
aggregate-signers-leanxmss-400-2to1-node committed none 6,505,472 new
aggregate-signers-leanxmss-400-4to1-first rows none 570,214 new
aggregate-signers-leanxmss-400-4to1-first proven-rows none 922,624 new
aggregate-signers-leanxmss-400-4to1-first committed none 23,924,736 new
aggregate-signers-leanxmss-400-4to1-node2 rows none 421,740 new
aggregate-signers-leanxmss-400-4to1-node2 proven-rows none 922,624 new
aggregate-signers-leanxmss-400-4to1-node2 committed none 23,924,736 new
aggregate-signers-leanxmss-400-4to1-node3 rows none 488,252 new
aggregate-signers-leanxmss-400-4to1-node3 proven-rows none 922,624 new
aggregate-signers-leanxmss-400-4to1-node3 committed none 23,924,736 new
aggregate-signers-leanxmss-400-4to1-node rows none 554,768 new
aggregate-signers-leanxmss-400-4to1-node proven-rows none 922,624 new
aggregate-signers-leanxmss-400-4to1-node committed none 23,924,736 new

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Benchmarks: base against this PR, on one runner

56179da merged into its base, against the base 37c1525: each benchmark run in turns on one runner, base and PR 5 times each. A size is shown when it changed; a time or a peak memory when it moved the same way in every round and its median by at least 1% (the change is the median ratio, with the rounds' range).

Threads shows the named configuration; default means no thread count is encoded in the benchmark ID.

BLAKE2s

Prover stages
benchmark threads runner base this PR change
hash-50000 16 arm64 519.43 ms 519.49 ms -0.13% (-0.33% to +2.10%)
 ↳ build-witness 19.76 ms 19.79 ms +0.02% (-0.36% to +0.37%)
 ↳ commit 81.83 ms 82.00 ms -0.11% (-0.85% to +0.36%)
 ↳ execute-program 23.55 ms 23.05 ms -1.86% (-4.44% to -1.23%)
 ↳ flock-reductions 169.97 ms 169.95 ms -0.10% (-0.18% to +0.93%)
 ↳ pcs-open 187.36 ms 187.44 ms +0.00% (-0.79% to +2.82%)
 ↳ prove-bus 29.84 ms 29.85 ms +0.26% (-0.08% to +13.76%)
 ↳ prove-constraints 7.04 ms 7.11 ms +1.46% (-1.60% to +6.98%)

Fibonacci

Prover stages
benchmark threads runner base this PR change
fibonacci-asm-2000000 16 x86-64 502.95 ms 501.20 ms -0.56% (-2.17% to +1.60%)
 ↳ build-witness 40.07 ms 39.40 ms -1.11% (-2.82% to -1.08%)
 ↳ commit 69.41 ms 69.25 ms -0.08% (-3.24% to +1.02%)
 ↳ execute-program 70.00 ms 69.91 ms -0.72% (-5.13% to +4.36%)
 ↳ flock-reductions 142.53 ms 141.27 ms -1.09% (-3.18% to +0.32%)
 ↳ pcs-open 130.55 ms 132.00 ms +0.39% (-3.12% to +5.63%)
 ↳ prove-bus 35.98 ms 34.94 ms +0.20% (-4.49% to +1.35%)
 ↳ prove-constraints 14.81 ms 14.76 ms +0.16% (-2.70% to +4.92%)

Flock

benchmark threads runner measure base this PR change
flock-sd-batch-262144 16 x86-64 Proving time 9.68 ms 9.94 ms +4.74% (+0.79% to +15.14%)

Other benchmarks

benchmark threads runner measure base this PR change
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Proving time none 107.72 ms new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 Proving time none 91.83 ms new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Proving time none 113.31 ms new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 Proving time none 95.70 ms new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Proving time none 201.74 ms new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 Proving time none 170.53 ms new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Proving time none 218.14 ms new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 Proving time none 187.85 ms new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Verifying time none 2.77 ms new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 Verifying time none 3.10 ms new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Verifying time none 3.07 ms new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 Verifying time none 3.32 ms new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Verifying time none 3.01 ms new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 Verifying time none 3.30 ms new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Verifying time none 3.95 ms new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 Verifying time none 4.26 ms new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Proof size none 257,083 B new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 Proof size none 257,083 B new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Proof size none 256,859 B new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 Proof size none 256,859 B new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Proof size none 281,239 B new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 Proof size none 281,239 B new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Proof size none 280,599 B new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 Proof size none 280,599 B new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Peak memory none 1715.02 MiB new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 Peak memory none 870.95 MiB new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Peak memory none 1729.23 MiB new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 Peak memory none 907.88 MiB new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Peak memory none 2112.49 MiB new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 Peak memory none 1071.20 MiB new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Peak memory none 2132.44 MiB new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 Peak memory none 1118.47 MiB new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Peak heap none 603.47 MiB new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 Peak heap none 266.00 MiB new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Peak heap none 604.30 MiB new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 Peak heap none 266.78 MiB new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Peak heap none 1206.71 MiB new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 Peak heap none 531.62 MiB new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Peak heap none 1208.64 MiB new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 Peak heap none 533.60 MiB new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Allocations none 17,583 new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 Allocations none 17,700 new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Allocations none 21,307 new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 Allocations none 21,416 new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Allocations none 29,666 new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 Allocations none 29,827 new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Allocations none 36,492 new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 Allocations none 36,653 new
Prover stages
benchmark threads runner base this PR change
aggregate-signers-leanxmss-100-2to1-first 16 arm64 none 107.72 ms new
 ↳ build-circuit none 12.26 ms new
 ↳ prove-recursion none 83.62 ms new
 ↳ reduce-claims none 3.84 ms new
 ↳ reduce-in-rows none 1.62 ms new
 ↳ verify none 6.25 ms new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 none 91.83 ms new
 ↳ build-circuit none 16.33 ms new
 ↳ prove-recursion none 61.36 ms new
 ↳ reduce-claims none 6.46 ms new
 ↳ reduce-in-rows none 2.04 ms new
 ↳ verify none 7.18 ms new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 none 113.31 ms new
 ↳ build-circuit none 13.46 ms new
 ↳ prove-recursion none 86.74 ms new
 ↳ reduce-claims none 6.60 ms new
 ↳ reduce-in-rows none 1.74 ms new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 none 95.70 ms new
 ↳ build-circuit none 16.96 ms new
 ↳ prove-recursion none 63.17 ms new
 ↳ reduce-claims none 8.67 ms new
 ↳ reduce-in-rows none 2.19 ms new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 none 201.74 ms new
 ↳ build-circuit none 25.77 ms new
 ↳ prove-recursion none 155.23 ms new
 ↳ reduce-claims none 4.49 ms new
 ↳ reduce-in-rows none 3.45 ms new
 ↳ verify none 12.26 ms new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 none 170.53 ms new
 ↳ build-circuit none 38.08 ms new
 ↳ prove-recursion none 105.13 ms new
 ↳ reduce-claims none 7.81 ms new
 ↳ reduce-in-rows none 4.64 ms new
 ↳ verify none 13.48 ms new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 none 218.14 ms new
 ↳ build-circuit none 29.85 ms new
 ↳ prove-recursion none 164.54 ms new
 ↳ reduce-claims none 9.87 ms new
 ↳ reduce-in-rows none 3.71 ms new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 none 187.85 ms new
 ↳ build-circuit none 43.18 ms new
 ↳ prove-recursion none 115.15 ms new
 ↳ reduce-claims none 12.81 ms new
 ↳ reduce-in-rows none 5.10 ms new

leanSPHINCS

Prover stages
benchmark threads runner base this PR change
leansphincs-26 16 arm64 180.95 ms 180.38 ms -0.09% (-2.26% to +0.28%)
 ↳ build-witness 5.68 ms 5.60 ms -1.34% (-15.14% to +0.57%)
 ↳ commit 23.63 ms 23.67 ms +0.09% (-8.39% to +0.95%)
 ↳ execute-program 12.15 ms 11.78 ms -3.23% (-6.30% to -1.44%)
 ↳ flock-reductions 62.21 ms 61.76 ms -0.68% (-0.85% to -0.15%)
 ↳ pcs-open 57.94 ms 58.05 ms +0.15% (-0.10% to +1.89%)
 ↳ prove-bus 14.99 ms 14.92 ms -0.27% (-0.87% to +0.69%)
 ↳ prove-constraints 4.16 ms 4.17 ms +0.69% (-3.33% to +2.29%)
leansphincs-26 16 x86-64 138.29 ms 137.77 ms -0.38% (-9.04% to +6.85%)
 ↳ build-witness 8.63 ms 8.53 ms -1.11% (-6.24% to +5.65%)
 ↳ commit 16.32 ms 16.18 ms -0.67% (-10.96% to +12.73%)
 ↳ execute-program 14.77 ms 15.07 ms +1.26% (+0.52% to +3.27%)
 ↳ flock-reductions 36.56 ms 36.44 ms -0.32% (-12.26% to +7.20%)
 ↳ pcs-open 43.80 ms 43.55 ms -0.58% (-9.59% to +9.84%)
 ↳ prove-bus 12.42 ms 12.25 ms -1.40% (-10.52% to +7.14%)
 ↳ prove-constraints 5.20 ms 5.17 ms -0.59% (-6.60% to +8.08%)

leanXMSS

benchmark threads runner measure base this PR change
aggregate-leanxmss-100-2to1-node 8 x86-64 Proving time 120.89 ms 118.37 ms -1.95% (-7.02% to -0.44%)
aggregate-leanxmss-100-2to1-node 1 x86-64 Verifying time 7.40 ms 7.15 ms -2.41% (-4.60% to -1.19%)
aggregate-leanxmss-100-2to1-node 8 x86-64 Verifying time 3.40 ms 3.34 ms -1.49% (-3.63% to -0.88%)
Prover stages
benchmark threads runner base this PR change
aggregate-leanxmss-100-2to1-first 1 arm64 953.66 ms 952.36 ms -0.15% (-0.47% to -0.13%)
 ↳ build-circuit 12.61 ms 12.58 ms -0.22% (-0.67% to +1.84%)
 ↳ prove-recursion 918.10 ms 916.93 ms -0.13% (-0.50% to -0.08%)
 ↳ reduce-claims 15.63 ms 15.42 ms -0.17% (-3.52% to +1.53%)
 ↳ reduce-in-rows 1.45 ms 1.42 ms -1.20% (-5.68% to -0.51%)
 ↳ verify 5.84 ms 5.86 ms +0.03% (-0.99% to +0.34%)
aggregate-leanxmss-100-2to1-first 16 x86-64 90.02 ms 90.92 ms +3.09% (-4.20% to +10.54%)
 ↳ build-circuit 14.34 ms 14.52 ms +1.22% (-2.09% to +6.85%)
 ↳ prove-recursion 60.27 ms 59.23 ms +4.02% (-9.17% to +14.06%)
 ↳ reduce-claims 6.72 ms 7.56 ms +20.42% (-10.91% to +21.36%)
 ↳ reduce-in-rows 1.85 ms 1.94 ms +7.50% (+2.83% to +9.79%)
 ↳ verify 7.19 ms 7.26 ms +0.30% (-2.22% to +4.95%)
aggregate-leanxmss-100-2to1-node 4 x86-64 190.13 ms 189.87 ms +0.60% (-0.63% to +3.60%)
 ↳ build-circuit 14.77 ms 15.12 ms +1.02% (-0.29% to +4.82%)
 ↳ prove-recursion 155.38 ms 155.12 ms +0.20% (-0.60% to +4.35%)
 ↳ reduce-claims 12.47 ms 11.82 ms +0.03% (-7.58% to +12.57%)
 ↳ reduce-in-rows 1.83 ms 1.93 ms +5.70% (+1.75% to +6.95%)
aggregate-leanxmss-100-2to1-node 8 x86-64 120.89 ms 118.37 ms -1.95% (-7.02% to -0.44%)
 ↳ build-circuit 14.60 ms 14.51 ms -0.61% (-1.71% to +1.31%)
 ↳ prove-recursion 88.39 ms 87.63 ms -0.72% (-8.54% to +0.27%)
 ↳ reduce-claims 9.28 ms 8.88 ms -6.36% (-22.54% to +7.58%)
 ↳ reduce-in-rows 1.89 ms 1.85 ms -0.65% (-3.79% to +0.47%)
aggregate-leanxmss-100-4to1-first 4 x86-64 346.41 ms 346.72 ms +0.26% (-0.60% to +0.40%)
 ↳ build-circuit 30.80 ms 30.49 ms -1.07% (-5.33% to -0.26%)
 ↳ prove-recursion 290.41 ms 290.71 ms +0.14% (-0.21% to +0.38%)
 ↳ reduce-claims 8.74 ms 9.39 ms +2.20% (-1.82% to +12.43%)
 ↳ reduce-in-rows 3.58 ms 3.80 ms +3.89% (+0.59% to +9.19%)
 ↳ verify 12.41 ms 12.53 ms +0.99% (-0.08% to +2.14%)
aggregate-leanxmss-100-4to1-first 16 x86-64 167.50 ms 161.99 ms -3.12% (-5.53% to +4.72%)
 ↳ build-circuit 30.21 ms 29.76 ms -0.71% (-1.71% to +0.14%)
 ↳ prove-recursion 112.54 ms 107.48 ms -4.73% (-7.95% to +6.99%)
 ↳ reduce-claims 7.38 ms 7.72 ms +5.40% (-10.14% to +8.50%)
 ↳ reduce-in-rows 3.54 ms 3.70 ms +3.28% (+0.06% to +8.23%)
 ↳ verify 13.45 ms 13.26 ms -1.15% (-2.63% to +1.31%)
aggregate-leanxmss-100-4to1-node 1 arm64 2.06 s 2.05 s -0.49% (-0.55% to +0.11%)
 ↳ build-circuit 29.47 ms 29.41 ms -0.37% (-1.70% to +0.58%)
 ↳ prove-recursion 1.95 s 1.95 s -0.49% (-0.57% to +0.11%)
 ↳ reduce-claims 56.75 ms 56.31 ms -0.38% (-1.02% to -0.14%)
 ↳ reduce-in-rows 3.03 ms 2.95 ms -2.28% (-3.63% to -0.47%)
aggregate-leanxmss-100-4to1-node 1 x86-64 1.26 s 1.26 s +0.26% (-1.12% to +0.44%)
 ↳ build-circuit 40.44 ms 41.38 ms +1.32% (-4.61% to +5.43%)
 ↳ prove-recursion 1.13 s 1.13 s -0.05% (-0.95% to +0.77%)
 ↳ reduce-claims 63.72 ms 63.65 ms -1.05% (-6.80% to -0.01%)
 ↳ reduce-in-rows 3.81 ms 3.87 ms +1.46% (-7.73% to +5.74%)
aggregate-leanxmss-100-4to1-node 16 x86-64 174.91 ms 168.55 ms -0.90% (-5.34% to +0.44%)
 ↳ build-circuit 34.43 ms 34.43 ms -0.01% (-3.92% to +5.30%)
 ↳ prove-recursion 113.19 ms 107.42 ms -1.47% (-9.68% to +0.58%)
 ↳ reduce-claims 12.89 ms 12.11 ms -2.93% (-6.07% to +7.16%)
 ↳ reduce-in-rows 3.84 ms 3.93 ms +3.56% (+1.49% to +4.24%)
leanxmss-100 4 arm64 482.07 ms 473.41 ms -0.67% (-5.22% to +0.11%)
 ↳ build-witness 12.94 ms 12.81 ms -1.27% (-2.69% to -0.29%)
 ↳ commit 75.78 ms 74.97 ms -0.58% (-9.79% to +1.00%)
 ↳ execute-program 10.53 ms 10.27 ms -0.45% (-4.24% to +3.27%)
 ↳ flock-reductions 170.35 ms 168.47 ms -1.05% (-2.82% to +0.13%)
 ↳ pcs-open 168.16 ms 165.70 ms -0.10% (-8.36% to +0.81%)
 ↳ prove-bus 35.90 ms 35.40 ms +0.15% (-1.39% to +0.87%)
 ↳ prove-constraints 5.58 ms 5.53 ms +0.68% (-1.38% to +4.19%)
leanxmss-100 1 x86-64 1.06 s 1.07 s +0.25% (-0.90% to +0.35%)
 ↳ build-witness 71.70 ms 71.44 ms -0.53% (-2.05% to +1.12%)
 ↳ commit 190.73 ms 191.82 ms +0.35% (-1.86% to +1.34%)
 ↳ execute-program 13.14 ms 13.14 ms +0.04% (-1.96% to +3.69%)
 ↳ flock-reductions 313.46 ms 312.12 ms +0.01% (-1.24% to +0.28%)
 ↳ pcs-open 368.08 ms 369.02 ms +0.38% (-1.23% to +1.14%)
 ↳ prove-bus 86.00 ms 86.50 ms -0.09% (-0.38% to +2.78%)
 ↳ prove-constraints 20.05 ms 20.35 ms +1.46% (+0.27% to +5.16%)
leanxmss-100 16 x86-64 134.68 ms 132.00 ms -0.70% (-3.76% to +0.43%)
 ↳ build-witness 8.59 ms 8.54 ms -0.65% (-2.35% to +0.23%)
 ↳ commit 16.22 ms 14.74 ms -9.06% (-12.17% to -0.11%)
 ↳ execute-program 12.13 ms 12.64 ms +3.14% (+1.10% to +4.18%)
 ↳ flock-reductions 37.19 ms 36.01 ms -2.85% (-4.54% to +0.08%)
 ↳ pcs-open 42.83 ms 42.44 ms -0.73% (-9.62% to +4.14%)
 ↳ prove-bus 11.59 ms 11.87 ms +1.89% (+0.85% to +4.09%)
 ↳ prove-constraints 5.12 ms 5.22 ms +1.92% (-1.95% to +4.21%)
Every result

BLAKE2s

benchmark threads runner CPU measure base this PR change
hash-50000 16 arm64 Neoverse-V2 Proving time 519.43 ms 519.49 ms -0.13% (-0.33% to +2.10%)
hash-50000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 325.10 ms 324.99 ms +0.54% (-3.52% to +8.41%)
hash-50000 16 arm64 Neoverse-V2 Verifying time 3.21 ms 3.21 ms +0.20% (-0.23% to +0.25%)
hash-50000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.32 ms 3.32 ms -0.12% (-0.68% to +0.33%)
blake2s-batch 16 arm64 Neoverse-V2 Time per operation 2.91 ns 2.91 ns +0.03% (-0.65% to +0.93%)
blake2s-batch 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 1.06 ns 1.12 ns +7.28% (-8.03% to +15.95%)
hash-50000 16 arm64 Neoverse-V2 Proof size 322,698 B 322,698 B 0 B (+0.00%)
hash-50000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 322,698 B 322,698 B 0 B (+0.00%)
hash-50000 16 arm64 Neoverse-V2 Peak memory 4980.88 MiB 4981.82 MiB -0.03% (-0.10% to +0.24%)
hash-50000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 2020.11 MiB 2018.34 MiB -0.09% (-0.23% to +0.22%)
hash-50000 16 arm64 Neoverse-V2 Peak heap 4400.33 MiB 4400.27 MiB -0.00% (-0.00% to +0.00%)
hash-50000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 1823.98 MiB 1823.94 MiB -0.01% (-0.01% to +0.00%)
hash-50000 16 arm64 Neoverse-V2 Allocations 16,708 16,708 +0.00% (-0.38% to +0.01%)
hash-50000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 17,356 17,357 +0.00% (-0.01% to +0.01%)
Prover stages
benchmark threads runner CPU base this PR change
hash-50000 16 arm64 Neoverse-V2 519.43 ms 519.49 ms -0.13% (-0.33% to +2.10%)
 ↳ build-witness 19.76 ms 19.79 ms +0.02% (-0.36% to +0.37%)
 ↳ commit 81.83 ms 82.00 ms -0.11% (-0.85% to +0.36%)
 ↳ execute-program 23.55 ms 23.05 ms -1.86% (-4.44% to -1.23%)
 ↳ flock-reductions 169.97 ms 169.95 ms -0.10% (-0.18% to +0.93%)
 ↳ pcs-open 187.36 ms 187.44 ms +0.00% (-0.79% to +2.82%)
 ↳ prove-bus 29.84 ms 29.85 ms +0.26% (-0.08% to +13.76%)
 ↳ prove-constraints 7.04 ms 7.11 ms +1.46% (-1.60% to +6.98%)
hash-50000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N 325.10 ms 324.99 ms +0.54% (-3.52% to +8.41%)
 ↳ build-witness 22.02 ms 21.91 ms -0.09% (-3.93% to +6.05%)
 ↳ commit 45.68 ms 45.29 ms +0.74% (-5.39% to +10.78%)
 ↳ execute-program 29.38 ms 28.92 ms -2.09% (-5.65% to +4.33%)
 ↳ flock-reductions 82.14 ms 83.26 ms -0.03% (-4.62% to +8.71%)
 ↳ pcs-open 118.09 ms 117.90 ms -0.90% (-1.50% to +9.59%)
 ↳ prove-bus 19.67 ms 19.67 ms -0.04% (-2.43% to +9.40%)
 ↳ prove-constraints 8.27 ms 8.31 ms +0.47% (-3.97% to +4.93%)

Fibonacci

benchmark threads runner CPU measure base this PR change
fibonacci-asm-2000000 16 arm64 Neoverse-V2 Proving time 816.70 ms 813.68 ms -0.53% (-0.69% to +2.69%)
fibonacci-asm-2000000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 502.95 ms 501.20 ms -0.56% (-2.17% to +1.60%)
fibonacci-asm-2000000 16 arm64 Neoverse-V2 Verifying time 3.24 ms 3.24 ms +0.14% (-0.17% to +0.27%)
fibonacci-asm-2000000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.38 ms 3.38 ms +0.06% (-0.39% to +0.88%)
fibonacci-asm-2000000 16 arm64 Neoverse-V2 Proof size 364,138 B 364,138 B 0 B (+0.00%)
fibonacci-asm-2000000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 364,138 B 364,138 B 0 B (+0.00%)
fibonacci-asm-2000000 16 arm64 Neoverse-V2 Peak memory 7450.14 MiB 7449.02 MiB -0.01% (-0.08% to +0.07%)
fibonacci-asm-2000000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 3254.71 MiB 3252.44 MiB -0.04% (-0.16% to +0.03%)
fibonacci-asm-2000000 16 arm64 Neoverse-V2 Peak heap 7049.94 MiB 7049.88 MiB -0.00% (-0.00% to +0.00%)
fibonacci-asm-2000000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 2998.77 MiB 2998.70 MiB -0.00% (-0.01% to +0.00%)
fibonacci-asm-2000000 16 arm64 Neoverse-V2 Allocations 11,644 11,644 +0.00% (+0.00% to +0.00%)
fibonacci-asm-2000000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 12,281 12,281 +0.00% (-0.02% to +0.00%)
Prover stages
benchmark threads runner CPU base this PR change
fibonacci-asm-2000000 16 arm64 Neoverse-V2 816.70 ms 813.68 ms -0.53% (-0.69% to +2.69%)
 ↳ build-witness 29.14 ms 29.18 ms +0.11% (-0.55% to +1.82%)
 ↳ commit 124.97 ms 124.57 ms -0.18% (-0.47% to +0.74%)
 ↳ execute-program 62.88 ms 64.44 ms -0.53% (-6.84% to +6.13%)
 ↳ flock-reductions 294.85 ms 293.43 ms -0.49% (-3.35% to +5.02%)
 ↳ pcs-open 232.15 ms 232.50 ms +0.26% (-0.27% to +0.52%)
 ↳ prove-bus 59.27 ms 59.31 ms +0.12% (-0.17% to +9.55%)
 ↳ prove-constraints 10.65 ms 10.72 ms +0.48% (+0.16% to +1.00%)
fibonacci-asm-2000000 16 x86-64 INTEL(R) XEON(R) GOLD 6548N 502.95 ms 501.20 ms -0.56% (-2.17% to +1.60%)
 ↳ build-witness 40.07 ms 39.40 ms -1.11% (-2.82% to -1.08%)
 ↳ commit 69.41 ms 69.25 ms -0.08% (-3.24% to +1.02%)
 ↳ execute-program 70.00 ms 69.91 ms -0.72% (-5.13% to +4.36%)
 ↳ flock-reductions 142.53 ms 141.27 ms -1.09% (-3.18% to +0.32%)
 ↳ pcs-open 130.55 ms 132.00 ms +0.39% (-3.12% to +5.63%)
 ↳ prove-bus 35.98 ms 34.94 ms +0.20% (-4.49% to +1.35%)
 ↳ prove-constraints 14.81 ms 14.76 ms +0.16% (-2.70% to +4.92%)

Field and transpose kernels

benchmark threads runner CPU measure base this PR change
f192-inv default arm64 Neoverse-V2 Time per operation 245.02 ns 245.05 ns +0.01% (-0.02% to +0.11%)
f192-inv default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 232.62 ns 232.23 ns -0.12% (-0.41% to +0.89%)
f192-mul-latency default arm64 Neoverse-V2 Time per operation 7.99 ns 7.99 ns -0.20% (-0.32% to +0.20%)
f192-mul-latency default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 6.69 ns 6.70 ns -0.19% (-1.20% to +0.24%)
f192-mul-throughput default arm64 Neoverse-V2 Time per operation 2.94 ns 2.94 ns -0.03% (-0.37% to +0.10%)
f192-mul-throughput default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 3.88 ns 3.88 ns -0.15% (-4.39% to -0.08%)
f192-mul4-latency default arm64 Neoverse-V2 Time per operation 13.08 ns 12.76 ns -0.70% (-3.48% to +0.50%)
f192-mul4-latency default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 8.87 ns 8.85 ns -0.20% (-0.42% to +0.23%)
f192-mul4-throughput default arm64 Neoverse-V2 Time per operation 10.77 ns 10.77 ns -0.01% (-0.06% to +0.07%)
f192-mul4-throughput default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 13.77 ns 13.73 ns -0.12% (-3.78% to +2.07%)
f192-square default arm64 Neoverse-V2 Time per operation 1.56 ns 1.56 ns +0.19% (-0.38% to +0.19%)
f192-square default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 2.91 ns 2.86 ns -1.27% (-3.44% to +0.49%)
f64-inv default arm64 Neoverse-V2 Time per operation 211.65 ns 211.72 ns -0.02% (-0.47% to +0.10%)
f64-inv default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 209.26 ns 207.52 ns -0.80% (-2.92% to -0.13%)
f64-mul default arm64 Neoverse-V2 Time per operation 0.56 ns 0.56 ns +0.00% (-0.36% to +0.36%)
f64-mul default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 0.77 ns 0.76 ns -2.06% (-2.20% to +1.53%)
f64-square default arm64 Neoverse-V2 Time per operation 0.55 ns 0.55 ns +0.00% (-0.18% to +0.18%)
f64-square default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 0.93 ns 0.93 ns -0.53% (-1.17% to +0.11%)
transpose-64bytes default arm64 Neoverse-V2 Time per operation 12.01 ns 12.00 ns -0.02% (-0.03% to -0.01%)
transpose-64bytes default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 0.71 ns 0.71 ns -0.56% (-10.45% to +0.42%)
transpose-64x64 default arm64 Neoverse-V2 Time per operation 96.63 ns 96.69 ns -0.06% (-0.39% to +0.07%)
transpose-64x64 default x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 64.79 ns 64.78 ns -0.50% (-3.37% to +2.39%)

Flock

benchmark threads runner CPU measure base this PR change
flock-alu-batch-262144 16 arm64 Neoverse-V2 Proving time 51.08 ms 51.06 ms -0.29% (-12.46% to +0.80%)
flock-alu-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 29.42 ms 29.76 ms +2.53% (-4.57% to +9.70%)
flock-div-batch-262144 16 arm64 Neoverse-V2 Proving time 364.94 ms 364.55 ms +0.02% (-2.37% to +0.33%)
flock-div-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 177.26 ms 180.74 ms +1.00% (+0.12% to +13.07%)
flock-hash-batch-262144 16 arm64 Neoverse-V2 Proving time 759.04 ms 758.77 ms -0.04% (-0.31% to +0.98%)
flock-hash-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 369.63 ms 368.01 ms -0.22% (-6.75% to +3.62%)
flock-ld-batch-262144 16 arm64 Neoverse-V2 Proving time 15.63 ms 15.70 ms +0.25% (-1.33% to +5.79%)
flock-ld-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 9.43 ms 9.61 ms +5.60% (-3.37% to +12.50%)
flock-load-batch-262144 16 arm64 Neoverse-V2 Proving time 49.45 ms 49.54 ms +0.18% (-4.51% to +9.82%)
flock-load-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 28.41 ms 28.70 ms +2.31% (-1.00% to +10.34%)
flock-mul-batch-262144 16 arm64 Neoverse-V2 Proving time 186.40 ms 186.41 ms +0.35% (-1.95% to +4.64%)
flock-mul-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 98.19 ms 95.44 ms +0.34% (-5.52% to +2.02%)
flock-mulh-batch-262144 16 arm64 Neoverse-V2 Proving time 358.15 ms 356.48 ms -0.47% (-1.72% to +0.65%)
flock-mulh-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 178.78 ms 180.17 ms -1.84% (-4.32% to +11.25%)
flock-sd-batch-262144 16 arm64 Neoverse-V2 Proving time 16.15 ms 16.24 ms +0.93% (-0.63% to +3.41%)
flock-sd-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 9.68 ms 9.94 ms +4.74% (+0.79% to +15.14%)
flock-shift-batch-262144 16 arm64 Neoverse-V2 Proving time 49.75 ms 49.76 ms +0.03% (-1.09% to +1.43%)
flock-shift-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 28.05 ms 27.94 ms -1.53% (-4.37% to +13.98%)
flock-store-batch-262144 16 arm64 Neoverse-V2 Proving time 49.44 ms 50.16 ms +1.61% (-0.43% to +15.77%)
flock-store-batch-262144 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 27.43 ms 28.60 ms +3.04% (-0.08% to +12.20%)

Other benchmarks

benchmark threads runner CPU measure base this PR change
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Proving time none 107.72 ms new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time none 91.83 ms new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Proving time none 113.31 ms new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time none 95.70 ms new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Proving time none 201.74 ms new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time none 170.53 ms new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Proving time none 218.14 ms new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time none 187.85 ms new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Verifying time none 2.77 ms new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time none 3.10 ms new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Verifying time none 3.07 ms new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time none 3.32 ms new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Verifying time none 3.01 ms new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time none 3.30 ms new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Verifying time none 3.95 ms new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time none 4.26 ms new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Proof size none 257,083 B new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size none 257,083 B new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Proof size none 256,859 B new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size none 256,859 B new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Proof size none 281,239 B new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size none 281,239 B new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Proof size none 280,599 B new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size none 280,599 B new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Peak memory none 1715.02 MiB new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory none 870.95 MiB new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Peak memory none 1729.23 MiB new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory none 907.88 MiB new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Peak memory none 2112.49 MiB new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory none 1071.20 MiB new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Peak memory none 2132.44 MiB new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory none 1118.47 MiB new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Peak heap none 603.47 MiB new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap none 266.00 MiB new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Peak heap none 604.30 MiB new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap none 266.78 MiB new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Peak heap none 1206.71 MiB new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap none 531.62 MiB new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Peak heap none 1208.64 MiB new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap none 533.60 MiB new
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Allocations none 17,583 new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations none 17,700 new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Allocations none 21,307 new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations none 21,416 new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Allocations none 29,666 new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations none 29,827 new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Allocations none 36,492 new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations none 36,653 new
Prover stages
benchmark threads runner CPU base this PR change
aggregate-signers-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 none 107.72 ms new
 ↳ build-circuit none 12.26 ms new
 ↳ prove-recursion none 83.62 ms new
 ↳ reduce-claims none 3.84 ms new
 ↳ reduce-in-rows none 1.62 ms new
 ↳ verify none 6.25 ms new
aggregate-signers-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N none 91.83 ms new
 ↳ build-circuit none 16.33 ms new
 ↳ prove-recursion none 61.36 ms new
 ↳ reduce-claims none 6.46 ms new
 ↳ reduce-in-rows none 2.04 ms new
 ↳ verify none 7.18 ms new
aggregate-signers-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 none 113.31 ms new
 ↳ build-circuit none 13.46 ms new
 ↳ prove-recursion none 86.74 ms new
 ↳ reduce-claims none 6.60 ms new
 ↳ reduce-in-rows none 1.74 ms new
aggregate-signers-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N none 95.70 ms new
 ↳ build-circuit none 16.96 ms new
 ↳ prove-recursion none 63.17 ms new
 ↳ reduce-claims none 8.67 ms new
 ↳ reduce-in-rows none 2.19 ms new
aggregate-signers-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 none 201.74 ms new
 ↳ build-circuit none 25.77 ms new
 ↳ prove-recursion none 155.23 ms new
 ↳ reduce-claims none 4.49 ms new
 ↳ reduce-in-rows none 3.45 ms new
 ↳ verify none 12.26 ms new
aggregate-signers-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N none 170.53 ms new
 ↳ build-circuit none 38.08 ms new
 ↳ prove-recursion none 105.13 ms new
 ↳ reduce-claims none 7.81 ms new
 ↳ reduce-in-rows none 4.64 ms new
 ↳ verify none 13.48 ms new
aggregate-signers-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 none 218.14 ms new
 ↳ build-circuit none 29.85 ms new
 ↳ prove-recursion none 164.54 ms new
 ↳ reduce-claims none 9.87 ms new
 ↳ reduce-in-rows none 3.71 ms new
aggregate-signers-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N none 187.85 ms new
 ↳ build-circuit none 43.18 ms new
 ↳ prove-recursion none 115.15 ms new
 ↳ reduce-claims none 12.81 ms new
 ↳ reduce-in-rows none 5.10 ms new

PCS

benchmark threads runner CPU measure base this PR change
pcs-commit-22 16 arm64 Neoverse-V2 Proving time 7.30 ms 7.15 ms -0.38% (-2.61% to +1.30%)
pcs-commit-22 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 4.88 ms 4.86 ms -1.04% (-14.76% to +15.68%)
pcs-open-22 16 arm64 Neoverse-V2 Proving time 21.14 ms 21.29 ms +1.13% (-0.46% to +1.94%)
pcs-open-22 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 14.20 ms 14.66 ms -1.29% (-11.80% to +7.72%)
ntt-forward-22 16 arm64 Neoverse-V2 Time per operation 3.63 ms 3.62 ms -0.10% (-11.93% to +12.10%)
ntt-forward-22 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Time per operation 2.80 ms 2.73 ms +2.77% (-10.18% to +13.55%)

leanSPHINCS

benchmark threads runner CPU measure base this PR change
leansphincs-26 16 arm64 Neoverse-V2 Proving time 180.95 ms 180.38 ms -0.09% (-2.26% to +0.28%)
leansphincs-26 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 138.29 ms 137.77 ms -0.38% (-9.04% to +6.85%)
leansphincs-26 16 arm64 Neoverse-V2 Verifying time 3.28 ms 3.26 ms -0.26% (-1.13% to +0.39%)
leansphincs-26 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.50 ms 3.46 ms -1.17% (-2.48% to +1.73%)
leansphincs-26 16 arm64 Neoverse-V2 Proof size 316,466 B 316,466 B 0 B (+0.00%)
leansphincs-26 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 316,466 B 316,466 B 0 B (+0.00%)
leansphincs-26 16 arm64 Neoverse-V2 Peak memory 1737.11 MiB 1736.47 MiB -0.02% (-0.60% to +0.14%)
leansphincs-26 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 706.34 MiB 710.28 MiB +0.52% (-1.58% to +1.13%)
leansphincs-26 16 arm64 Neoverse-V2 Peak heap 1395.24 MiB 1395.18 MiB -0.00% (-0.01% to +0.02%)
leansphincs-26 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 587.71 MiB 587.85 MiB +0.02% (-0.01% to +0.04%)
leansphincs-26 16 arm64 Neoverse-V2 Allocations 25,211 25,211 +0.00% (-0.13% to +0.09%)
leansphincs-26 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 25,909 25,910 +0.00% (-0.00% to +0.01%)
Prover stages
benchmark threads runner CPU base this PR change
leansphincs-26 16 arm64 Neoverse-V2 180.95 ms 180.38 ms -0.09% (-2.26% to +0.28%)
 ↳ build-witness 5.68 ms 5.60 ms -1.34% (-15.14% to +0.57%)
 ↳ commit 23.63 ms 23.67 ms +0.09% (-8.39% to +0.95%)
 ↳ execute-program 12.15 ms 11.78 ms -3.23% (-6.30% to -1.44%)
 ↳ flock-reductions 62.21 ms 61.76 ms -0.68% (-0.85% to -0.15%)
 ↳ pcs-open 57.94 ms 58.05 ms +0.15% (-0.10% to +1.89%)
 ↳ prove-bus 14.99 ms 14.92 ms -0.27% (-0.87% to +0.69%)
 ↳ prove-constraints 4.16 ms 4.17 ms +0.69% (-3.33% to +2.29%)
leansphincs-26 16 x86-64 INTEL(R) XEON(R) GOLD 6548N 138.29 ms 137.77 ms -0.38% (-9.04% to +6.85%)
 ↳ build-witness 8.63 ms 8.53 ms -1.11% (-6.24% to +5.65%)
 ↳ commit 16.32 ms 16.18 ms -0.67% (-10.96% to +12.73%)
 ↳ execute-program 14.77 ms 15.07 ms +1.26% (+0.52% to +3.27%)
 ↳ flock-reductions 36.56 ms 36.44 ms -0.32% (-12.26% to +7.20%)
 ↳ pcs-open 43.80 ms 43.55 ms -0.58% (-9.59% to +9.84%)
 ↳ prove-bus 12.42 ms 12.25 ms -1.40% (-10.52% to +7.14%)
 ↳ prove-constraints 5.20 ms 5.17 ms -0.59% (-6.60% to +8.08%)

leanXMSS

benchmark threads runner CPU measure base this PR change
aggregate-leanxmss-100-2to1-first 1 arm64 Neoverse-V2 Proving time 953.66 ms 952.36 ms -0.15% (-0.47% to -0.13%)
aggregate-leanxmss-100-2to1-first 4 arm64 Neoverse-V2 Proving time 267.61 ms 267.00 ms -0.02% (-0.49% to +0.09%)
aggregate-leanxmss-100-2to1-first 8 arm64 Neoverse-V2 Proving time 157.26 ms 156.48 ms -0.40% (-1.15% to +0.12%)
aggregate-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Proving time 103.23 ms 102.94 ms -0.62% (-1.41% to +0.60%)
aggregate-leanxmss-100-2to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 576.35 ms 575.95 ms -0.21% (-0.36% to +1.25%)
aggregate-leanxmss-100-2to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 179.92 ms 179.41 ms -0.27% (-0.36% to -0.13%)
aggregate-leanxmss-100-2to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 113.68 ms 114.10 ms -0.12% (-1.23% to +1.07%)
aggregate-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 90.02 ms 90.92 ms +3.09% (-4.20% to +10.54%)
aggregate-leanxmss-100-2to1-node 1 arm64 Neoverse-V2 Proving time 1.02 s 1.01 s -0.42% (-0.85% to -0.19%)
aggregate-leanxmss-100-2to1-node 4 arm64 Neoverse-V2 Proving time 283.17 ms 283.10 ms -0.02% (-0.07% to +0.09%)
aggregate-leanxmss-100-2to1-node 8 arm64 Neoverse-V2 Proving time 165.52 ms 165.41 ms -0.07% (-0.56% to +0.38%)
aggregate-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Proving time 107.32 ms 107.51 ms +0.18% (-0.53% to +0.51%)
aggregate-leanxmss-100-2to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 614.90 ms 612.62 ms -0.28% (-1.63% to +0.73%)
aggregate-leanxmss-100-2to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 190.13 ms 189.87 ms +0.60% (-0.63% to +3.60%)
aggregate-leanxmss-100-2to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 120.89 ms 118.37 ms -1.95% (-7.02% to -0.44%)
aggregate-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 95.30 ms 92.37 ms -2.00% (-5.09% to +1.85%)
aggregate-leanxmss-100-4to1-first 1 arm64 Neoverse-V2 Proving time 1.89 s 1.88 s -0.17% (-0.76% to +0.08%)
aggregate-leanxmss-100-4to1-first 4 arm64 Neoverse-V2 Proving time 524.46 ms 523.35 ms -0.08% (-1.10% to +0.50%)
aggregate-leanxmss-100-4to1-first 8 arm64 Neoverse-V2 Proving time 300.79 ms 300.89 ms +0.03% (-0.18% to +0.58%)
aggregate-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Proving time 191.64 ms 191.39 ms -0.03% (-0.31% to +0.19%)
aggregate-leanxmss-100-4to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 1.14 s 1.14 s -0.14% (-0.76% to +0.42%)
aggregate-leanxmss-100-4to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 346.41 ms 346.72 ms +0.26% (-0.60% to +0.40%)
aggregate-leanxmss-100-4to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 227.86 ms 226.25 ms -0.38% (-1.00% to +4.49%)
aggregate-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 167.50 ms 161.99 ms -3.12% (-5.53% to +4.72%)
aggregate-leanxmss-100-4to1-node 1 arm64 Neoverse-V2 Proving time 2.06 s 2.05 s -0.49% (-0.55% to +0.11%)
aggregate-leanxmss-100-4to1-node 4 arm64 Neoverse-V2 Proving time 570.34 ms 568.36 ms -0.06% (-0.71% to +0.23%)
aggregate-leanxmss-100-4to1-node 8 arm64 Neoverse-V2 Proving time 325.60 ms 324.31 ms -0.34% (-0.57% to +0.23%)
aggregate-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Proving time 207.57 ms 207.08 ms -0.24% (-0.47% to +0.83%)
aggregate-leanxmss-100-4to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 1.26 s 1.26 s +0.26% (-1.12% to +0.44%)
aggregate-leanxmss-100-4to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 377.40 ms 377.79 ms -0.08% (-0.28% to +5.60%)
aggregate-leanxmss-100-4to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 244.94 ms 244.87 ms +0.29% (-7.69% to +7.42%)
aggregate-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 174.91 ms 168.55 ms -0.90% (-5.34% to +0.44%)
leanxmss-100 1 arm64 Neoverse-V2 Proving time 1.78 s 1.77 s -0.23% (-0.64% to -0.05%)
leanxmss-100 4 arm64 Neoverse-V2 Proving time 482.07 ms 473.41 ms -0.67% (-5.22% to +0.11%)
leanxmss-100 8 arm64 Neoverse-V2 Proving time 264.30 ms 263.97 ms -0.29% (-0.55% to +0.48%)
leanxmss-100 16 arm64 Neoverse-V2 Proving time 162.24 ms 162.30 ms -0.10% (-0.40% to +9.88%)
leanxmss-100 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 1.06 s 1.07 s +0.25% (-0.90% to +0.35%)
leanxmss-100 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 292.77 ms 293.26 ms +0.08% (-0.34% to +0.21%)
leanxmss-100 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 169.38 ms 168.88 ms -1.24% (-6.84% to +6.97%)
leanxmss-100 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proving time 134.68 ms 132.00 ms -0.70% (-3.76% to +0.43%)
aggregate-leanxmss-100-2to1-first 1 arm64 Neoverse-V2 Verifying time 4.01 ms 4.04 ms +0.47% (-0.03% to +0.89%)
aggregate-leanxmss-100-2to1-first 4 arm64 Neoverse-V2 Verifying time 2.84 ms 2.86 ms +0.14% (-0.29% to +3.45%)
aggregate-leanxmss-100-2to1-first 8 arm64 Neoverse-V2 Verifying time 2.72 ms 2.71 ms -0.50% (-1.47% to -0.27%)
aggregate-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Verifying time 2.77 ms 2.77 ms -0.18% (-0.77% to +1.65%)
aggregate-leanxmss-100-2to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 4.00 ms 3.97 ms +0.06% (-2.87% to +2.08%)
aggregate-leanxmss-100-2to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 2.95 ms 2.98 ms -0.29% (-2.14% to +1.02%)
aggregate-leanxmss-100-2to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 2.98 ms 2.94 ms -1.05% (-4.01% to +1.15%)
aggregate-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.26 ms 3.22 ms +0.48% (-4.10% to +2.75%)
aggregate-leanxmss-100-2to1-node 1 arm64 Neoverse-V2 Verifying time 6.76 ms 6.74 ms -0.39% (-2.91% to +1.56%)
aggregate-leanxmss-100-2to1-node 4 arm64 Neoverse-V2 Verifying time 3.60 ms 3.58 ms +0.81% (-0.92% to +1.68%)
aggregate-leanxmss-100-2to1-node 8 arm64 Neoverse-V2 Verifying time 3.16 ms 3.15 ms -0.51% (-1.19% to +0.10%)
aggregate-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Verifying time 3.04 ms 3.06 ms +0.44% (+0.00% to +1.06%)
aggregate-leanxmss-100-2to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 7.40 ms 7.15 ms -2.41% (-4.60% to -1.19%)
aggregate-leanxmss-100-2to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.96 ms 3.89 ms -1.02% (-2.33% to +0.98%)
aggregate-leanxmss-100-2to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.40 ms 3.34 ms -1.49% (-3.63% to -0.88%)
aggregate-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.42 ms 3.38 ms -2.22% (-3.64% to +3.14%)
aggregate-leanxmss-100-4to1-first 1 arm64 Neoverse-V2 Verifying time 4.86 ms 4.86 ms -0.07% (-0.31% to +0.58%)
aggregate-leanxmss-100-4to1-first 4 arm64 Neoverse-V2 Verifying time 3.33 ms 3.39 ms +1.83% (-3.35% to +3.95%)
aggregate-leanxmss-100-4to1-first 8 arm64 Neoverse-V2 Verifying time 2.99 ms 2.99 ms +0.00% (-0.63% to +1.11%)
aggregate-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Verifying time 2.98 ms 2.98 ms +0.21% (-0.93% to +0.59%)
aggregate-leanxmss-100-4to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 4.73 ms 4.66 ms -0.75% (-8.43% to +2.17%)
aggregate-leanxmss-100-4to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.21 ms 3.19 ms +0.71% (-2.54% to +4.29%)
aggregate-leanxmss-100-4to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.34 ms 3.31 ms -0.43% (-1.71% to +1.20%)
aggregate-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.24 ms 3.23 ms +0.31% (-2.61% to +4.08%)
aggregate-leanxmss-100-4to1-node 1 arm64 Neoverse-V2 Verifying time 10.32 ms 10.22 ms -0.70% (-4.50% to +0.29%)
aggregate-leanxmss-100-4to1-node 4 arm64 Neoverse-V2 Verifying time 4.82 ms 4.76 ms -1.11% (-5.21% to +4.70%)
aggregate-leanxmss-100-4to1-node 8 arm64 Neoverse-V2 Verifying time 3.81 ms 3.83 ms +0.44% (-0.35% to +1.44%)
aggregate-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Verifying time 3.48 ms 3.47 ms -0.19% (-0.62% to +0.92%)
aggregate-leanxmss-100-4to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 11.68 ms 11.53 ms -0.98% (-2.71% to +0.87%)
aggregate-leanxmss-100-4to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 5.17 ms 5.16 ms -0.18% (-1.49% to +1.16%)
aggregate-leanxmss-100-4to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 4.39 ms 4.35 ms +0.19% (-2.54% to +2.27%)
aggregate-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.78 ms 3.78 ms +0.05% (-0.67% to +1.89%)
leanxmss-100 1 arm64 Neoverse-V2 Verifying time 3.07 ms 3.09 ms +0.55% (-0.02% to +1.13%)
leanxmss-100 4 arm64 Neoverse-V2 Verifying time 3.07 ms 3.02 ms +0.14% (-3.12% to +0.49%)
leanxmss-100 8 arm64 Neoverse-V2 Verifying time 3.08 ms 3.07 ms -0.37% (-0.98% to +0.81%)
leanxmss-100 16 arm64 Neoverse-V2 Verifying time 3.25 ms 3.24 ms -0.39% (-0.65% to +0.29%)
leanxmss-100 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.34 ms 3.32 ms -0.72% (-6.65% to -0.41%)
leanxmss-100 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.10 ms 3.16 ms +1.63% (-0.46% to +3.22%)
leanxmss-100 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.09 ms 3.19 ms +0.87% (-4.45% to +4.62%)
leanxmss-100 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Verifying time 3.51 ms 3.50 ms +0.12% (-0.74% to +1.70%)
aggregate-leanxmss-100-2to1-first 1 arm64 Neoverse-V2 Proof size 256,731 B 256,731 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-first 4 arm64 Neoverse-V2 Proof size 256,731 B 256,731 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-first 8 arm64 Neoverse-V2 Proof size 256,731 B 256,731 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Proof size 256,731 B 256,731 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 256,731 B 256,731 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 256,731 B 256,731 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 256,731 B 256,731 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 256,731 B 256,731 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-node 1 arm64 Neoverse-V2 Proof size 256,379 B 256,379 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-node 4 arm64 Neoverse-V2 Proof size 256,379 B 256,379 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-node 8 arm64 Neoverse-V2 Proof size 256,379 B 256,379 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Proof size 256,379 B 256,379 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 256,379 B 256,379 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 256,379 B 256,379 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 256,379 B 256,379 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 256,379 B 256,379 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-first 1 arm64 Neoverse-V2 Proof size 280,703 B 280,703 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-first 4 arm64 Neoverse-V2 Proof size 280,703 B 280,703 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-first 8 arm64 Neoverse-V2 Proof size 280,703 B 280,703 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Proof size 280,703 B 280,703 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 280,703 B 280,703 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 280,703 B 280,703 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 280,703 B 280,703 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 280,703 B 280,703 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-node 1 arm64 Neoverse-V2 Proof size 280,863 B 280,863 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-node 4 arm64 Neoverse-V2 Proof size 280,863 B 280,863 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-node 8 arm64 Neoverse-V2 Proof size 280,863 B 280,863 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Proof size 280,863 B 280,863 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 280,863 B 280,863 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 280,863 B 280,863 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 280,863 B 280,863 B 0 B (+0.00%)
aggregate-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 280,863 B 280,863 B 0 B (+0.00%)
leanxmss-100 1 arm64 Neoverse-V2 Proof size 303,762 B 303,762 B 0 B (+0.00%)
leanxmss-100 4 arm64 Neoverse-V2 Proof size 303,762 B 303,762 B 0 B (+0.00%)
leanxmss-100 8 arm64 Neoverse-V2 Proof size 303,762 B 303,762 B 0 B (+0.00%)
leanxmss-100 16 arm64 Neoverse-V2 Proof size 303,762 B 303,762 B 0 B (+0.00%)
leanxmss-100 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 303,762 B 303,762 B 0 B (+0.00%)
leanxmss-100 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 303,762 B 303,762 B 0 B (+0.00%)
leanxmss-100 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 303,762 B 303,762 B 0 B (+0.00%)
leanxmss-100 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Proof size 303,762 B 303,762 B 0 B (+0.00%)
aggregate-leanxmss-100-2to1-first 1 arm64 Neoverse-V2 Peak memory 1584.91 MiB 1585.23 MiB +0.02% (-0.10% to +0.02%)
aggregate-leanxmss-100-2to1-first 4 arm64 Neoverse-V2 Peak memory 1606.62 MiB 1604.30 MiB -0.27% (-0.33% to -0.10%)
aggregate-leanxmss-100-2to1-first 8 arm64 Neoverse-V2 Peak memory 1634.34 MiB 1631.53 MiB -0.21% (-0.56% to +0.27%)
aggregate-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Peak memory 1724.15 MiB 1720.75 MiB -0.33% (-0.62% to +0.26%)
aggregate-leanxmss-100-2to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 775.13 MiB 775.38 MiB +0.03% (-0.23% to +0.29%)
aggregate-leanxmss-100-2to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 805.28 MiB 806.05 MiB -0.39% (-0.76% to +0.46%)
aggregate-leanxmss-100-2to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 831.87 MiB 831.23 MiB -0.23% (-0.30% to +1.21%)
aggregate-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 869.48 MiB 871.67 MiB +0.47% (-0.23% to +0.63%)
aggregate-leanxmss-100-2to1-node 1 arm64 Neoverse-V2 Peak memory 1585.16 MiB 1585.40 MiB +0.02% (-0.10% to +0.02%)
aggregate-leanxmss-100-2to1-node 4 arm64 Neoverse-V2 Peak memory 1608.87 MiB 1606.21 MiB -0.23% (-0.36% to -0.07%)
aggregate-leanxmss-100-2to1-node 8 arm64 Neoverse-V2 Peak memory 1637.59 MiB 1636.13 MiB -0.16% (-0.46% to +0.16%)
aggregate-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Peak memory 1743.52 MiB 1744.98 MiB +0.09% (-1.04% to +0.47%)
aggregate-leanxmss-100-2to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 775.13 MiB 775.38 MiB +0.03% (-0.23% to +0.29%)
aggregate-leanxmss-100-2to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 813.07 MiB 813.80 MiB +0.09% (-0.65% to +0.96%)
aggregate-leanxmss-100-2to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 848.21 MiB 849.79 MiB -0.05% (-0.67% to +0.89%)
aggregate-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 908.21 MiB 908.70 MiB -0.38% (-0.59% to +1.24%)
aggregate-leanxmss-100-4to1-first 1 arm64 Neoverse-V2 Peak memory 1779.04 MiB 1779.33 MiB +0.01% (-0.00% to +0.03%)
aggregate-leanxmss-100-4to1-first 4 arm64 Neoverse-V2 Peak memory 1801.83 MiB 1800.04 MiB -0.10% (-0.22% to -0.00%)
aggregate-leanxmss-100-4to1-first 8 arm64 Neoverse-V2 Peak memory 1830.30 MiB 1830.65 MiB +0.02% (-0.26% to +0.16%)
aggregate-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Peak memory 1916.85 MiB 1917.86 MiB +0.18% (-0.17% to +0.37%)
aggregate-leanxmss-100-4to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 961.13 MiB 961.38 MiB +0.03% (-0.18% to +0.26%)
aggregate-leanxmss-100-4to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 997.17 MiB 998.71 MiB +0.08% (-0.08% to +0.35%)
aggregate-leanxmss-100-4to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 1022.69 MiB 1022.75 MiB -0.10% (-0.45% to +1.03%)
aggregate-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 1071.51 MiB 1071.53 MiB +0.08% (-0.31% to +0.80%)
aggregate-leanxmss-100-4to1-node 1 arm64 Neoverse-V2 Peak memory 1780.12 MiB 1779.98 MiB -0.01% (-0.12% to +0.34%)
aggregate-leanxmss-100-4to1-node 4 arm64 Neoverse-V2 Peak memory 1803.08 MiB 1801.29 MiB -0.10% (-0.22% to +0.04%)
aggregate-leanxmss-100-4to1-node 8 arm64 Neoverse-V2 Peak memory 1838.34 MiB 1837.65 MiB -0.01% (-0.32% to +0.24%)
aggregate-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Peak memory 1926.94 MiB 1931.86 MiB +0.16% (+0.05% to +0.26%)
aggregate-leanxmss-100-4to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 987.13 MiB 987.38 MiB +0.05% (-0.15% to +0.20%)
aggregate-leanxmss-100-4to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 1012.74 MiB 1011.57 MiB -0.12% (-0.68% to +0.07%)
aggregate-leanxmss-100-4to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 1044.07 MiB 1046.31 MiB -0.01% (-0.59% to +0.77%)
aggregate-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 1111.07 MiB 1111.48 MiB +0.03% (-1.49% to +1.08%)
leanxmss-100 1 arm64 Neoverse-V2 Peak memory 1404.97 MiB 1404.64 MiB -0.16% (-0.30% to +0.13%)
leanxmss-100 4 arm64 Neoverse-V2 Peak memory 1431.28 MiB 1428.43 MiB -0.19% (-0.35% to +0.00%)
leanxmss-100 8 arm64 Neoverse-V2 Peak memory 1462.36 MiB 1460.73 MiB -0.02% (-0.59% to +0.17%)
leanxmss-100 16 arm64 Neoverse-V2 Peak memory 1528.91 MiB 1533.32 MiB +0.39% (-0.88% to +0.40%)
leanxmss-100 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 586.88 MiB 586.88 MiB -0.04% (-0.64% to +0.38%)
leanxmss-100 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 610.43 MiB 606.82 MiB -0.50% (-0.67% to -0.16%)
leanxmss-100 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 627.76 MiB 628.27 MiB +0.08% (-0.39% to +0.72%)
leanxmss-100 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak memory 654.21 MiB 654.50 MiB +0.07% (+0.00% to +0.26%)
aggregate-leanxmss-100-2to1-first 1 arm64 Neoverse-V2 Peak heap 602.79 MiB 602.79 MiB +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-first 4 arm64 Neoverse-V2 Peak heap 602.85 MiB 602.84 MiB -0.00% (-0.02% to +0.01%)
aggregate-leanxmss-100-2to1-first 8 arm64 Neoverse-V2 Peak heap 602.78 MiB 602.78 MiB -0.00% (-0.01% to +0.01%)
aggregate-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Peak heap 602.88 MiB 602.92 MiB +0.01% (-0.04% to +0.02%)
aggregate-leanxmss-100-2to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 265.26 MiB 265.26 MiB +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 265.33 MiB 265.31 MiB -0.03% (-0.06% to +0.05%)
aggregate-leanxmss-100-2to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 265.38 MiB 265.32 MiB -0.01% (-0.05% to +0.00%)
aggregate-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 265.34 MiB 265.31 MiB -0.02% (-0.06% to +0.09%)
aggregate-leanxmss-100-2to1-node 1 arm64 Neoverse-V2 Peak heap 602.50 MiB 602.50 MiB +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 4 arm64 Neoverse-V2 Peak heap 602.56 MiB 602.54 MiB -0.00% (-0.01% to +0.00%)
aggregate-leanxmss-100-2to1-node 8 arm64 Neoverse-V2 Peak heap 602.50 MiB 602.52 MiB +0.00% (-0.01% to +0.03%)
aggregate-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Peak heap 602.60 MiB 602.63 MiB +0.01% (-0.04% to +0.02%)
aggregate-leanxmss-100-2to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 264.98 MiB 264.98 MiB +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 265.04 MiB 265.04 MiB -0.00% (-0.01% to +0.02%)
aggregate-leanxmss-100-2to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 264.98 MiB 265.05 MiB +0.03% (+0.01% to +0.04%)
aggregate-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 265.06 MiB 265.06 MiB +0.00% (-0.13% to +0.05%)
aggregate-leanxmss-100-4to1-first 1 arm64 Neoverse-V2 Peak heap 1205.49 MiB 1205.49 MiB +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 4 arm64 Neoverse-V2 Peak heap 1205.55 MiB 1205.55 MiB +0.00% (-0.00% to +0.01%)
aggregate-leanxmss-100-4to1-first 8 arm64 Neoverse-V2 Peak heap 1205.52 MiB 1205.49 MiB -0.00% (-0.01% to +0.00%)
aggregate-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Peak heap 1205.59 MiB 1205.54 MiB +0.00% (-0.01% to +0.00%)
aggregate-leanxmss-100-4to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 530.46 MiB 530.46 MiB +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 530.48 MiB 530.46 MiB -0.00% (-0.02% to +0.01%)
aggregate-leanxmss-100-4to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 530.41 MiB 530.41 MiB -0.00% (-0.03% to +0.02%)
aggregate-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 530.45 MiB 530.44 MiB +0.00% (-0.04% to +0.02%)
aggregate-leanxmss-100-4to1-node 1 arm64 Neoverse-V2 Peak heap 1205.01 MiB 1205.01 MiB +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 4 arm64 Neoverse-V2 Peak heap 1205.07 MiB 1205.03 MiB -0.00% (-0.01% to +0.00%)
aggregate-leanxmss-100-4to1-node 8 arm64 Neoverse-V2 Peak heap 1205.04 MiB 1205.06 MiB +0.01% (-0.00% to +0.01%)
aggregate-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Peak heap 1205.07 MiB 1205.12 MiB +0.00% (-0.00% to +0.01%)
aggregate-leanxmss-100-4to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 529.99 MiB 529.99 MiB +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 530.01 MiB 530.00 MiB -0.01% (-0.02% to +0.02%)
aggregate-leanxmss-100-4to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 529.96 MiB 529.92 MiB -0.01% (-0.05% to +0.03%)
aggregate-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 529.98 MiB 529.87 MiB -0.02% (-0.03% to +0.06%)
leanxmss-100 1 arm64 Neoverse-V2 Peak heap 1200.93 MiB 1200.93 MiB +0.00% (+0.00% to +0.00%)
leanxmss-100 4 arm64 Neoverse-V2 Peak heap 1200.96 MiB 1200.98 MiB +0.00% (-0.00% to +0.01%)
leanxmss-100 8 arm64 Neoverse-V2 Peak heap 1200.98 MiB 1201.02 MiB +0.01% (-0.01% to +0.01%)
leanxmss-100 16 arm64 Neoverse-V2 Peak heap 1201.21 MiB 1201.25 MiB +0.00% (-0.01% to +0.01%)
leanxmss-100 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 504.34 MiB 504.34 MiB +0.00% (+0.00% to +0.00%)
leanxmss-100 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 504.43 MiB 504.43 MiB +0.00% (-0.01% to +0.02%)
leanxmss-100 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 504.48 MiB 504.47 MiB -0.01% (-0.03% to +0.01%)
leanxmss-100 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Peak heap 504.60 MiB 504.59 MiB -0.00% (-0.03% to +0.01%)
aggregate-leanxmss-100-2to1-first 1 arm64 Neoverse-V2 Allocations 16,785 16,785 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-first 4 arm64 Neoverse-V2 Allocations 16,911 16,911 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-first 8 arm64 Neoverse-V2 Allocations 17,055 17,055 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 Allocations 17,343 17,343 +0.00% (+0.00% to +0.11%)
aggregate-leanxmss-100-2to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 16,887 16,887 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 17,016 17,016 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 17,164 17,164 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 17,460 17,460 +0.00% (-0.01% to +0.00%)
aggregate-leanxmss-100-2to1-node 1 arm64 Neoverse-V2 Allocations 20,496 20,496 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 4 arm64 Neoverse-V2 Allocations 20,622 20,622 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 8 arm64 Neoverse-V2 Allocations 20,766 20,766 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 Allocations 21,054 21,054 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 20,590 20,590 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 20,719 20,719 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 20,867 20,867 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 21,163 21,163 +0.00% (+0.00% to +0.02%)
aggregate-leanxmss-100-4to1-first 1 arm64 Neoverse-V2 Allocations 28,729 28,729 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 4 arm64 Neoverse-V2 Allocations 28,867 28,867 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 8 arm64 Neoverse-V2 Allocations 29,051 29,051 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 Allocations 29,371 29,371 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 28,875 28,875 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 29,016 29,016 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 29,204 29,204 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 29,532 29,532 +0.00% (+0.00% to +0.01%)
aggregate-leanxmss-100-4to1-node 1 arm64 Neoverse-V2 Allocations 35,514 35,514 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 4 arm64 Neoverse-V2 Allocations 35,652 35,652 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 8 arm64 Neoverse-V2 Allocations 35,836 35,836 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 Allocations 36,156 36,156 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 35,660 35,660 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 35,801 35,801 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 35,989 35,989 +0.00% (+0.00% to +0.00%)
aggregate-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 36,317 36,317 +0.00% (+0.00% to +0.00%)
leanxmss-100 1 arm64 Neoverse-V2 Allocations 24,847 24,847 +0.00% (+0.00% to +0.00%)
leanxmss-100 4 arm64 Neoverse-V2 Allocations 25,065 25,065 +0.00% (+0.00% to +0.00%)
leanxmss-100 8 arm64 Neoverse-V2 Allocations 25,301 25,301 +0.00% (+0.00% to +0.00%)
leanxmss-100 16 arm64 Neoverse-V2 Allocations 25,773 25,773 +0.00% (-0.21% to +0.00%)
leanxmss-100 1 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 25,365 25,365 +0.00% (+0.00% to +0.00%)
leanxmss-100 4 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 25,620 25,620 +0.00% (+0.00% to +0.00%)
leanxmss-100 8 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 25,903 25,904 +0.00% (-0.00% to +0.01%)
leanxmss-100 16 x86-64 INTEL(R) XEON(R) GOLD 6548N Allocations 26,471 26,472 +0.00% (-0.01% to +0.02%)
Prover stages
benchmark threads runner CPU base this PR change
aggregate-leanxmss-100-2to1-first 1 arm64 Neoverse-V2 953.66 ms 952.36 ms -0.15% (-0.47% to -0.13%)
 ↳ build-circuit 12.61 ms 12.58 ms -0.22% (-0.67% to +1.84%)
 ↳ prove-recursion 918.10 ms 916.93 ms -0.13% (-0.50% to -0.08%)
 ↳ reduce-claims 15.63 ms 15.42 ms -0.17% (-3.52% to +1.53%)
 ↳ reduce-in-rows 1.45 ms 1.42 ms -1.20% (-5.68% to -0.51%)
 ↳ verify 5.84 ms 5.86 ms +0.03% (-0.99% to +0.34%)
aggregate-leanxmss-100-2to1-first 4 arm64 Neoverse-V2 267.61 ms 267.00 ms -0.02% (-0.49% to +0.09%)
 ↳ build-circuit 10.59 ms 10.65 ms +0.52% (-1.54% to +1.77%)
 ↳ prove-recursion 244.24 ms 243.74 ms -0.05% (-0.36% to +0.01%)
 ↳ reduce-claims 5.35 ms 5.22 ms -0.99% (-6.52% to +3.64%)
 ↳ reduce-in-rows 1.48 ms 1.45 ms -0.28% (-3.53% to +2.85%)
 ↳ verify 5.74 ms 5.74 ms -0.26% (-0.75% to +0.25%)
aggregate-leanxmss-100-2to1-first 8 arm64 Neoverse-V2 157.26 ms 156.48 ms -0.40% (-1.15% to +0.12%)
 ↳ build-circuit 10.24 ms 10.22 ms -0.20% (-1.13% to +1.95%)
 ↳ prove-recursion 135.10 ms 134.68 ms -0.31% (-0.94% to +0.05%)
 ↳ reduce-claims 4.48 ms 4.27 ms -4.10% (-9.11% to +6.80%)
 ↳ reduce-in-rows 1.45 ms 1.44 ms -1.22% (-4.79% to +0.76%)
 ↳ verify 5.89 ms 5.83 ms -0.86% (-1.86% to +1.12%)
aggregate-leanxmss-100-2to1-first 16 arm64 Neoverse-V2 103.23 ms 102.94 ms -0.62% (-1.41% to +0.60%)
 ↳ build-circuit 10.28 ms 10.36 ms +0.65% (-0.20% to +1.17%)
 ↳ prove-recursion 81.02 ms 80.80 ms -0.39% (-2.07% to +0.21%)
 ↳ reduce-claims 4.05 ms 3.97 ms +0.20% (-15.15% to +6.06%)
 ↳ reduce-in-rows 1.44 ms 1.47 ms +1.79% (-3.52% to +5.39%)
 ↳ verify 6.21 ms 6.22 ms +0.24% (+0.15% to +1.31%)
aggregate-leanxmss-100-2to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N 576.35 ms 575.95 ms -0.21% (-0.36% to +1.25%)
 ↳ build-circuit 14.77 ms 14.92 ms +0.99% (-0.95% to +1.99%)
 ↳ prove-recursion 534.23 ms 533.72 ms -0.17% (-0.38% to +1.12%)
 ↳ reduce-claims 18.38 ms 18.30 ms -0.81% (-0.96% to +5.70%)
 ↳ reduce-in-rows 1.82 ms 1.86 ms +2.33% (-3.77% to +6.23%)
 ↳ verify 6.98 ms 6.81 ms -1.13% (-3.95% to +5.07%)
aggregate-leanxmss-100-2to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N 179.92 ms 179.41 ms -0.27% (-0.36% to -0.13%)
 ↳ build-circuit 14.08 ms 14.16 ms +1.13% (-0.61% to +3.43%)
 ↳ prove-recursion 150.12 ms 150.32 ms +0.15% (-0.45% to +0.58%)
 ↳ reduce-claims 7.40 ms 6.46 ms -8.63% (-22.89% to +2.09%)
 ↳ reduce-in-rows 1.81 ms 1.87 ms +3.00% (-3.88% to +6.12%)
 ↳ verify 6.47 ms 6.55 ms +0.93% (+0.19% to +1.76%)
aggregate-leanxmss-100-2to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N 113.68 ms 114.10 ms -0.12% (-1.23% to +1.07%)
 ↳ build-circuit 13.58 ms 13.83 ms +1.23% (-2.80% to +5.70%)
 ↳ prove-recursion 85.44 ms 85.30 ms -0.16% (-0.61% to +0.63%)
 ↳ reduce-claims 6.12 ms 6.14 ms -12.33% (-17.82% to +16.97%)
 ↳ reduce-in-rows 1.76 ms 1.84 ms +4.84% (-6.53% to +6.35%)
 ↳ verify 6.62 ms 6.69 ms +0.74% (+0.03% to +1.12%)
aggregate-leanxmss-100-2to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N 90.02 ms 90.92 ms +3.09% (-4.20% to +10.54%)
 ↳ build-circuit 14.34 ms 14.52 ms +1.22% (-2.09% to +6.85%)
 ↳ prove-recursion 60.27 ms 59.23 ms +4.02% (-9.17% to +14.06%)
 ↳ reduce-claims 6.72 ms 7.56 ms +20.42% (-10.91% to +21.36%)
 ↳ reduce-in-rows 1.85 ms 1.94 ms +7.50% (+2.83% to +9.79%)
 ↳ verify 7.19 ms 7.26 ms +0.30% (-2.22% to +4.95%)
aggregate-leanxmss-100-2to1-node 1 arm64 Neoverse-V2 1.02 s 1.01 s -0.42% (-0.85% to -0.19%)
 ↳ build-circuit 12.48 ms 12.53 ms +0.25% (-2.17% to +1.99%)
 ↳ prove-recursion 965.74 ms 960.87 ms -0.50% (-0.84% to -0.20%)
 ↳ reduce-claims 31.05 ms 30.93 ms -0.43% (-0.89% to +0.75%)
 ↳ reduce-in-rows 1.53 ms 1.53 ms -0.25% (-3.91% to +5.67%)
aggregate-leanxmss-100-2to1-node 4 arm64 Neoverse-V2 283.17 ms 283.10 ms -0.02% (-0.07% to +0.09%)
 ↳ build-circuit 11.55 ms 11.70 ms +1.14% (-0.59% to +3.49%)
 ↳ prove-recursion 254.57 ms 254.72 ms -0.06% (-0.25% to +0.06%)
 ↳ reduce-claims 10.47 ms 10.51 ms -0.08% (-1.80% to +1.17%)
 ↳ reduce-in-rows 1.52 ms 1.50 ms -1.19% (-3.29% to +2.80%)
aggregate-leanxmss-100-2to1-node 8 arm64 Neoverse-V2 165.52 ms 165.41 ms -0.07% (-0.56% to +0.38%)
 ↳ build-circuit 11.30 ms 11.32 ms +0.14% (-1.81% to +1.59%)
 ↳ prove-recursion 140.12 ms 139.85 ms +0.02% (-0.34% to +0.19%)
 ↳ reduce-claims 8.04 ms 8.02 ms -1.55% (-5.30% to +3.70%)
 ↳ reduce-in-rows 1.53 ms 1.55 ms -0.03% (-2.70% to +2.96%)
aggregate-leanxmss-100-2to1-node 16 arm64 Neoverse-V2 107.32 ms 107.51 ms +0.18% (-0.53% to +0.51%)
 ↳ build-circuit 11.38 ms 11.30 ms -0.80% (-1.95% to +0.13%)
 ↳ prove-recursion 83.25 ms 83.38 ms +0.26% (-0.34% to +0.67%)
 ↳ reduce-claims 6.66 ms 6.65 ms +1.35% (-3.11% to +3.59%)
 ↳ reduce-in-rows 1.51 ms 1.50 ms +0.13% (-4.52% to +2.15%)
aggregate-leanxmss-100-2to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N 614.90 ms 612.62 ms -0.28% (-1.63% to +0.73%)
 ↳ build-circuit 15.74 ms 15.57 ms -1.13% (-5.09% to +7.38%)
 ↳ prove-recursion 557.42 ms 555.45 ms -0.20% (-1.64% to +0.80%)
 ↳ reduce-claims 33.15 ms 32.93 ms -1.32% (-4.34% to +2.50%)
 ↳ reduce-in-rows 1.80 ms 1.83 ms +2.59% (-3.47% to +6.89%)
aggregate-leanxmss-100-2to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N 190.13 ms 189.87 ms +0.60% (-0.63% to +3.60%)
 ↳ build-circuit 14.77 ms 15.12 ms +1.02% (-0.29% to +4.82%)
 ↳ prove-recursion 155.38 ms 155.12 ms +0.20% (-0.60% to +4.35%)
 ↳ reduce-claims 12.47 ms 11.82 ms +0.03% (-7.58% to +12.57%)
 ↳ reduce-in-rows 1.83 ms 1.93 ms +5.70% (+1.75% to +6.95%)
aggregate-leanxmss-100-2to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N 120.89 ms 118.37 ms -1.95% (-7.02% to -0.44%)
 ↳ build-circuit 14.60 ms 14.51 ms -0.61% (-1.71% to +1.31%)
 ↳ prove-recursion 88.39 ms 87.63 ms -0.72% (-8.54% to +0.27%)
 ↳ reduce-claims 9.28 ms 8.88 ms -6.36% (-22.54% to +7.58%)
 ↳ reduce-in-rows 1.89 ms 1.85 ms -0.65% (-3.79% to +0.47%)
aggregate-leanxmss-100-2to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N 95.30 ms 92.37 ms -2.00% (-5.09% to +1.85%)
 ↳ build-circuit 15.11 ms 15.29 ms +1.05% (-1.37% to +4.46%)
 ↳ prove-recursion 63.63 ms 61.97 ms -0.07% (-6.85% to +2.19%)
 ↳ reduce-claims 8.68 ms 8.02 ms -9.12% (-32.95% to +2.86%)
 ↳ reduce-in-rows 1.95 ms 1.95 ms +0.90% (-2.91% to +4.64%)
aggregate-leanxmss-100-4to1-first 1 arm64 Neoverse-V2 1.89 s 1.88 s -0.17% (-0.76% to +0.08%)
 ↳ build-circuit 25.32 ms 25.21 ms -0.61% (-0.82% to +0.14%)
 ↳ prove-recursion 1.83 s 1.82 s -0.13% (-0.76% to +0.07%)
 ↳ reduce-claims 21.14 ms 20.95 ms -0.86% (-2.32% to +0.82%)
 ↳ reduce-in-rows 2.84 ms 2.77 ms -2.62% (-3.99% to +1.33%)
 ↳ verify 11.49 ms 11.51 ms +0.21% (-0.74% to +0.54%)
aggregate-leanxmss-100-4to1-first 4 arm64 Neoverse-V2 524.46 ms 523.35 ms -0.08% (-1.10% to +0.50%)
 ↳ build-circuit 22.57 ms 21.98 ms -2.67% (-4.48% to +1.87%)
 ↳ prove-recursion 480.14 ms 480.37 ms +0.05% (-0.96% to +0.44%)
 ↳ reduce-claims 6.93 ms 7.04 ms +1.11% (-2.18% to +5.47%)
 ↳ reduce-in-rows 2.92 ms 2.93 ms +0.19% (-4.14% to +2.48%)
 ↳ verify 11.55 ms 11.43 ms -1.60% (-2.83% to +1.40%)
aggregate-leanxmss-100-4to1-first 8 arm64 Neoverse-V2 300.79 ms 300.89 ms +0.03% (-0.18% to +0.58%)
 ↳ build-circuit 20.98 ms 21.04 ms +0.28% (-0.40% to +1.42%)
 ↳ prove-recursion 260.30 ms 260.14 ms -0.03% (-0.26% to +0.45%)
 ↳ reduce-claims 5.36 ms 5.40 ms +1.80% (-1.58% to +3.62%)
 ↳ reduce-in-rows 2.85 ms 2.85 ms -0.05% (-1.92% to +0.91%)
 ↳ verify 11.47 ms 11.56 ms +0.74% (+0.43% to +1.50%)
aggregate-leanxmss-100-4to1-first 16 arm64 Neoverse-V2 191.64 ms 191.39 ms -0.03% (-0.31% to +0.19%)
 ↳ build-circuit 20.88 ms 20.90 ms -0.06% (-0.42% to +0.82%)
 ↳ prove-recursion 150.70 ms 150.63 ms -0.07% (-0.25% to +0.15%)
 ↳ reduce-claims 4.79 ms 4.69 ms -1.09% (-6.33% to +11.61%)
 ↳ reduce-in-rows 2.83 ms 2.80 ms +0.14% (-2.71% to +2.26%)
 ↳ verify 12.23 ms 12.18 ms -0.24% (-0.83% to +0.98%)
aggregate-leanxmss-100-4to1-first 1 x86-64 INTEL(R) XEON(R) GOLD 6548N 1.14 s 1.14 s -0.14% (-0.76% to +0.42%)
 ↳ build-circuit 33.30 ms 32.62 ms -1.25% (-4.83% to +0.28%)
 ↳ prove-recursion 1.07 s 1.06 s -0.12% (-0.81% to +0.34%)
 ↳ reduce-claims 25.71 ms 25.68 ms +0.15% (-0.67% to +0.50%)
 ↳ reduce-in-rows 3.73 ms 3.85 ms +3.62% (-1.39% to +6.51%)
 ↳ verify 12.81 ms 12.95 ms -0.65% (-1.58% to +11.08%)
aggregate-leanxmss-100-4to1-first 4 x86-64 INTEL(R) XEON(R) GOLD 6548N 346.41 ms 346.72 ms +0.26% (-0.60% to +0.40%)
 ↳ build-circuit 30.80 ms 30.49 ms -1.07% (-5.33% to -0.26%)
 ↳ prove-recursion 290.41 ms 290.71 ms +0.14% (-0.21% to +0.38%)
 ↳ reduce-claims 8.74 ms 9.39 ms +2.20% (-1.82% to +12.43%)
 ↳ reduce-in-rows 3.58 ms 3.80 ms +3.89% (+0.59% to +9.19%)
 ↳ verify 12.41 ms 12.53 ms +0.99% (-0.08% to +2.14%)
aggregate-leanxmss-100-4to1-first 8 x86-64 INTEL(R) XEON(R) GOLD 6548N 227.86 ms 226.25 ms -0.38% (-1.00% to +4.49%)
 ↳ build-circuit 32.52 ms 32.90 ms +0.90% (-4.04% to +3.83%)
 ↳ prove-recursion 169.66 ms 169.14 ms -0.39% (-0.61% to +5.81%)
 ↳ reduce-claims 7.53 ms 7.45 ms -4.22% (-15.20% to +20.33%)
 ↳ reduce-in-rows 3.92 ms 4.09 ms +8.00% (-2.40% to +10.11%)
 ↳ verify 13.37 ms 13.38 ms -0.74% (-1.22% to +1.39%)
aggregate-leanxmss-100-4to1-first 16 x86-64 INTEL(R) XEON(R) GOLD 6548N 167.50 ms 161.99 ms -3.12% (-5.53% to +4.72%)
 ↳ build-circuit 30.21 ms 29.76 ms -0.71% (-1.71% to +0.14%)
 ↳ prove-recursion 112.54 ms 107.48 ms -4.73% (-7.95% to +6.99%)
 ↳ reduce-claims 7.38 ms 7.72 ms +5.40% (-10.14% to +8.50%)
 ↳ reduce-in-rows 3.54 ms 3.70 ms +3.28% (+0.06% to +8.23%)
 ↳ verify 13.45 ms 13.26 ms -1.15% (-2.63% to +1.31%)
aggregate-leanxmss-100-4to1-node 1 arm64 Neoverse-V2 2.06 s 2.05 s -0.49% (-0.55% to +0.11%)
 ↳ build-circuit 29.47 ms 29.41 ms -0.37% (-1.70% to +0.58%)
 ↳ prove-recursion 1.95 s 1.95 s -0.49% (-0.57% to +0.11%)
 ↳ reduce-claims 56.75 ms 56.31 ms -0.38% (-1.02% to -0.14%)
 ↳ reduce-in-rows 3.03 ms 2.95 ms -2.28% (-3.63% to -0.47%)
aggregate-leanxmss-100-4to1-node 4 arm64 Neoverse-V2 570.34 ms 568.36 ms -0.06% (-0.71% to +0.23%)
 ↳ build-circuit 26.98 ms 26.46 ms -2.08% (-2.40% to +3.56%)
 ↳ prove-recursion 510.88 ms 510.25 ms -0.12% (-0.67% to +0.49%)
 ↳ reduce-claims 17.75 ms 17.61 ms -0.54% (-1.77% to +1.27%)
 ↳ reduce-in-rows 3.08 ms 3.05 ms -1.49% (-2.23% to +0.16%)
aggregate-leanxmss-100-4to1-node 8 arm64 Neoverse-V2 325.60 ms 324.31 ms -0.34% (-0.57% to +0.23%)
 ↳ build-circuit 25.11 ms 25.07 ms -0.18% (-1.35% to +1.14%)
 ↳ prove-recursion 275.41 ms 274.36 ms -0.39% (-0.68% to +0.05%)
 ↳ reduce-claims 11.95 ms 12.01 ms +1.16% (-2.77% to +2.32%)
 ↳ reduce-in-rows 3.02 ms 3.01 ms -0.45% (-1.78% to -0.01%)
aggregate-leanxmss-100-4to1-node 16 arm64 Neoverse-V2 207.57 ms 207.08 ms -0.24% (-0.47% to +0.83%)
 ↳ build-circuit 24.93 ms 25.01 ms +0.32% (-1.22% to +2.99%)
 ↳ prove-recursion 160.14 ms 159.96 ms -0.18% (-0.44% to +0.57%)
 ↳ reduce-claims 9.56 ms 9.36 ms -2.18% (-2.86% to +3.08%)
 ↳ reduce-in-rows 3.00 ms 3.01 ms +0.37% (-3.13% to +0.60%)
aggregate-leanxmss-100-4to1-node 1 x86-64 INTEL(R) XEON(R) GOLD 6548N 1.26 s 1.26 s +0.26% (-1.12% to +0.44%)
 ↳ build-circuit 40.44 ms 41.38 ms +1.32% (-4.61% to +5.43%)
 ↳ prove-recursion 1.13 s 1.13 s -0.05% (-0.95% to +0.77%)
 ↳ reduce-claims 63.72 ms 63.65 ms -1.05% (-6.80% to -0.01%)
 ↳ reduce-in-rows 3.81 ms 3.87 ms +1.46% (-7.73% to +5.74%)
aggregate-leanxmss-100-4to1-node 4 x86-64 INTEL(R) XEON(R) GOLD 6548N 377.40 ms 377.79 ms -0.08% (-0.28% to +5.60%)
 ↳ build-circuit 35.94 ms 35.67 ms -0.12% (-4.03% to +1.80%)
 ↳ prove-recursion 305.73 ms 306.19 ms +0.10% (+0.04% to +5.51%)
 ↳ reduce-claims 19.85 ms 19.95 ms -0.97% (-7.56% to +17.75%)
 ↳ reduce-in-rows 3.99 ms 4.10 ms +3.36% (-4.80% to +11.79%)
aggregate-leanxmss-100-4to1-node 8 x86-64 INTEL(R) XEON(R) GOLD 6548N 244.94 ms 244.87 ms +0.29% (-7.69% to +7.42%)
 ↳ build-circuit 37.75 ms 37.62 ms -1.71% (-5.83% to +0.39%)
 ↳ prove-recursion 177.41 ms 176.71 ms -0.02% (-9.08% to +9.82%)
 ↳ reduce-claims 14.29 ms 15.05 ms +2.36% (-9.52% to +21.45%)
 ↳ reduce-in-rows 4.35 ms 4.43 ms +1.83% (-1.03% to +3.14%)
aggregate-leanxmss-100-4to1-node 16 x86-64 INTEL(R) XEON(R) GOLD 6548N 174.91 ms 168.55 ms -0.90% (-5.34% to +0.44%)
 ↳ build-circuit 34.43 ms 34.43 ms -0.01% (-3.92% to +5.30%)
 ↳ prove-recursion 113.19 ms 107.42 ms -1.47% (-9.68% to +0.58%)
 ↳ reduce-claims 12.89 ms 12.11 ms -2.93% (-6.07% to +7.16%)
 ↳ reduce-in-rows 3.84 ms 3.93 ms +3.56% (+1.49% to +4.24%)
leanxmss-100 1 arm64 Neoverse-V2 1.78 s 1.77 s -0.23% (-0.64% to -0.05%)
 ↳ build-witness 46.23 ms 46.12 ms +0.02% (-4.28% to +0.75%)
 ↳ commit 294.53 ms 295.40 ms +0.07% (-0.54% to +1.10%)
 ↳ execute-program 10.30 ms 10.10 ms -1.84% (-5.48% to +0.27%)
 ↳ flock-reductions 647.49 ms 643.84 ms -0.52% (-1.09% to -0.22%)
 ↳ pcs-open 627.56 ms 627.07 ms -0.08% (-0.59% to +0.19%)
 ↳ prove-bus 131.21 ms 131.60 ms +0.12% (-0.65% to +0.78%)
 ↳ prove-constraints 14.47 ms 14.33 ms -0.62% (-1.05% to +0.66%)
leanxmss-100 4 arm64 Neoverse-V2 482.07 ms 473.41 ms -0.67% (-5.22% to +0.11%)
 ↳ build-witness 12.94 ms 12.81 ms -1.27% (-2.69% to -0.29%)
 ↳ commit 75.78 ms 74.97 ms -0.58% (-9.79% to +1.00%)
 ↳ execute-program 10.53 ms 10.27 ms -0.45% (-4.24% to +3.27%)
 ↳ flock-reductions 170.35 ms 168.47 ms -1.05% (-2.82% to +0.13%)
 ↳ pcs-open 168.16 ms 165.70 ms -0.10% (-8.36% to +0.81%)
 ↳ prove-bus 35.90 ms 35.40 ms +0.15% (-1.39% to +0.87%)
 ↳ prove-constraints 5.58 ms 5.53 ms +0.68% (-1.38% to +4.19%)
leanxmss-100 8 arm64 Neoverse-V2 264.30 ms 263.97 ms -0.29% (-0.55% to +0.48%)
 ↳ build-witness 7.33 ms 7.34 ms -0.12% (-0.29% to +0.34%)
 ↳ commit 38.35 ms 38.52 ms -0.03% (-0.30% to +1.09%)
 ↳ execute-program 10.39 ms 10.56 ms -0.01% (-2.99% to +9.65%)
 ↳ flock-reductions 93.75 ms 93.16 ms -0.60% (-0.99% to -0.19%)
 ↳ pcs-open 89.54 ms 89.72 ms -0.02% (-0.21% to +0.65%)
 ↳ prove-bus 20.53 ms 20.51 ms -0.09% (-0.26% to +0.65%)
 ↳ prove-constraints 4.15 ms 4.15 ms +0.30% (-0.33% to +2.50%)
leanxmss-100 16 arm64 Neoverse-V2 162.24 ms 162.30 ms -0.10% (-0.40% to +9.88%)
 ↳ build-witness 4.77 ms 4.77 ms -0.16% (-2.53% to +0.60%)
 ↳ commit 20.39 ms 20.44 ms +0.18% (-0.43% to +14.78%)
 ↳ execute-program 10.51 ms 10.28 ms -0.14% (-4.28% to +1.93%)
 ↳ flock-reductions 56.39 ms 56.15 ms -0.18% (-0.73% to +22.14%)
 ↳ pcs-open 52.85 ms 52.61 ms -0.14% (-0.54% to +4.02%)
 ↳ prove-bus 13.23 ms 13.22 ms -0.13% (-0.79% to +7.90%)
 ↳ prove-constraints 3.81 ms 3.84 ms +1.23% (-1.14% to +6.74%)
leanxmss-100 1 x86-64 INTEL(R) XEON(R) GOLD 6548N 1.06 s 1.07 s +0.25% (-0.90% to +0.35%)
 ↳ build-witness 71.70 ms 71.44 ms -0.53% (-2.05% to +1.12%)
 ↳ commit 190.73 ms 191.82 ms +0.35% (-1.86% to +1.34%)
 ↳ execute-program 13.14 ms 13.14 ms +0.04% (-1.96% to +3.69%)
 ↳ flock-reductions 313.46 ms 312.12 ms +0.01% (-1.24% to +0.28%)
 ↳ pcs-open 368.08 ms 369.02 ms +0.38% (-1.23% to +1.14%)
 ↳ prove-bus 86.00 ms 86.50 ms -0.09% (-0.38% to +2.78%)
 ↳ prove-constraints 20.05 ms 20.35 ms +1.46% (+0.27% to +5.16%)
leanxmss-100 4 x86-64 INTEL(R) XEON(R) GOLD 6548N 292.77 ms 293.26 ms +0.08% (-0.34% to +0.21%)
 ↳ build-witness 19.13 ms 19.11 ms -0.03% (-0.96% to +0.22%)
 ↳ commit 46.88 ms 46.91 ms -0.33% (-0.61% to +0.52%)
 ↳ execute-program 12.21 ms 12.36 ms +0.91% (-0.69% to +2.49%)
 ↳ flock-reductions 83.53 ms 83.43 ms -0.13% (-0.52% to +0.48%)
 ↳ pcs-open 99.68 ms 100.10 ms +0.42% (-0.95% to +1.02%)
 ↳ prove-bus 23.78 ms 23.64 ms -0.07% (-0.68% to +0.15%)
 ↳ prove-constraints 7.20 ms 7.27 ms +1.13% (-0.86% to +3.67%)
leanxmss-100 8 x86-64 INTEL(R) XEON(R) GOLD 6548N 169.38 ms 168.88 ms -1.24% (-6.84% to +6.97%)
 ↳ build-witness 10.91 ms 10.89 ms +0.88% (-6.96% to +0.97%)
 ↳ commit 23.07 ms 23.38 ms +1.60% (-10.91% to +4.10%)
 ↳ execute-program 11.63 ms 11.74 ms -1.20% (-21.56% to +9.12%)
 ↳ flock-reductions 46.63 ms 46.57 ms -0.88% (-7.70% to +4.65%)
 ↳ pcs-open 57.08 ms 56.49 ms -1.03% (-4.60% to +13.89%)
 ↳ prove-bus 14.16 ms 14.03 ms -0.63% (-8.02% to +2.29%)
 ↳ prove-constraints 5.50 ms 5.56 ms -0.29% (-6.46% to +4.05%)
leanxmss-100 16 x86-64 INTEL(R) XEON(R) GOLD 6548N 134.68 ms 132.00 ms -0.70% (-3.76% to +0.43%)
 ↳ build-witness 8.59 ms 8.54 ms -0.65% (-2.35% to +0.23%)
 ↳ commit 16.22 ms 14.74 ms -9.06% (-12.17% to -0.11%)
 ↳ execute-program 12.13 ms 12.64 ms +3.14% (+1.10% to +4.18%)
 ↳ flock-reductions 37.19 ms 36.01 ms -2.85% (-4.54% to +0.08%)
 ↳ pcs-open 42.83 ms 42.44 ms -0.73% (-9.62% to +4.14%)
 ↳ prove-bus 11.59 ms 11.87 ms +1.89% (+0.85% to +4.09%)
 ↳ prove-constraints 5.12 ms 5.22 ms +1.92% (-1.95% to +4.21%)

@kevaundray
kevaundray merged commit 06e5c9c into leanEthereum:riscv-exploration Oct 14, 2026
60 checks passed
kevaundray added a commit to kevaundray/leanVM that referenced this pull request Oct 14, 2026
…er-20261010

The circuits dump names each position by its NodeCircuit, so the tracked signer-set trees' circuits are dumped under their benchmark names; all twenty-three dumps pass checkrec with the existing Lean model.
kevaundray added a commit to kevaundray/leanVM that referenced this pull request Oct 14, 2026
…lean-rec-soundness

The circuits dump writes each signer-set tree's node circuit of every arity (-node2, -node3, -node for the largest) instead of one -node file per position, and checkdesign and checkedges read the aggregate-signers-* dumps as one-tier claim-set trees of capacity 1601 and 6401 in 16 groups, so all 23 dumps are checked.
kevaundray added a commit to kevaundray/leanVM that referenced this pull request Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant