Skip to content

perf: make bump the default guest allocator - #869

Open
jotabulacios wants to merge 29 commits into
mainfrom
perf/dlmalloc-guest-allocator
Open

perf: make bump the default guest allocator#869
jotabulacios wants to merge 29 commits into
mainfrom
perf/dlmalloc-guest-allocator

Conversation

@jotabulacios

@jotabulacios jotabulacios commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

The guest allocator now uses a monotonic bump allocator by default instead of embedded-alloc's TLSF heap. The dlmalloc-alloc feature remains available for executions with unbounded allocation churn; it reuses freed allocations on top of a page-aligned bump provider. Bump allocation is constant-time, makes dealloc a no-op, and skips the alloc_zeroed memset because guest memory is zero-initialized. TLSF is removed from the guest allocator configuration.

Motivation

TLSF spends guest instructions on free-list bookkeeping on every allocation, and a guest instruction is a trace row. Guest allocation patterns are dominated by short-lived buffers within one execution, so paying for reuse is paying for something the workload barely uses.

What changed

  • Default guest allocator is a monotonic bump allocator: alloc moves a cursor, dealloc is empty, realloc grows the top block in place when the block being grown is the one the cursor sits on, and alloc_zeroed skips the memset.
  • dlmalloc-alloc puts Doug Lea's malloc on a bump "system" provider that hands it page-aligned segments. Its footprint is bounded by live bytes rather than total bytes ever allocated, and it can grow a buried block in place.
  • embedded-alloc and the tlsf-alloc feature are gone, along with the guest lockfile churn they carried.

The alloc_zeroed memset skip depends on freshly bumped memory reading as zero. That holds at three independent layers: executor misses return unwrap_or_default(), the prover's replay fills (0, 0), and page genesis is zero_init bound to the static zero-page root, which the verifier rebuilds from the ELF rather than trusting the prover. The cursor is monotonic by construction — realloc never rewinds it on shrink, which would re-expose written bytes and break exactly that invariant.

Measurements

All figures are post-#861. Thin LTO inlines the per-allocation bookkeeping dlmalloc and TLSF pay and bump avoids by construction, which closed about two thirds of the gap the same comparison showed before it; any pre-LTO number for this change reads larger than it should.

Bump against dlmalloc, on the ethrex transfer fixtures and a real Hoodi block:

Metric Result
Guest cycles, 20-transfer block -7.0%
Guest cycles, 150-transfer block -6.2%
Guest cycles, real Hoodi block -2.9%
Prove time, monolithic -2.6%
Peak RSS, monolithic -3.9%
Prove time, continuations at 2^21 and 2^22 -1.2%

The in-place realloc takes a further 0.57..1.34% off guest cycles across four ethrex fixtures; it has not been re-run against dlmalloc.

Where bump loses, both deterministic:

  • Proof bundle is 0.6..1.0% larger at every epoch. Memory that is never reused spans more pages, and every page touched pays PAGE rows.
  • At epoch 2^20 dlmalloc proves ~2.3% faster, in 8 of 9 paired rounds: eight epochs amplify that page cost. Larger epochs are ~26% cheaper in absolute terms, so the configuration anyone runs is the one bump wins.

Scope of the prove-time numbers: they come from the synthetic transfer fixtures on the monolithic path. On the real block this change is not resolvable. The bench box swings ~15% run to run on 8-minute runs; the CPU real-block run reported no significant change (-40 MB peak heap, -1.9% prove time, within spread), and the GPU ABBA run at n=32 came back INCONCLUSIVE with a point estimate of -0.01% and a 95% CI of [-0.24%, +0.22%]. The win is claimed on the fixtures, not there.

Bump's ceiling

Bump never reclaims, so the quantity that matters is cumulative allocation, against ~3 GiB of [_end, MAX_MEMORY_SIZE). Measured execute-only over eight ethrex fixtures spanning 0.42M to 63M gas:

Gas Cumulative alloc Marginal B/gas
2.43M (real, contract-heavy) 9.4 MB
4.24M (real, contract-heavy) 15.1 MB
31.5M (1500 transfers) 72.1 MB 2.211
63M (3000 transfers) 142.0 MB 2.219

alloc = 2.55 MB + 2.213 B/gas × gas, R² = 0.999993, with the marginal rate flat between 2.175 and 2.289 across a 150× range of gas. Allocation is linear: there is no superlinear term, which was the only route to exhaustion within one block.

The quantity that binds is bytes per gas, not transactions per gas, and transfers roughly minimise it. At the highest rate measured — 3.87 B/gas, on the contract-heavy blocks — a 60M-gas block lands at ~232 MB, a 13.9× margin, and exhaustion needs ~832M gas. Both contract-heavy fixtures are small blocks (2.4M and 4.2M gas), so that rate still carries the ~2.5 MB constant inside its average and no gas-full contract-heavy block has been measured: treat the margin as an extrapolation. If a block ever exceeds it, dlmalloc-alloc is a one-flag fallback.

A guest that processes many blocks in one execution has no per-block bound at all, which is the case dlmalloc-alloc exists for. Continuations do not stress it: they split proving into epochs, not execution.

Known limitation, not fixed here

Heap exhaustion does not fail cleanly. alloc returns null, handle_alloc_error panics, and the guest #[panic_handler] is loop {}, so execution spins instead of aborting; nothing on the proving path bounds cycles, since --cycle-budget is opt-in and only on execute.

This is not shipped as part of this change, deliberately:

  • It is preexisting. TLSF also returned null on exhaustion and hung through the same panic handler, and any guest panic hangs the prover the same way. The allocator choice moves the threshold, not the failure mode.
  • The fix is not allocator-local. HALT constrains the exit code to zero at the constraint level (prover/src/tables/halt.rs:16,194, spec halt:c:read_zero_exit_code), so a nonzero exit is not a provable state. A clean abort needs either a committed failure marker or a non-provable abort ecall. #[alloc_error_handler] is not the lever: it is unstable, and the default handler already panics.

Two follow-ups: a host-side cycle bound on the prove path, which is cheap and removes most of the operational risk without touching the VM, and then the panic-to-abort design above.

How to test

make lint
cd syscalls && cargo test && cargo test --features dlmalloc-alloc
make compile-programs-rust

pr_main.yaml covers both allocator profiles. To exercise the fallback in a guest, build it with --features lambda-vm-syscalls/dlmalloc-alloc; nothing in the repo selects it today, so the riscv64 path has no consumer yet.

@diegokingston

Copy link
Copy Markdown
Collaborator

/bench

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown

Benchmark — real block (ethrex_mainnet_25368371.bin) (median of 3)

continuations · epoch 2^22 · 12 epochs

Metric main PR Δ
Peak heap 48519 MB 48479 MB -40 MB (-0.1%) ⚪
Prove time 166.381s 163.209s -3.172s (-1.9%) ⚪

✅ No significant change.

Prove-time spread 1.0% (163.487s / 161.832s / 163.209s)

Commit: 3bb45e0 · Baseline: cached · Runner: self-hosted bench

@diegokingston

Copy link
Copy Markdown
Collaborator

/bench

@jotabulacios
jotabulacios marked this pull request as ready for review July 29, 2026 13:51
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

GPU Benchmark (ABBA) — 3bb45e0312 vs main (32 pairs)

RTX 5090 · Intel(R) Core(TM) Ultra 7 265K (20 threads) · Vast.ai datacenter @ $0.6680555555555555/hr · prover/cuda · ethrex real block, continuations · drift-free A/B/B/A

=== ABBA paired result  (improvement: - = PR faster) ===
  pairs: 32   mean A (PR): 74.734s   mean B (base): 74.741s

  [parametric] paired-t   mean -0.01%   sd 0.63%   se 0.11%
               95% CI: [-0.24%, +0.22%]   (t df=31 = 2.042)
  [robust]     median +0.02%   Wilcoxon W+=272 W-=256  p(exact)=0.8900  (z=+0.14)

  --- server stability (this run; compare across servers) ---
  run-to-run jitter:    A CV 0.50%   B CV 0.48%        (lower = steadier)
  within-session drift: +0.09% over the run, 1st->2nd half +0.01%
    (jitter -> Tier-1 cached gate floor; drift -> whether the cached baseline can be trusted)

  VERDICT: INCONCLUSIVE - effect not separable from 0 at n=32.
           Point estimate ~+0.02% (median). Need more pairs to resolve.

  raw pairs: /tmp/abba_run/pairs.csv

- = PR faster. Trust the verdict when paired-t and Wilcoxon agree.

@MauroToscano

Copy link
Copy Markdown
Contributor

/bench

@jotabulacios

Copy link
Copy Markdown
Collaborator Author

/bench

@jotabulacios

Copy link
Copy Markdown
Collaborator Author

/bench

@jotabulacios

Copy link
Copy Markdown
Collaborator Author

/bench-gpu

@jotabulacios jotabulacios changed the title Perf/dlmalloc guest allocator perf: make bump the default guest allocator Aug 4, 2026
@Oppen

Oppen commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Automated review pass (adversarially verified). Findings:

  • nit: syscalls/src/allocator.rs:9 module doc claims a 5-metric A/B (cycles, trace elements, proving time, proof size, peak RSS) but only cycles are quantified for dlmalloc. An earlier revision (pre-2b0e4e13) carried full dlmalloc trace-element/RSS/proving-time deltas — restore them or narrow the claim.

Bump-allocator soundness (zero-init invariant, realloc-leak behavior, alignment arithmetic), dlmalloc integration (BumpSystem segment provider, critical_section reentrancy, allocates_zeros contract), and test/CI coverage all came back clean.

@Oppen

Oppen commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Correction to the earlier automated pass — underweighted a real issue, elevating it:

  • risk: bump (new default) never reclaims, and realloc has no override (falls to GlobalAlloc's default: alloc new + copy + dealloc old, a no-op), so every grow leaks the full previous buffer on top of bump's baseline non-reclaim. Combined with this file's own doc (:22-27): "exhausting the heap does not abort cleanly today — execution spins rather than failing." Every guest's #[panic_handler] in this repo is loop {} (checked fibonacci, add, basic_rust, others — identical), and handle_alloc_error routes there on a null alloc. No cycle/gas bound found anywhere in executor/src/ that would stop this externally.

    Failure scenario: a guest that completed fine under TLSF (the allocator this PR removes, which did reclaim) can now hang instead of failing once its heap fills — and non-amortized realloc-heavy code (not Vec/String, which double, but hand-written incremental-growth patterns) reaches that ceiling asymptotically faster than plain alloc/dealloc churn would. A hang here isn't a guest-side inconvenience, it's an unbounded-cycle hazard for whatever's running the prover.

    This was raised internally during the automated review (test-coverage angle: "no test locks in realloc's leak-and-copy semantics") but refuted on the grounds that the default realloc's behavior is fixed stdlib code already covered compositionally by existing alloc/dealloc tests — true about test coverage, and beside the actual point, which is the product/liveness risk, not whether a unit test exists for it. My mistake to let that framing stand in the original comment above.

Worth deciding explicitly: is "spins instead of failing" on heap exhaustion an acceptable known limitation to ship (with docs steering realloc-heavy/unbounded-churn guests to dlmalloc-alloc), or does it need an #[alloc_error_handler]/abort path so exhaustion fails the guest cleanly instead of hanging the prover?

@MauroToscano

Copy link
Copy Markdown
Contributor

/bench

@MauroToscano

Copy link
Copy Markdown
Contributor

/bench-gpu 32

@MauroToscano

Copy link
Copy Markdown
Contributor

/profile_recursion

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Recursion guest profile

Single query (blowup=2, 1 query)

Total cycles: 329,518,680 · Unique PCs: 113,219 · Exec time: 16.256825965s

Top 25 functions by cycles (all steps)

Rank Cycles % Cum % PCs Function
1 108,549,037 32.94% 32.94% 226 <core::hash::sip::Hasher<core::hash::sip::Sip13Rounds> as core::hash::Hasher>::write
2 91,825,188 27.87% 60.81% 210 <std::hash::random::RandomState as core::hash::BuildHasher>::hash_one::<&(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>
3 40,825,197 12.39% 73.20% 285 <stark::constraint_ir::builder::IrBuilder>::push
4 18,746,627 5.69% 78.89% 182 <stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::flatten
5 8,473,000 2.57% 81.46% 372 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
6 8,290,815 2.52% 83.97% 58 <alloc::rc::Rc<stark::constraints::builder::TreeNode>>::drop_slow
7 6,729,108 2.04% 86.02% 270 <hashbrown::raw::RawTable<((stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32)>>::reserve_rehash::<hashbrown::map::make_hasher<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32, std::hash::random::RandomState>::{closure#0}>
8 5,465,106 1.66% 87.67% 42 <(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim) as hashbrown::Equivalent<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>>::equivalent
9 4,270,665 1.30% 88.97% 90 __rustc::__rust_alloc
10 4,000,384 1.21% 90.18% 32 <stark::constraints::builder::IrExpr>::leaf
11 3,065,562 0.93% 91.11% 2118 math::field::goldilocks::inv_addition_chain
12 2,457,868 0.75% 91.86% 41 <stark::constraints::builder::IrExpr as core::ops::arith::Mul>::mul
13 2,083,840 0.63% 92.49% 260 compiler_builtins::mem::memcpy
14 2,069,508 0.63% 93.12% 4688 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri
15 1,473,938 0.45% 93.57% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Add>::add
16 1,458,207 0.44% 94.01% 121 <alloc::vec::Vec<stark::lookup::BusValue> as core::clone::Clone>::clone
17 1,283,905 0.39% 94.40% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Sub>::sub
18 1,158,807 0.35% 94.75% 3312 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
19 1,101,634 0.33% 95.09% 1266 stark::lookup::emit_fingerprint::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
20 1,068,872 0.32% 95.41% 1793 <lambda_vm_prover::tables::ecdas::EcdasConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
21 1,056,430 0.32% 95.73% 347 <lambda_vm_syscalls::keccak::Keccak256>::update
22 918,437 0.28% 96.01% 806 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
23 906,874 0.28% 96.29% 874 <lambda_vm_prover::tables::ecsm::EcsmConstraints>::conv_carry::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
24 891,538 0.27% 96.56% 221 <core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::replay_rounds_after_round_1<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>> as core::iter::traits::iterator::Iterator>::next
25 790,176 0.24% 96.80% 261 <lambda_vm_prover::tables::ecdas::EcdasConstraints>::rq::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 96.80% of total cycles.

Step setup of 51 step cycles — top 3 functions
Rank Cycles % Cum % PCs Function
1 26 50.98% 50.98% 26 std::panicking::set_hook
2 16 31.37% 82.35% 16 main
3 9 17.65% 100.00% 9 lambda_vm_syscalls::allocator::init_allocator

Each function's cycles are summed over all its program counters in this table's scope; the top 3 cover 100.00% of this step's cycles.

Step airs_bus_balance of 302,080,231 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 108,547,512 35.93% 35.93% 165 <core::hash::sip::Hasher<core::hash::sip::Sip13Rounds> as core::hash::Hasher>::write
2 91,825,188 30.40% 66.33% 210 <std::hash::random::RandomState as core::hash::BuildHasher>::hash_one::<&(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>
3 40,825,197 13.51% 79.85% 285 <stark::constraint_ir::builder::IrBuilder>::push
4 18,746,627 6.21% 86.05% 182 <stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::flatten
5 8,290,815 2.74% 88.80% 58 <alloc::rc::Rc<stark::constraints::builder::TreeNode>>::drop_slow
6 6,729,108 2.23% 91.02% 270 <hashbrown::raw::RawTable<((stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32)>>::reserve_rehash::<hashbrown::map::make_hasher<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32, std::hash::random::RandomState>::{closure#0}>
7 5,465,106 1.81% 92.83% 42 <(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim) as hashbrown::Equivalent<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>>::equivalent
8 4,182,360 1.38% 94.22% 15 __rustc::__rust_alloc
9 4,000,384 1.32% 95.54% 32 <stark::constraints::builder::IrExpr>::leaf
10 2,457,868 0.81% 96.36% 41 <stark::constraints::builder::IrExpr as core::ops::arith::Mul>::mul
11 1,910,246 0.63% 96.99% 125 compiler_builtins::mem::memcpy
12 1,473,938 0.49% 97.48% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Add>::add
13 1,458,207 0.48% 97.96% 121 <alloc::vec::Vec<stark::lookup::BusValue> as core::clone::Clone>::clone
14 1,283,905 0.43% 98.38% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Sub>::sub
15 546,514 0.18% 98.56% 456 stark::lookup::emit_fingerprint::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
16 475,200 0.16% 98.72% 971 <lambda_vm_prover::tables::ecdas::EcdasConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
17 418,272 0.14% 98.86% 150 <lambda_vm_prover::tables::ecdas::EcdasConstraints>::rq::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
18 391,100 0.13% 98.99% 434 <lambda_vm_prover::tables::ecsm::EcsmConstraints>::conv_carry::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
19 311,812 0.10% 99.09% 96 stark::lookup::emit_linear_terms::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
20 287,868 0.10% 99.19% 149 <alloc::vec::Vec<stark::lookup::BusInteraction> as core::clone::Clone>::clone
21 278,828 0.09% 99.28% 1 __rustc::__rust_no_alloc_shim_is_unstable_v2
22 253,899 0.08% 99.36% 1 __rustc::__rust_dealloc
23 171,255 0.06% 99.42% 147 <std::hash::random::RandomState as core::hash::BuildHasher>::hash_one::<&stark::traits::ZerofierGroupKey>
24 132,010 0.04% 99.46% 91 <stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as stark::constraints::builder::ConstraintBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::emit_base_rows
25 116,475 0.04% 99.50% 31 memset

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.50% of this step's cycles.

Step multi_verify_setup of 30,153 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 20,126 66.75% 66.75% 71 <lambda_vm_syscalls::keccak::Keccak256>::update
2 2,800 9.29% 76.03% 112 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::ood_blocks_well_formed
3 2,583 8.57% 84.60% 493 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
4 754 2.50% 87.10% 29 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::trace_ood_next_row_columns
5 694 2.30% 89.40% 219 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::next_sample_u64
6 520 1.72% 91.13% 121 stark::domain::new_verifier_domain::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>
7 456 1.51% 92.64% 27 compiler_builtins::mem::memcpy
8 420 1.39% 94.03% 15 __rustc::__rust_alloc
9 269 0.89% 94.92% 15 stark::lookup::logup_max_degree
10 227 0.75% 95.68% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::commit::CommitConstraints> as stark::traits::AIR>::composition_poly_degree_bound
11 198 0.66% 96.33% 24 memset
12 160 0.53% 96.86% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::composition_poly_degree_bound
13 106 0.35% 97.21% 82 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::map::Map<core::ops::range::Range<usize>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#1}>>>::from_iter
14 90 0.30% 97.51% 3 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::has_trace_interaction
15 74 0.25% 97.76% 37 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::FixedOutputReset>::finalize_into_reset
16 70 0.23% 97.99% 2 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::Update>::update
17 64 0.21% 98.20% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints> as stark::traits::AIR>::precomputed_commitment
18 60 0.20% 98.40% 4 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::trace_layout
19 60 0.20% 98.60% 3 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints> as stark::traits::AIR>::has_trace_interaction
20 56 0.19% 98.79% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
21 50 0.17% 98.95% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::num_auxiliary_rap_columns
22 40 0.13% 99.08% 4 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints> as stark::traits::AIR>::trace_layout
23 30 0.10% 99.18% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::context
24 30 0.10% 99.28% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::is_preprocessed
25 30 0.10% 99.38% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::step_size

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.38% of this step's cycles.

Step step1:replay of 3,267,262 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 891,538 27.29% 27.29% 221 <core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::replay_rounds_after_round_1<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>> as core::iter::traits::iterator::Iterator>::next
2 697,833 21.36% 48.65% 1023 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
3 425,718 13.03% 61.68% 72 <lambda_vm_syscalls::keccak::Keccak256>::update
4 277,271 8.49% 70.16% 245 stark::lookup::compute_alpha_powers::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
5 210,285 6.44% 76.60% 164 stark::ood::build_pruned_trace_term_coeffs::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
6 203,440 6.23% 82.82% 112 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_elem::SpecFromElem>::from_elem::<alloc::alloc::Global>
7 129,664 3.97% 86.79% 27 compiler_builtins::mem::memcpy
8 90,738 2.78% 89.57% 100 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::replay_rounds_after_round_1<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>>>>::from_iter
9 86,940 2.66% 92.23% 217 stark::ood::reconstruct_ood_full::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
10 75,705 2.32% 94.55% 15 __rustc::__rust_alloc
11 61,656 1.89% 96.44% 24 memset
12 39,778 1.22% 97.65% 219 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::next_sample_u64
13 14,863 0.45% 98.11% 170 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::pow::<usize>
14 11,336 0.35% 98.45% 2 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::Update>::update
15 5,572 0.17% 98.62% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
16 5,072 0.16% 98.78% 1 __rustc::__rust_no_alloc_shim_is_unstable_v2
17 4,889 0.15% 98.93% 46 <alloc::raw_vec::RawVecInner>::finish_grow
18 4,588 0.14% 99.07% 37 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::FixedOutputReset>::finalize_into_reset
19 3,535 0.11% 99.18% 35 <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global>
20 3,375 0.10% 99.28% 135 stark::grinding::is_valid_nonce
21 2,800 0.09% 99.37% 112 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::ood_blocks_well_formed
22 2,705 0.08% 99.45% 33 <math::field::goldilocks::GoldilocksField as math::field::traits::IsField>::pow::<u64>
23 2,425 0.07% 99.52% 97 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as crypto::fiat_shamir::is_transcript::IsStarkTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::goldilocks::GoldilocksField>>::sample_z_ood_with_domain_params
24 2,295 0.07% 99.59% 29 compiler_builtins::mem::memmove
25 2,175 0.07% 99.66% 29 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::FixedOutput>::finalize_into

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.66% of this step's cycles.

Step step2:claimed of 19,515,878 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 8,462,071 43.36% 43.36% 195 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
2 2,961,756 15.18% 58.54% 706 math::field::goldilocks::inv_addition_chain
3 1,101,634 5.64% 64.18% 1266 stark::lookup::emit_fingerprint::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
4 1,068,872 5.48% 69.66% 1793 <lambda_vm_prover::tables::ecdas::EcdasConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
5 906,874 4.65% 74.30% 874 <lambda_vm_prover::tables::ecsm::EcsmConstraints>::conv_carry::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
6 898,287 4.60% 78.91% 403 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
7 790,176 4.05% 82.96% 261 <lambda_vm_prover::tables::ecdas::EcdasConstraints>::rq::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
8 632,453 3.24% 86.20% 183 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul<&math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::mul
9 585,314 3.00% 89.20% 170 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::pow::<usize>
10 459,023 2.35% 91.55% 159 stark::lookup::emit_linear_terms::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
11 311,315 1.60% 93.14% 177 <&math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::mul
12 266,744 1.37% 94.51% 771 stark::lookup::emit_logup_constraints::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
13 207,345 1.06% 95.57% 870 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
14 200,564 1.03% 96.60% 91 stark::constraints::zerofier::evaluate_zerofier::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
15 125,580 0.64% 97.24% 245 <core::iter::adapters::map::Map<core::iter::adapters::step_by::StepBy<core::ops::range::Range<usize>>, <stark::proof::view::StarkTableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::into_frame::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<stark::table::TableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <alloc::vec::Vec<stark::table::TableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::extend_trusted<core::iter::adapters::map::Map<core::iter::adapters::step_by::StepBy<core::ops::range::Range<usize>>, <stark::proof::view::StarkTableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::into_frame::{closure#0}>>::{closure#0}>::{closure#0}>
16 124,414 0.64% 97.88% 238 stark::lookup::compute_alpha_powers::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
17 70,560 0.36% 98.24% 324 stark::lookup::emit_multiplicity::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
18 57,304 0.29% 98.54% 26 stark::constraints::zerofier::end_exemptions_roots::<math::field::goldilocks::GoldilocksField>
19 56,572 0.29% 98.83% 1211 <lambda_vm_prover::tables::ecsm::EcsmConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
20 41,775 0.21% 99.04% 919 <lambda_vm_prover::tables::keccak_rnd::KeccakRndConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
21 41,496 0.21% 99.25% 31 memset
22 31,805 0.16% 99.42% 124 lambda_vm_prover::constraints::templates::add_terms_expr::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
23 15,943 0.08% 99.50% 623 lambda_vm_prover::constraints::templates::emit_add_pair::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
24 6,825 0.03% 99.53% 39 <alloc::raw_vec::RawVecInner>::finish_grow
25 6,750 0.03% 99.57% 15 __rustc::__rust_alloc

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.57% of this step's cycles.

Step step3:fri of 3,056,345 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 2,069,058 67.70% 67.70% 4670 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri
2 495,581 16.21% 83.91% 616 math::fft::bowers_fft::process_fused_block::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
3 98,550 3.22% 87.14% 706 math::field::goldilocks::inv_addition_chain
4 74,202 2.43% 89.56% 473 <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::evaluate_offset_fft::<math::field::goldilocks::GoldilocksField>
5 53,680 1.76% 91.32% 100 math::fft::bit_reversing::in_place_bit_reverse_permute::<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
6 47,424 1.55% 92.87% 588 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::inplace_batch_inverse_sequential
7 40,571 1.33% 94.20% 328 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::slice::iter::Iter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>, core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::scale<math::field::goldilocks::GoldilocksField>::{closure#0}>>, <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::scale<math::field::goldilocks::GoldilocksField>::{closure#1}>>>::from_iter
8 27,654 0.90% 95.10% 24 memset
9 26,477 0.87% 95.97% 153 <math::fft::bowers_fft::LayerTwiddles<math::field::goldilocks::GoldilocksField>>::build
10 24,593 0.80% 96.78% 27 compiler_builtins::mem::memcpy
11 20,150 0.66% 97.43% 403 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
12 13,776 0.45% 97.89% 48 lambda_vm_syscalls::keccak::keccak256_pair
13 10,929 0.36% 98.24% 177 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
14 10,435 0.34% 98.58% 79 <math::field::goldilocks::GoldilocksField as math::field::traits::IsField>::pow::<u64>
15 9,328 0.31% 98.89% 110 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::cloned::Cloned<core::iter::adapters::skip_while::SkipWhile<core::iter::adapters::rev::Rev<core::slice::iter::Iter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>, <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::new::{closure#0}>>>>::from_iter
16 7,705 0.25% 99.14% 318 math::fft::bowers_fft::bowers_fft_opt_fused::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
17 4,680 0.15% 99.29% 15 __rustc::__rust_alloc
18 4,025 0.13% 99.43% 161 <alloc::vec::Vec<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, core::iter::adapters::map::Map<core::slice::iter::Iter<usize>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri::{closure#1}>>>::from_iter
19 3,393 0.11% 99.54% 170 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::pow::<usize>
20 3,080 0.10% 99.64% 50 <lambda_vm_syscalls::keccak::Keccak256>::update
21 2,166 0.07% 99.71% 38 <alloc::raw_vec::RawVecInner>::finish_grow
22 1,988 0.07% 99.77% 35 <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global>
23 1,575 0.05% 99.83% 63 <math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>>::inplace_batch_inverse_sequential
24 1,197 0.04% 99.86% 21 __rustc::__rust_realloc
25 700 0.02% 99.89% 129 <alloc::vec::Vec<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::verify_query_and_sym_openings::{closure#2}>>>>::from_iter

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.89% of this step's cycles.

Step step4:openings of 1,568,760 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 572,542 36.50% 36.50% 77 <lambda_vm_syscalls::keccak::Keccak256>::update
2 294,612 18.78% 55.28% 177 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::verify_opening_pair::<math::field::goldilocks::GoldilocksField>
3 274,902 17.52% 72.80% 78 <alloc::vec::Vec<stark::lookup::BusInteraction> as core::ops::drop::Drop>::drop
4 250,971 16.00% 88.80% 923 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
5 59,754 3.81% 92.61% 95 core::ptr::drop_in_place::<stark::verifier::Challenges<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
6 31,134 1.98% 94.59% 24 memset
7 27,292 1.74% 96.33% 124 stark::domain::new_verifier_domain::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>
8 17,424 1.11% 97.44% 1 __rustc::__rust_dealloc
9 16,241 1.04% 98.48% 27 compiler_builtins::mem::memcpy
10 16,080 1.03% 99.50% 48 lambda_vm_syscalls::keccak::keccak256_pair
11 2,268 0.14% 99.65% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
12 1,005 0.06% 99.71% 67 core::ptr::drop_in_place::<stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints>>
13 750 0.05% 99.76% 15 __rustc::__rust_alloc
14 696 0.04% 99.80% 29 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::trace_ood_next_row_columns
15 670 0.04% 99.85% 67 core::ptr::drop_in_place::<stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints>>
16 600 0.04% 99.88% 25 <hashbrown::raw::RawTable<(usize, core::option::Option<rkyv::de::pooling::alloc::SharedPointer>)> as core::ops::drop::Drop>::drop
17 572 0.04% 99.92% 572 core::ptr::drop_in_place::<lambda_vm_prover::VmAirs>
18 216 0.01% 99.93% 2 memcpy
19 158 0.01% 99.94% 2 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::Update>::update
20 144 0.01% 99.95% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::options
21 127 0.01% 99.96% 127 lambda_vm_prover::recursion::program_id_from_digest
22 80 0.01% 99.97% 80 lambda_vm_prover::recursion::verify_and_attest_blob
23 63 0.00% 99.97% 63 lambda_vm_prover::verify_recursion_blob
24 60 0.00% 99.97% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::step_size
25 60 0.00% 99.98% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::context

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.98% of this step's cycles.

Multi query (blowup=8, 128-bit)

Total cycles: 522,557,472 · Unique PCs: 114,204 · Exec time: 50.259320348s

Top 25 functions by cycles (all steps)

Rank Cycles % Cum % PCs Function
1 108,549,037 20.77% 20.77% 226 <core::hash::sip::Hasher<core::hash::sip::Sip13Rounds> as core::hash::Hasher>::write
2 91,825,188 17.57% 38.34% 210 <std::hash::random::RandomState as core::hash::BuildHasher>::hash_one::<&(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>
3 91,259,602 17.46% 55.81% 4715 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri
4 41,069,398 7.86% 63.67% 347 <lambda_vm_syscalls::keccak::Keccak256>::update
5 40,825,197 7.81% 71.48% 285 <stark::constraint_ir::builder::IrBuilder>::push
6 21,592,994 4.13% 75.61% 176 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::verify_opening_pair::<math::field::goldilocks::GoldilocksField>
7 18,746,627 3.59% 79.20% 182 <stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::flatten
8 18,679,484 3.57% 82.78% 3310 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
9 9,260,971 1.77% 84.55% 390 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
10 8,290,815 1.59% 86.13% 58 <alloc::rc::Rc<stark::constraints::builder::TreeNode>>::drop_slow
11 7,795,962 1.49% 87.63% 2118 math::field::goldilocks::inv_addition_chain
12 6,729,108 1.29% 88.91% 270 <hashbrown::raw::RawTable<((stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32)>>::reserve_rehash::<hashbrown::map::make_hasher<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32, std::hash::random::RandomState>::{closure#0}>
13 5,465,106 1.05% 89.96% 42 <(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim) as hashbrown::Equivalent<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>>::equivalent
14 5,265,549 1.01% 90.97% 158 memset
15 4,354,155 0.83% 91.80% 90 __rustc::__rust_alloc
16 4,000,384 0.77% 92.57% 32 <stark::constraints::builder::IrExpr>::leaf
17 3,434,556 0.66% 93.22% 713 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::inplace_batch_inverse_sequential
18 3,357,232 0.64% 93.87% 260 compiler_builtins::mem::memcpy
19 2,918,832 0.56% 94.42% 144 lambda_vm_syscalls::keccak::keccak256_pair
20 2,485,667 0.48% 94.90% 616 math::fft::bowers_fft::process_fused_block::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
21 2,457,868 0.47% 95.37% 41 <stark::constraints::builder::IrExpr as core::ops::arith::Mul>::mul
22 2,369,237 0.45% 95.82% 806 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
23 1,473,938 0.28% 96.11% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Add>::add
24 1,458,207 0.28% 96.38% 121 <alloc::vec::Vec<stark::lookup::BusValue> as core::clone::Clone>::clone
25 1,283,905 0.25% 96.63% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Sub>::sub

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 96.63% of total cycles.

Step setup of 51 step cycles — top 3 functions
Rank Cycles % Cum % PCs Function
1 26 50.98% 50.98% 26 std::panicking::set_hook
2 16 31.37% 82.35% 16 main
3 9 17.65% 100.00% 9 lambda_vm_syscalls::allocator::init_allocator

Each function's cycles are summed over all its program counters in this table's scope; the top 3 cover 100.00% of this step's cycles.

Step airs_bus_balance of 303,595,197 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 108,547,512 35.75% 35.75% 165 <core::hash::sip::Hasher<core::hash::sip::Sip13Rounds> as core::hash::Hasher>::write
2 91,825,188 30.25% 66.00% 210 <std::hash::random::RandomState as core::hash::BuildHasher>::hash_one::<&(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>
3 40,825,197 13.45% 79.45% 285 <stark::constraint_ir::builder::IrBuilder>::push
4 18,746,627 6.17% 85.62% 182 <stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::flatten
5 8,290,815 2.73% 88.35% 58 <alloc::rc::Rc<stark::constraints::builder::TreeNode>>::drop_slow
6 6,729,108 2.22% 90.57% 270 <hashbrown::raw::RawTable<((stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32)>>::reserve_rehash::<hashbrown::map::make_hasher<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32, std::hash::random::RandomState>::{closure#0}>
7 5,465,106 1.80% 92.37% 42 <(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim) as hashbrown::Equivalent<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>>::equivalent
8 4,182,420 1.38% 93.75% 15 __rustc::__rust_alloc
9 4,000,384 1.32% 95.06% 32 <stark::constraints::builder::IrExpr>::leaf
10 2,457,868 0.81% 95.87% 41 <stark::constraints::builder::IrExpr as core::ops::arith::Mul>::mul
11 1,983,974 0.65% 96.53% 125 compiler_builtins::mem::memcpy
12 1,473,938 0.49% 97.01% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Add>::add
13 1,458,207 0.48% 97.49% 121 <alloc::vec::Vec<stark::lookup::BusValue> as core::clone::Clone>::clone
14 1,283,905 0.42% 97.92% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Sub>::sub
15 546,514 0.18% 98.10% 456 stark::lookup::emit_fingerprint::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
16 504,270 0.17% 98.26% 252 math::fft::bowers_fft::process_fused_block::<math::field::goldilocks::GoldilocksField, math::field::goldilocks::GoldilocksField>
17 475,200 0.16% 98.42% 971 <lambda_vm_prover::tables::ecdas::EcdasConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
18 418,272 0.14% 98.56% 150 <lambda_vm_prover::tables::ecdas::EcdasConstraints>::rq::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
19 391,100 0.13% 98.69% 434 <lambda_vm_prover::tables::ecsm::EcsmConstraints>::conv_carry::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
20 320,835 0.11% 98.79% 215 <stark::proof::stark::ArchivedDeepPolynomialOpening<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as bytecheck::CheckBytes<rancor::Strategy<rkyv::validation::Validator<rkyv::validation::archive::validator::ArchiveValidator, rkyv::validation::shared::validator::SharedValidator>, rancor::Error>>>::check_bytes
21 311,812 0.10% 98.89% 96 stark::lookup::emit_linear_terms::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
22 287,868 0.09% 98.99% 149 <alloc::vec::Vec<stark::lookup::BusInteraction> as core::clone::Clone>::clone
23 278,832 0.09% 99.08% 1 __rustc::__rust_no_alloc_shim_is_unstable_v2
24 253,903 0.08% 99.16% 1 __rustc::__rust_dealloc
25 185,595 0.06% 99.23% 31 memset

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.23% of this step's cycles.

Step multi_verify_setup of 30,115 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 20,126 66.83% 66.83% 71 <lambda_vm_syscalls::keccak::Keccak256>::update
2 2,800 9.30% 76.13% 112 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::ood_blocks_well_formed
3 2,583 8.58% 84.71% 493 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
4 754 2.50% 87.21% 29 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::trace_ood_next_row_columns
5 694 2.30% 89.51% 219 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::next_sample_u64
6 482 1.60% 91.11% 121 stark::domain::new_verifier_domain::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>
7 456 1.51% 92.63% 27 compiler_builtins::mem::memcpy
8 420 1.39% 94.02% 15 __rustc::__rust_alloc
9 269 0.89% 94.92% 15 stark::lookup::logup_max_degree
10 227 0.75% 95.67% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::commit::CommitConstraints> as stark::traits::AIR>::composition_poly_degree_bound
11 198 0.66% 96.33% 24 memset
12 160 0.53% 96.86% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::composition_poly_degree_bound
13 106 0.35% 97.21% 82 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::map::Map<core::ops::range::Range<usize>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#1}>>>::from_iter
14 90 0.30% 97.51% 3 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::has_trace_interaction
15 74 0.25% 97.76% 37 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::FixedOutputReset>::finalize_into_reset
16 70 0.23% 97.99% 2 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::Update>::update
17 64 0.21% 98.20% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints> as stark::traits::AIR>::precomputed_commitment
18 60 0.20% 98.40% 4 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::trace_layout
19 60 0.20% 98.60% 3 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints> as stark::traits::AIR>::has_trace_interaction
20 56 0.19% 98.78% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
21 50 0.17% 98.95% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::num_auxiliary_rap_columns
22 40 0.13% 99.08% 4 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints> as stark::traits::AIR>::trace_layout
23 30 0.10% 99.18% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::context
24 30 0.10% 99.28% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::is_preprocessed
25 30 0.10% 99.38% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::step_size

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.38% of this step's cycles.

Step step1:replay of 3,644,905 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 873,883 23.98% 23.98% 221 <core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::replay_rounds_after_round_1<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>> as core::iter::traits::iterator::Iterator>::next
2 697,833 19.15% 43.12% 1023 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
3 461,718 12.67% 55.79% 72 <lambda_vm_syscalls::keccak::Keccak256>::update
4 271,805 7.46% 63.25% 238 stark::lookup::compute_alpha_powers::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
5 225,178 6.18% 69.42% 219 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::next_sample_u64
6 210,285 5.77% 75.19% 164 stark::ood::build_pruned_trace_term_coeffs::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
7 203,440 5.58% 80.77% 112 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_elem::SpecFromElem>::from_elem::<alloc::alloc::Global>
8 198,064 5.43% 86.21% 27 compiler_builtins::mem::memcpy
9 106,206 2.91% 89.12% 24 memset
10 90,738 2.49% 91.61% 100 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::replay_rounds_after_round_1<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>>>>::from_iter
11 86,940 2.39% 94.00% 217 stark::ood::reconstruct_ood_full::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
12 75,705 2.08% 96.07% 15 __rustc::__rust_alloc
13 30,675 0.84% 96.92% 75 <alloc::vec::Vec<usize> as alloc::vec::spec_from_iter::SpecFromIter<usize, core::iter::adapters::map::Map<core::ops::range::Range<usize>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::sample_query_indexes<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>>>::from_iter
14 21,238 0.58% 97.50% 37 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::FixedOutputReset>::finalize_into_reset
15 20,427 0.56% 98.06% 170 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::pow::<usize>
16 18,172 0.50% 98.56% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
17 12,236 0.34% 98.89% 2 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::Update>::update
18 5,072 0.14% 99.03% 1 __rustc::__rust_no_alloc_shim_is_unstable_v2
19 4,889 0.13% 99.17% 46 <alloc::raw_vec::RawVecInner>::finish_grow
20 3,705 0.10% 99.27% 33 <math::field::goldilocks::GoldilocksField as math::field::traits::IsField>::pow::<u64>
21 3,535 0.10% 99.36% 35 <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global>
22 3,375 0.09% 99.46% 135 stark::grinding::is_valid_nonce
23 2,800 0.08% 99.53% 112 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::ood_blocks_well_formed
24 2,425 0.07% 99.60% 97 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as crypto::fiat_shamir::is_transcript::IsStarkTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::goldilocks::GoldilocksField>>::sample_z_ood_with_domain_params
25 2,295 0.06% 99.66% 29 compiler_builtins::mem::memmove

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.66% of this step's cycles.

Step step2:claimed of 19,510,167 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 8,460,919 43.37% 43.37% 195 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
2 2,961,756 15.18% 58.55% 706 math::field::goldilocks::inv_addition_chain
3 1,101,634 5.65% 64.19% 1266 stark::lookup::emit_fingerprint::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
4 1,068,872 5.48% 69.67% 1793 <lambda_vm_prover::tables::ecdas::EcdasConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
5 906,874 4.65% 74.32% 874 <lambda_vm_prover::tables::ecsm::EcsmConstraints>::conv_carry::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
6 898,287 4.60% 78.92% 403 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
7 790,176 4.05% 82.97% 261 <lambda_vm_prover::tables::ecdas::EcdasConstraints>::rq::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
8 632,652 3.24% 86.22% 195 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul<&math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::mul
9 578,661 2.97% 89.18% 170 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::pow::<usize>
10 459,023 2.35% 91.54% 159 stark::lookup::emit_linear_terms::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
11 311,305 1.60% 93.13% 195 <&math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::mul
12 266,744 1.37% 94.50% 771 stark::lookup::emit_logup_constraints::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
13 207,337 1.06% 95.56% 870 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
14 200,564 1.03% 96.59% 91 stark::constraints::zerofier::evaluate_zerofier::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
15 126,327 0.65% 97.24% 238 stark::lookup::compute_alpha_powers::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
16 125,580 0.64% 97.88% 245 <core::iter::adapters::map::Map<core::iter::adapters::step_by::StepBy<core::ops::range::Range<usize>>, <stark::proof::view::StarkTableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::into_frame::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<stark::table::TableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <alloc::vec::Vec<stark::table::TableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::extend_trusted<core::iter::adapters::map::Map<core::iter::adapters::step_by::StepBy<core::ops::range::Range<usize>>, <stark::proof::view::StarkTableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::into_frame::{closure#0}>>::{closure#0}>::{closure#0}>
17 70,560 0.36% 98.24% 324 stark::lookup::emit_multiplicity::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
18 57,304 0.29% 98.54% 26 stark::constraints::zerofier::end_exemptions_roots::<math::field::goldilocks::GoldilocksField>
19 56,572 0.29% 98.83% 1211 <lambda_vm_prover::tables::ecsm::EcsmConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
20 41,775 0.21% 99.04% 919 <lambda_vm_prover::tables::keccak_rnd::KeccakRndConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
21 41,496 0.21% 99.25% 31 memset
22 31,805 0.16% 99.42% 124 lambda_vm_prover::constraints::templates::add_terms_expr::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
23 15,943 0.08% 99.50% 623 lambda_vm_prover::constraints::templates::emit_add_pair::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
24 6,825 0.03% 99.53% 39 <alloc::raw_vec::RawVecInner>::finish_grow
25 6,750 0.03% 99.57% 15 __rustc::__rust_alloc

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.57% of this step's cycles.

Step step3:fri of 109,858,474 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 91,259,152 83.07% 83.07% 4697 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri
2 4,828,950 4.40% 87.47% 706 math::field::goldilocks::inv_addition_chain
3 3,432,506 3.12% 90.59% 631 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::inplace_batch_inverse_sequential
4 2,485,667 2.26% 92.85% 616 math::fft::bowers_fft::process_fused_block::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
5 1,860,480 1.69% 94.55% 24 memset
6 1,470,950 1.34% 95.88% 403 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
7 1,159,824 1.06% 96.94% 48 lambda_vm_syscalls::keccak::keccak256_pair
8 833,003 0.76% 97.70% 79 <math::field::goldilocks::GoldilocksField as math::field::traits::IsField>::pow::<u64>
9 800,052 0.73% 98.43% 195 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
10 280,337 0.26% 98.68% 27 compiler_builtins::mem::memcpy
11 250,224 0.23% 98.91% 473 <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::evaluate_offset_fft::<math::field::goldilocks::GoldilocksField>
12 224,840 0.20% 99.11% 50 <lambda_vm_syscalls::keccak::Keccak256>::update
13 214,276 0.20% 99.31% 100 math::fft::bit_reversing::in_place_bit_reverse_permute::<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
14 146,225 0.13% 99.44% 161 <alloc::vec::Vec<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, core::iter::adapters::map::Map<core::slice::iter::Iter<usize>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri::{closure#1}>>>::from_iter
15 133,500 0.12% 99.56% 157 <math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>>::inplace_batch_inverse_sequential
16 97,685 0.09% 99.65% 153 <math::fft::bowers_fft::LayerTwiddles<math::field::goldilocks::GoldilocksField>>::build
17 88,110 0.08% 99.73% 15 __rustc::__rust_alloc
18 51,100 0.05% 99.78% 129 <alloc::vec::Vec<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::verify_query_and_sym_openings::{closure#2}>>>>::from_iter
19 44,968 0.04% 99.82% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
20 40,571 0.04% 99.86% 328 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::slice::iter::Iter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>, core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::scale<math::field::goldilocks::GoldilocksField>::{closure#0}>>, <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::scale<math::field::goldilocks::GoldilocksField>::{closure#1}>>>::from_iter
21 29,200 0.03% 99.88% 16 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::inplace_batch_inverse
22 26,284 0.02% 99.91% 318 math::fft::bowers_fft::bowers_fft_opt_fused::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
23 21,900 0.02% 99.93% 12 <stark::proof::view::StarkProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::query
24 13,110 0.01% 99.94% 38 <alloc::raw_vec::RawVecInner>::finish_grow
25 12,066 0.01% 99.95% 35 <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global>

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.95% of this step's cycles.

Step step4:openings of 85,918,563 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 40,297,030 46.90% 46.90% 77 <lambda_vm_syscalls::keccak::Keccak256>::update
2 21,592,994 25.13% 72.03% 176 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::verify_opening_pair::<math::field::goldilocks::GoldilocksField>
3 17,771,656 20.68% 92.72% 921 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
4 3,071,574 3.57% 96.29% 24 memset
5 1,734,480 2.02% 98.31% 48 lambda_vm_syscalls::keccak::keccak256_pair
6 891,761 1.04% 99.35% 27 compiler_builtins::mem::memcpy
7 274,902 0.32% 99.67% 78 <alloc::vec::Vec<stark::lookup::BusInteraction> as core::ops::drop::Drop>::drop
8 163,548 0.19% 99.86% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
9 59,754 0.07% 99.93% 95 core::ptr::drop_in_place::<stark::verifier::Challenges<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
10 26,380 0.03% 99.96% 124 stark::domain::new_verifier_domain::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>
11 17,424 0.02% 99.98% 1 __rustc::__rust_dealloc
12 11,736 0.01% 99.99% 2 memcpy
13 1,005 0.00% 99.99% 67 core::ptr::drop_in_place::<stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints>>
14 750 0.00% 100.00% 15 __rustc::__rust_alloc
15 696 0.00% 100.00% 29 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::trace_ood_next_row_columns
16 670 0.00% 100.00% 67 core::ptr::drop_in_place::<stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints>>
17 600 0.00% 100.00% 25 <hashbrown::raw::RawTable<(usize, core::option::Option<rkyv::de::pooling::alloc::SharedPointer>)> as core::ops::drop::Drop>::drop
18 572 0.00% 100.00% 572 core::ptr::drop_in_place::<lambda_vm_prover::VmAirs>
19 158 0.00% 100.00% 2 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::Update>::update
20 144 0.00% 100.00% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::options
21 127 0.00% 100.00% 127 lambda_vm_prover::recursion::program_id_from_digest
22 80 0.00% 100.00% 80 lambda_vm_prover::recursion::verify_and_attest_blob
23 63 0.00% 100.00% 63 lambda_vm_prover::verify_recursion_blob
24 60 0.00% 100.00% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::step_size
25 60 0.00% 100.00% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::context

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 100.00% of this step's cycles.

Real ethrex block, 4 transfers (blowup=4, 110 queries)

Total cycles: 1,258,232,526 · Unique PCs: 118,181 · Exec time: 39.834317808s

Top 25 functions by cycles (all steps)

Rank Cycles % Cum % PCs Function
1 326,505,827 25.95% 25.95% 4831 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri
2 166,097,972 13.20% 39.15% 353 <lambda_vm_syscalls::keccak::Keccak256>::update
3 108,422,672 8.62% 47.77% 391 <core::hash::sip::Hasher<core::hash::sip::Sip13Rounds> as core::hash::Hasher>::write
4 91,764,966 7.29% 55.06% 210 <std::hash::random::RandomState as core::hash::BuildHasher>::hash_one::<&(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>
5 79,901,301 6.35% 61.41% 165 memset
6 69,458,521 5.52% 66.93% 176 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::verify_opening_pair::<math::field::goldilocks::GoldilocksField>
7 61,453,208 4.88% 71.82% 3310 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
8 49,872,960 3.96% 75.78% 144 lambda_vm_syscalls::keccak::keccak256_pair
9 40,851,163 3.25% 79.03% 297 <stark::constraint_ir::builder::IrBuilder>::push
10 38,280,486 3.04% 82.07% 215 <executor::elf::Elf>::load
11 28,455,343 2.26% 84.33% 390 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
12 26,278,686 2.09% 86.42% 2824 math::field::goldilocks::inv_addition_chain
13 18,739,582 1.49% 87.91% 182 <stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::flatten
14 17,656,972 1.40% 89.31% 358 compiler_builtins::mem::memcpy
15 16,581,192 1.32% 90.63% 616 math::fft::bowers_fft::process_fused_block::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
16 14,374,690 1.14% 91.77% 1325 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::inplace_batch_inverse_sequential
17 9,896,595 0.79% 92.56% 185 <math::field::goldilocks::GoldilocksField as math::field::traits::IsField>::pow::<u64>
18 8,287,118 0.66% 93.22% 58 <alloc::rc::Rc<stark::constraints::builder::TreeNode>>::drop_slow
19 7,999,147 0.64% 93.85% 1209 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
20 6,720,814 0.53% 94.39% 270 <hashbrown::raw::RawTable<((stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32)>>::reserve_rehash::<hashbrown::map::make_hasher<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32, std::hash::random::RandomState>::{closure#0}>
21 5,457,893 0.43% 94.82% 42 <(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim) as hashbrown::Equivalent<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>>::equivalent
22 5,117,985 0.41% 95.23% 90 __rustc::__rust_alloc
23 4,490,723 0.36% 95.58% 510 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::pow::<usize>
24 3,998,656 0.32% 95.90% 32 <stark::constraints::builder::IrExpr>::leaf
25 2,513,840 0.20% 96.10% 242 <alloc::vec::Vec<stark::lookup::BusValue> as core::clone::Clone>::clone

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 96.10% of total cycles.

Step setup of 51 step cycles — top 3 functions
Rank Cycles % Cum % PCs Function
1 26 50.98% 50.98% 26 std::panicking::set_hook
2 16 31.37% 82.35% 16 main
3 9 17.65% 100.00% 9 lambda_vm_syscalls::allocator::init_allocator

Each function's cycles are summed over all its program counters in this table's scope; the top 3 cover 100.00% of this step's cycles.

Step airs_bus_balance of 352,386,050 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 108,409,852 30.76% 30.76% 165 <core::hash::sip::Hasher<core::hash::sip::Sip13Rounds> as core::hash::Hasher>::write
2 91,764,966 26.04% 56.81% 210 <std::hash::random::RandomState as core::hash::BuildHasher>::hash_one::<&(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>
3 40,851,163 11.59% 68.40% 297 <stark::constraint_ir::builder::IrBuilder>::push
4 38,280,486 10.86% 79.26% 215 <executor::elf::Elf>::load
5 18,739,582 5.32% 84.58% 182 <stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::flatten
6 8,287,118 2.35% 86.93% 58 <alloc::rc::Rc<stark::constraints::builder::TreeNode>>::drop_slow
7 6,720,814 1.91% 88.84% 270 <hashbrown::raw::RawTable<((stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32)>>::reserve_rehash::<hashbrown::map::make_hasher<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim), u32, std::hash::random::RandomState>::{closure#0}>
8 5,457,893 1.55% 90.39% 42 <(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim) as hashbrown::Equivalent<(stark::constraint_ir::ir::Op, stark::constraint_ir::ir::Dim)>>::equivalent
9 5,345,089 1.52% 91.90% 77 <lambda_vm_syscalls::keccak::Keccak256>::update
10 4,332,589 1.23% 93.13% 125 compiler_builtins::mem::memcpy
11 4,205,700 1.19% 94.33% 15 __rustc::__rust_alloc
12 3,998,656 1.13% 95.46% 32 <stark::constraints::builder::IrExpr>::leaf
13 2,457,007 0.70% 96.16% 41 <stark::constraints::builder::IrExpr as core::ops::arith::Mul>::mul
14 1,535,918 0.44% 96.59% 121 <alloc::vec::Vec<stark::lookup::BusValue> as core::clone::Clone>::clone
15 1,495,180 0.42% 97.02% 20 <rancor::Strategy<rkyv::validation::Validator<rkyv::validation::archive::validator::ArchiveValidator, rkyv::validation::shared::validator::SharedValidator>, rancor::Error> as rkyv::validation::archive::ArchiveContextExt<rancor::Error>>::in_subtree::<[[u8; 32]], (), <rkyv::vec::ArchivedVec<[u8; 32]> as bytecheck::Verify<rancor::Strategy<rkyv::validation::Validator<rkyv::validation::archive::validator::ArchiveValidator, rkyv::validation::shared::validator::SharedValidator>, rancor::Error>>>::verify::{closure#0}>
16 1,473,478 0.42% 97.44% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Add>::add
17 1,351,570 0.38% 97.82% 215 <stark::proof::stark::ArchivedDeepPolynomialOpening<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as bytecheck::CheckBytes<rancor::Strategy<rkyv::validation::Validator<rkyv::validation::archive::validator::ArchiveValidator, rkyv::validation::shared::validator::SharedValidator>, rancor::Error>>>::check_bytes
18 1,282,985 0.36% 98.18% 42 <stark::constraints::builder::IrExpr as core::ops::arith::Sub>::sub
19 988,680 0.28% 98.47% 58 <rkyv::vec::ArchivedVec<crypto::merkle_tree::proof::ArchivedProof<[u8; 32]>> as bytecheck::CheckBytes<rancor::Strategy<rkyv::validation::Validator<rkyv::validation::archive::validator::ArchiveValidator, rkyv::validation::shared::validator::SharedValidator>, rancor::Error>>>::check_bytes
20 545,792 0.15% 98.62% 456 stark::lookup::emit_fingerprint::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
21 475,200 0.13% 98.76% 971 <lambda_vm_prover::tables::ecdas::EcdasConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
22 418,272 0.12% 98.87% 150 <lambda_vm_prover::tables::ecdas::EcdasConstraints>::rq::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
23 391,100 0.11% 98.98% 434 <lambda_vm_prover::tables::ecsm::EcsmConstraints>::conv_carry::<stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
24 311,248 0.09% 99.07% 96 stark::lookup::emit_linear_terms::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::CaptureBuilder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
25 296,986 0.08% 99.16% 149 <alloc::vec::Vec<stark::lookup::BusInteraction> as core::clone::Clone>::clone

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.16% of this step's cycles.

Step multi_verify_setup of 15,968,595 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 15,936,425 99.80% 99.80% 77 <lambda_vm_syscalls::keccak::Keccak256>::update
2 7,728 0.05% 99.85% 112 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::ood_blocks_well_formed
3 7,315 0.05% 99.89% 493 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
4 3,342 0.02% 99.91% 27 compiler_builtins::mem::memcpy
5 2,088 0.01% 99.93% 29 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::trace_ood_next_row_columns
6 2,082 0.01% 99.94% 219 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::next_sample_u64
7 1,503 0.01% 99.95% 121 stark::domain::new_verifier_domain::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>
8 1,224 0.01% 99.96% 24 memset
9 1,170 0.01% 99.96% 15 __rustc::__rust_alloc
10 723 0.00% 99.97% 15 stark::lookup::logup_max_degree
11 694 0.00% 99.97% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::commit::CommitConstraints> as stark::traits::AIR>::composition_poly_degree_bound
12 448 0.00% 99.98% 224 lambda_vm_prover::statement::absorb_statement_with_digest::<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
13 368 0.00% 99.98% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::composition_poly_degree_bound
14 334 0.00% 99.98% 2 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::Update>::update
15 318 0.00% 99.98% 82 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::map::Map<core::ops::range::Range<usize>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#1}>>>::from_iter
16 252 0.00% 99.98% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
17 228 0.00% 99.99% 3 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::has_trace_interaction
18 222 0.00% 99.99% 37 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::FixedOutputReset>::finalize_into_reset
19 219 0.00% 99.99% 120 lambda_vm_prover::statement::absorb_continuation_global_statement::<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
20 176 0.00% 99.99% 88 lambda_vm_prover::continuation::verify_continuation_view
21 152 0.00% 99.99% 4 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::branch::BranchConstraints> as stark::traits::AIR>::trace_layout
22 144 0.00% 99.99% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::continuation::L2gMemoryConstraints> as stark::traits::AIR>::precomputed_commitment
23 138 0.00% 99.99% 2 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), lambda_vm_prover::tables::keccak::KeccakConstraints> as stark::traits::AIR>::num_auxiliary_rap_columns
24 128 0.00% 99.99% 16 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints> as stark::traits::AIR>::precomputed_commitment
25 114 0.00% 99.99% 3 <stark::lookup::AirWithBuses<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::lookup::NullBoundaryConstraintBuilder, (), stark::constraints::builder::EmptyConstraints> as stark::traits::AIR>::has_trace_interaction

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.99% of this step's cycles.

Step step1:replay of 10,064,471 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 2,034,417 20.21% 20.21% 1023 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
2 1,796,356 17.85% 38.06% 221 <core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::replay_rounds_after_round_1<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>> as core::iter::traits::iterator::Iterator>::next
3 1,598,738 15.88% 53.95% 72 <lambda_vm_syscalls::keccak::Keccak256>::update
4 1,036,160 10.30% 64.24% 219 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::next_sample_u64
5 652,793 6.49% 70.73% 27 compiler_builtins::mem::memcpy
6 582,942 5.79% 76.52% 257 stark::lookup::compute_alpha_powers::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
7 435,640 4.33% 80.85% 164 stark::ood::build_pruned_trace_term_coeffs::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
8 420,114 4.17% 85.02% 112 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_elem::SpecFromElem>::from_elem::<alloc::alloc::Global>
9 368,343 3.66% 88.68% 24 memset
10 189,344 1.88% 90.56% 100 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::replay_rounds_after_round_1<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>>>>::from_iter
11 182,729 1.82% 92.38% 217 stark::ood::reconstruct_ood_full::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
12 159,210 1.58% 93.96% 15 __rustc::__rust_alloc
13 125,511 1.25% 95.21% 75 <alloc::vec::Vec<usize> as alloc::vec::spec_from_iter::SpecFromIter<usize, core::iter::adapters::map::Map<core::ops::range::Range<usize>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::sample_query_indexes<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#0}>>>::from_iter
14 125,340 1.25% 96.45% 170 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::pow::<usize>
15 98,050 0.97% 97.43% 37 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::FixedOutputReset>::finalize_into_reset
16 79,996 0.79% 98.22% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
17 42,220 0.42% 98.64% 2 <crypto::hash::platform_keccak::imp::PlatformKeccak256 as digest::Update>::update
18 22,677 0.23% 98.87% 33 <math::field::goldilocks::GoldilocksField as math::field::traits::IsField>::pow::<u64>
19 17,994 0.18% 99.05% 94 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::map::Map<core::slice::iter::Iter<[u8; 32]>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::replay_rounds_after_round_1<crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::{closure#1}>>>::from_iter
20 13,980 0.14% 99.19% 46 <alloc::raw_vec::RawVecInner>::finish_grow
21 10,683 0.11% 99.29% 1 __rustc::__rust_no_alloc_shim_is_unstable_v2
22 9,315 0.09% 99.38% 135 stark::grinding::is_valid_nonce
23 8,435 0.08% 99.47% 35 <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global>
24 7,728 0.08% 99.55% 112 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::ood_blocks_well_formed
25 6,693 0.07% 99.61% 97 <crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as crypto::fiat_shamir::is_transcript::IsStarkTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::goldilocks::GoldilocksField>>::sample_z_ood_with_domain_params

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.61% of this step's cycles.

Step step2:claimed of 43,538,402 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 17,457,741 40.10% 40.10% 195 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
2 6,224,418 14.30% 54.39% 706 math::field::goldilocks::inv_addition_chain
3 4,355,885 10.00% 64.40% 170 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::pow::<usize>
4 2,252,437 5.17% 69.57% 1266 stark::lookup::emit_fingerprint::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
5 2,137,744 4.91% 74.48% 1793 <lambda_vm_prover::tables::ecdas::EcdasConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
6 1,881,204 4.32% 78.80% 403 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
7 1,813,748 4.17% 82.97% 874 <lambda_vm_prover::tables::ecsm::EcsmConstraints>::conv_carry::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
8 1,580,352 3.63% 86.60% 261 <lambda_vm_prover::tables::ecdas::EcdasConstraints>::rq::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
9 1,369,952 3.15% 89.74% 195 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul<&math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::mul
10 926,714 2.13% 91.87% 159 stark::lookup::emit_linear_terms::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
11 686,041 1.58% 93.45% 195 <&math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::mul
12 547,294 1.26% 94.71% 771 stark::lookup::emit_logup_constraints::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
13 446,537 1.03% 95.73% 870 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
14 418,509 0.96% 96.69% 91 stark::constraints::zerofier::evaluate_zerofier::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
15 272,544 0.63% 97.32% 238 stark::lookup::compute_alpha_powers::<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
16 265,812 0.61% 97.93% 245 <core::iter::adapters::map::Map<core::iter::adapters::step_by::StepBy<core::ops::range::Range<usize>>, <stark::proof::view::StarkTableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::into_frame::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<stark::table::TableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <alloc::vec::Vec<stark::table::TableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::extend_trusted<core::iter::adapters::map::Map<core::iter::adapters::step_by::StepBy<core::ops::range::Range<usize>>, <stark::proof::view::StarkTableView<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::into_frame::{closure#0}>>::{closure#0}>::{closure#0}>
17 145,246 0.33% 98.26% 324 stark::lookup::emit_multiplicity::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
18 119,574 0.27% 98.54% 26 stark::constraints::zerofier::end_exemptions_roots::<math::field::goldilocks::GoldilocksField>
19 113,144 0.26% 98.80% 1211 <lambda_vm_prover::tables::ecsm::EcsmConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
20 87,408 0.20% 99.00% 31 memset
21 83,550 0.19% 99.19% 919 <lambda_vm_prover::tables::keccak_rnd::KeccakRndConstraints as stark::constraints::builder::ConstraintSet<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::eval::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
22 65,878 0.15% 99.34% 124 lambda_vm_prover::constraints::templates::add_terms_expr::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
23 35,120 0.08% 99.42% 623 lambda_vm_prover::constraints::templates::emit_add_pair::<stark::constraints::builder::VerifierEvalFolder<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
24 18,837 0.04% 99.47% 39 <alloc::raw_vec::RawVecInner>::finish_grow
25 18,630 0.04% 99.51% 15 __rustc::__rust_alloc

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.51% of this step's cycles.

Step step3:fri of 517,505,037 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 326,504,585 63.09% 63.09% 4813 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri
2 51,444,726 9.94% 73.03% 24 memset
3 32,197,440 6.22% 79.25% 48 lambda_vm_syscalls::keccak::keccak256_pair
4 20,037,186 3.87% 83.13% 706 math::field::goldilocks::inv_addition_chain
5 16,581,192 3.20% 86.33% 616 math::fft::bowers_fft::process_fused_block::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
6 14,302,732 2.76% 89.09% 631 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::inplace_batch_inverse_sequential
7 10,997,602 2.13% 91.22% 195 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Mul>::mul
8 9,865,719 1.91% 93.13% 79 <math::field::goldilocks::GoldilocksField as math::field::traits::IsField>::pow::<u64>
9 8,395,104 1.62% 94.75% 27 compiler_builtins::mem::memcpy
10 7,007,000 1.35% 96.10% 50 <lambda_vm_syscalls::keccak::Keccak256>::update
11 6,117,540 1.18% 97.28% 403 <math::field::extensions_goldilocks::Degree3GoldilocksExtensionField as math::field::traits::IsField>::inv
12 2,308,015 0.45% 97.73% 318 math::fft::bowers_fft::bowers_fft_opt_fused::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>
13 2,036,935 0.39% 98.12% 473 <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::evaluate_offset_fft::<math::field::goldilocks::GoldilocksField>
14 1,638,010 0.32% 98.44% 134 <alloc::vec::Vec<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, core::iter::adapters::take::Take<core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::verify_query_and_sym_openings::{closure#2}>>>>::from_iter
15 1,533,366 0.30% 98.74% 100 math::fft::bit_reversing::in_place_bit_reverse_permute::<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
16 1,401,400 0.27% 99.01% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
17 790,928 0.15% 99.16% 153 <math::fft::bowers_fft::LayerTwiddles<math::field::goldilocks::GoldilocksField>>::build
18 650,837 0.13% 99.29% 328 <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::slice::iter::Iter<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>, core::iter::sources::successors::Successors<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::scale<math::field::goldilocks::GoldilocksField>::{closure#0}>>, <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::scale<math::field::goldilocks::GoldilocksField>::{closure#1}>>>::from_iter
19 605,268 0.12% 99.40% 161 <alloc::vec::Vec<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>> as alloc::vec::spec_from_iter::SpecFromIter<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>, core::iter::adapters::map::Map<core::slice::iter::Iter<usize>, <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::step_3_verify_fri::{closure#1}>>>::from_iter
20 554,829 0.11% 99.51% 157 <math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>>::inplace_batch_inverse_sequential
21 447,450 0.09% 99.60% 15 __rustc::__rust_alloc
22 375,760 0.07% 99.67% 61 <math::field::element::FieldElement<math::field::goldilocks::GoldilocksField> as core::ops::arith::Mul<&math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::mul
23 355,756 0.07% 99.74% 38 <alloc::raw_vec::RawVecInner>::finish_grow
24 327,606 0.06% 99.80% 35 <alloc::raw_vec::RawVecInner<_>>::reserve::do_reserve_and_handle::<alloc::alloc::Global>
25 264,880 0.05% 99.85% 43 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField> as core::ops::arith::Add>::add

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.85% of this step's cycles.

Step step4:openings of 318,769,920 step cycles — top 25 functions
Rank Cycles % Cum % PCs Function
1 136,210,720 42.73% 42.73% 77 <lambda_vm_syscalls::keccak::Keccak256>::update
2 69,458,521 21.79% 64.52% 176 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::verify_opening_pair::<math::field::goldilocks::GoldilocksField>
3 58,964,732 18.50% 83.02% 921 <stark::verifier::Verifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()> as stark::verifier::IsStarkVerifier<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>>::multi_verify_views::<stark::proof::view::MultiProofView<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>, crypto::fiat_shamir::default_transcript::DefaultTranscript<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
4 27,859,839 8.74% 91.76% 31 memset
5 17,663,280 5.54% 97.30% 48 lambda_vm_syscalls::keccak::keccak256_pair
6 4,267,864 1.34% 98.64% 125 compiler_builtins::mem::memcpy
7 977,922 0.31% 98.94% 121 <alloc::vec::Vec<stark::lookup::BusValue> as core::clone::Clone>::clone
8 707,824 0.22% 99.17% 78 <alloc::vec::Vec<stark::lookup::BusInteraction> as core::ops::drop::Drop>::drop
9 697,228 0.22% 99.38% 28 <lambda_vm_syscalls::keccak::Keccak256>::finalize
10 290,997 0.09% 99.48% 252 math::fft::bowers_fft::process_fused_block::<math::field::goldilocks::GoldilocksField, math::field::goldilocks::GoldilocksField>
11 285,825 0.09% 99.57% 15 __rustc::__rust_alloc
12 193,516 0.06% 99.63% 149 <alloc::vec::Vec<stark::lookup::BusInteraction> as core::clone::Clone>::clone
13 124,880 0.04% 99.67% 95 core::ptr::drop_in_place::<stark::verifier::Challenges<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>
14 113,983 0.04% 99.70% 241 <core::iter::adapters::map::Map<core::ops::range::Range<usize>, stark::commitment::keccak_leaves_bit_reversed_grouped<math::field::goldilocks::GoldilocksField>::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<[u8; 32], <alloc::vec::Vec<[u8; 32]>>::extend_trusted<core::iter::adapters::map::Map<core::ops::range::Range<usize>, stark::commitment::keccak_leaves_bit_reversed_grouped<math::field::goldilocks::GoldilocksField>::{closure#1}>>::{closure#0}>::{closure#0}>
15 88,170 0.03% 99.73% 414 <math::polynomial::Polynomial<math::field::element::FieldElement<math::field::goldilocks::GoldilocksField>>>::evaluate_offset_fft::<math::field::goldilocks::GoldilocksField>
16 71,954 0.02% 99.75% 2320 lambda_vm_prover::tables::keccak_rnd::bus_interactions
17 66,300 0.02% 99.77% 612 <math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>::inplace_batch_inverse_sequential
18 61,150 0.02% 99.79% 25 <stark::lookup::BusValue>::constant
19 60,390 0.02% 99.81% 2 memcpy
20 60,048 0.02% 99.83% 249 math::fft::bowers_fft::process_ifft_fused_block::<math::field::goldilocks::GoldilocksField, math::field::goldilocks::GoldilocksField>
21 51,954 0.02% 99.85% 221 math::fft::bowers_fft::bowers_fft_opt_fused::<math::field::goldilocks::GoldilocksField, math::field::goldilocks::GoldilocksField>
22 50,910 0.02% 99.86% 153 <math::fft::bowers_fft::LayerTwiddles<math::field::goldilocks::GoldilocksField>>::build
23 48,752 0.02% 99.88% 124 stark::domain::new_verifier_domain::<math::field::goldilocks::GoldilocksField, math::field::extensions_goldilocks::Degree3GoldilocksExtensionField, ()>
24 42,987 0.01% 99.89% 1 __rustc::__rust_dealloc
25 32,542 0.01% 99.90% 265 <core::iter::adapters::map::Map<core::iter::adapters::enumerate::Enumerate<core::slice::iter::Iter<u8>>, lambda_vm_prover::compute_commit_bus_offset::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>, <alloc::vec::Vec<math::field::element::FieldElement<math::field::extensions_goldilocks::Degree3GoldilocksExtensionField>>>::extend_trusted<core::iter::adapters::map::Map<core::iter::adapters::enumerate::Enumerate<core::slice::iter::Iter<u8>>, lambda_vm_prover::compute_commit_bus_offset::{closure#0}>>::{closure#0}>::{closure#0}>

Each function's cycles are summed over all its program counters in this table's scope; the top 25 cover 99.90% of this step's cycles.

Commit: 2b0f470 · Runner: self-hosted bench

jotabulacios and others added 7 commits August 4, 2026 17:40
Mechanical follow-ups on the allocator swap. No behaviour change on any
path that runs today; the one code change closes a failure mode that is
currently prevented by a linker flag rather than by anything in this file.

benchmark-pr.yml missed syscalls. The push-to-main paths filter listed
prover, crypto, executor, bin/cli, tooling/ethrex-fixtures and the
Makefile, but not syscalls -- so a change landing only in syscalls, which
is exactly what this branch is, would not refresh main's benchmark
baseline. syscalls is linked into the guest ELF, so an allocator swap
moves cycles on every workload; main's baseline would have stayed stale
until some prover file happened to change, and until then the comparison
guard would have suppressed the table. pr_main.yaml:99 already hashes
'syscalls/**' into the guest-ELF cache key, so the two workflows
disagreed about what rebuilds the guest.

Two lockfiles still carried embedded-alloc. crypto/ethrex-crypto and
tooling/ethrex-block-converter are detached workspaces with their own
Cargo.locks, which is why the sweep missed them: both still listed
embedded-alloc under lambda-vm-syscalls after syscalls/Cargo.toml stopped
declaring it. Regenerated via cargo metadata in each workspace. The only
removals are embedded-alloc's own transitive tree (const-default,
linked_list_allocator, rlsf, and in ethrex-crypto also rustversion,
svgbobdoc, base64 0.13, syn 1.0.109, unicode-width); no other package's
version moved. The 10 added lines are all ` "syn",` losing its
version-disambiguation suffix now that only one syn remains.
bench_vs/sp1/fibonacci/Cargo.lock also names embedded-alloc, but that is
sp1-zkvm 6.0.1's own dependency and is left alone.

imp::init is now idempotent in both arms. Both arms stored HEAP_POS
unconditionally, so a second call rewound the cursor back over live
allocations. With alloc_zeroed's memset removed -- sound only because bump
never re-serves a region -- the next alloc_zeroed would then return dirty
bytes, and the guest would compute on garbage while the prover produced a
perfectly valid proof of that wrong execution. No crash and no
diagnostic, so it is worth a guard rather than a comment. HEAP_END serves
as the initialized flag (init_allocator always passes a nonzero
MAX_MEMORY_SIZE), a debug_assert makes a double call loud in debug
builds, and the host tests gain a #[cfg(test)] reset() since they
deliberately re-point the global cursor at their own heap.

Worth stating why this could not happen already, because the reason is
not the call sites: all six guests that call init_allocator() explicitly
also override the ELF entry with `-C link-arg=-e -C link-arg=main` in
their .cargo/config.toml, so _start -- the only other caller -- never runs
for them, and guests entering through _start never call it explicitly.
The safety rested on an entry-point flag; a guest that dropped `-e main`
while keeping its explicit call would have rewound.

Three comment corrections and one warning.

- The dlmalloc dep comment called it the allocator to pick "for
  continuations". Wrong criterion: continuations are a prover-side split
  of a single guest execution and change nothing about what the guest
  allocates. The criterion is a guest whose cumulative allocation has no
  per-execution bound, which is how src/allocator.rs already frames it.

- allocates_zeros()'s comment described an "mmapped marker" that dlmalloc
  may set. There is no marker bit: Chunk::mmapped(p) is
  `(*p).head & INUSE == 0`, the absence of both in-use bits
  (dlmalloc 0.2.14 src/dlmalloc.rs:1805). The old comment's "the Rust
  port has no mmap path, so nothing is ever mmapped" is also not quite
  true -- init_top (dlmalloc.rs:789) writes a segment-end sentinel with
  head = top_foot_size() = 80 on 64-bit, and 80 & INUSE == 0, so that
  sentinel is mmapped()-true (harmless: never returned to a caller).
  Replaced with the durable argument: every path that returns a pointer
  to a caller goes through set_inuse / set_inuse_and_pinuse /
  set_size_and_pinuse_of_inuse_chunk, all of which set CINUSE, and
  calloc_must_clear is only ever evaluated on a user pointer, so no user
  chunk is ever mmapped. Consequence the old comment omitted:
  calloc_must_clear is therefore always true, calloc always memsets, and
  allocates_zeros() == true is inert -- not a performance win, kept only
  for correctness-by-construction should upstream grow an mmap path.

- The comment on the bump arm's checked_add claimed the overflow is
  unconstructible from the Layout invariant alone. It is not: Layout
  gives size <= isize::MAX - (align - 1), which with
  aligned <= pos + align - 1 bounds aligned + size <= pos + isize::MAX,
  and that is < 2^64 only if pos < 2^63. The missing half is that alloc
  stores new_pos only when new_pos <= HEAP_END, so pos <= HEAP_END =
  0xC000_0000. The checked_add stays -- it keeps the argument local to
  alloc instead of resting on both halves.

- New note on the DLMALLOC static: an initialized Dlmalloc is
  address-sensitive and must never be moved. smallbin_at returns a
  pointer into self.smallbins and init_bins writes self-pointers into
  that array, so relocating it after first use (into a Box, a OnceCell,
  or a local) silently corrupts the bins. Safe as a static; the note is
  for whoever refactors it.

Verified: syscalls tests pass on both arms -- 9 passed on the default
bump arm (5 allocator + 4 keccak) and 12 on --features dlmalloc-alloc
(8 allocator + 4 keccak). cargo fmt --check and cargo clippy --all-targets
clean on both arms (the two surviving warnings are pre-existing
manual_is_multiple_of in src/keccak.rs:104-105). benchmark-pr.yml parses
and its paths list resolves to the seven expected entries.
…ollowups

fix(syscalls): review follow-ups for the bump allocator default
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Benchmark Results for modified programs 🚀

Command Mean [ms] Min [ms] Max [ms] Relative
head ecsm 2.8 ± 0.5 2.3 3.6 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
head hashmap 90.7 ± 2.9 88.1 96.0 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
head keccak 106.7 ± 1.7 104.9 110.1 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
head syscall_commit 72.3 ± 1.7 70.8 75.3 1.00

@MauroToscano

Copy link
Copy Markdown
Contributor

Reviewed the allocator swap end to end (both arms built for riscv64 and executed against an alloc probe; no correctness bugs found). The zero-init invariant the alloc_zeroed memset skip now depends on holds at three independent layers — executor misses return unwrap_or_default(), the prover's replay fills (0,0), and page genesis is zero_init bound to the static zero-page root, which the verifier rebuilds from the ELF rather than trusting the prover. Worth noting that skip is newly load-bearing: embedded-alloc never implemented alloc_zeroed, so main got std's default alloc+memset.

Three things to settle, all in the docs rather than the code.

1. The ceiling claim — now measured, and it holds. Execute-only heap probe over 8 fixtures spanning 0.42M–63M gas:

gas cumulative alloc marginal B/gas
2.43M (real, contract-heavy) 9.4 MB
4.24M (real, contract-heavy) 15.1 MB
31.5M (1500 transfers) 72.1 MB 2.211
63M (3000 transfers) 142.0 MB 2.219

alloc = 2.55 MB + 2.213 B/gas × gas, R² = 0.999993. The marginal rate is flat (2.175–2.289) across a 150× gas range, so allocation is linear — there is no superlinear term, which was the only route to exhaustion. At the contract-heavy rate of 3.87 B/gas a gas-full block lands at ~232 MB, a 13.9× margin; exhaustion needs ~832M gas.

This also puts the first number on the doc's own claim: 1500 transfers measured 72.1 MB at 528,619,812 cycles (the doc says 523M — same block). "Room to spare" is right, and it's 44×.

So the ceiling is fine. But the ceiling note should say so with the numbers, and restore the exception 7a35864a had — "contract-heavy blocks allocate more per transaction and are not covered by that bound" — which the current text replaced with the universal "A single block cannot reach it" without a new measurement in between. The gas argument bounds transactions per gas; the binding quantity is bytes per gas, and transfers roughly minimise it.

2. The gas-limit figure in that note is stale. It says a gas-full block is 31.5M gas; mainnet's limit is 60M, so the margin as written reads ~2× better than it is. (Still 13.9× after correcting.)

3. Narrow the performance claims to what was measured. As written they don't support the change:

  • "~9% fewer guest cycles" is bump vs dlmalloc — an allocator that was never the default, so it isn't an argument for replacing TLSF.
  • "~11% faster than TLSF to prove" is the only bump-vs-TLSF number, and it comes from the synthetic transfer fixtures via the monolithic path — the workload benchmark-pr.yml documents as "~5.8x the work of the synthetic block with a ~18x different keccak:ecrecover mix", dropped from /bench because "a prover change can move the synthetic number and the real one in opposite directions".
  • On the real block this PR measures no significant change (CPU) and INCONCLUSIVE at +0.30% (GPU, p=0.67, n=14).
  • "never came out behind on any deterministic metric on any workload" is falsified by the PR's own bot: peak heap +510 MB (+1.1%), which scripts/BENCHMARKS.md classifies as deterministic.

Suggested: state the win as measured on the transfer fixtures, and say plainly it is not resolvable on the real block.

Also worth a line: nothing in the repo enables dlmalloc-alloc — no guest manifest, no Makefile rule, no CI build. It is never compiled for riscv64 anywhere, so DlGlobal is currently exercised by nothing. Given the recursion guest is being retired and no remaining guest has unbounded churn, that's defensible — but the docs should say the feature has no consumer today rather than implying one needs it.

Separately, still open from the earlier pass: heap exhaustion spins rather than failing, so OOM is an unbounded-cycle hazard rather than a rejectable error. The 13.9× margin makes that unlikely to trigger, but an #[alloc_error_handler]/abort path protects every future block rather than the ones measured here. Worth an explicit ship / don't-ship decision.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Benchmark Results for unmodified programs 🚀

Command Mean [ms] Min [ms] Max [ms] Relative
base binary_search 46.7 ± 1.4 45.0 49.7 1.01 ± 0.04
head binary_search 46.2 ± 1.3 45.1 48.9 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base bitwise_ops 46.6 ± 1.1 45.1 48.2 1.01 ± 0.03
head bitwise_ops 46.1 ± 1.0 45.1 48.1 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base fibonacci_26 48.5 ± 0.9 47.4 49.8 1.00
head fibonacci_26 49.4 ± 1.4 47.7 51.8 1.02 ± 0.03
Command Mean [ms] Min [ms] Max [ms] Relative
base matrix_multiply 51.0 ± 0.9 50.4 53.3 1.00
head matrix_multiply 51.1 ± 0.8 50.0 52.4 1.00 ± 0.02
Command Mean [ms] Min [ms] Max [ms] Relative
base modular_exp 46.7 ± 1.1 45.6 48.1 1.00
head modular_exp 46.9 ± 1.3 45.6 49.1 1.00 ± 0.04
Command Mean [ms] Min [ms] Max [ms] Relative
base quicksort 48.9 ± 1.1 47.8 50.4 1.00
head quicksort 51.5 ± 2.6 48.4 56.3 1.05 ± 0.06
Command Mean [ms] Min [ms] Max [ms] Relative
base sieve 50.8 ± 0.8 49.7 51.9 1.00
head sieve 50.8 ± 1.2 49.5 52.7 1.00 ± 0.03
Command Mean [ms] Min [ms] Max [ms] Relative
base sum_array 57.0 ± 1.1 55.3 58.9 1.00 ± 0.03
head sum_array 56.7 ± 1.0 55.0 57.7 1.00

… dlmalloc guest-allocator fallback tests and the ethrex-crypto host tests
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.

5 participants