Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Further ClientIVC breakdown (#5146)
Further breakdown of the ClientIVC benchmarks, showing the contributions of major operations (e.g. commitments, combiner computation), and breaking down Protogalaxy prover and ECCVM prover construction costs. ``` Benchmarking lock created at ~/BENCHMARK_IN_PROGRESS. client_ivc_bench 100% 15MB 48.4MB/s 00:00 2024-03-12T03:38:23+00:00 Running ./client_ivc_bench Run on (16 X 3000 MHz CPU s) CPU Caches: L1 Data 32 KiB (x8) L1 Instruction 32 KiB (x8) L2 Unified 1024 KiB (x8) L3 Unified 36608 KiB (x1) Load Average: 0.00, 0.00, 0.11 -------------------------------------------------------------------------------- Benchmark Time CPU Iterations UserCounters... -------------------------------------------------------------------------------- ClientIVCBench/Full/6 29446 ms 24872 ms 1 Decider::construct_proof=1 Decider::construct_proof(t)=753.082M ECCVMComposer::compute_commitment_key=1 ECCVMComposer::compute_commitment_key(t)=3.78026M ECCVMComposer::compute_witness=1 ECCVMComposer::compute_witness(t)=1.73739G ECCVMComposer::create_prover=1 ECCVMComposer::create_prover(t)=3.40893G ECCVMComposer::create_proving_key=1 ECCVMComposer::create_proving_key(t)=1.66752G ECCVMProver::construct_proof=1 ECCVMProver::construct_proof(t)=1.76066G Goblin::merge=11 Goblin::merge(t)=128.627M GoblinTranslatorCircuitBuilder::constructor=1 GoblinTranslatorCircuitBuilder::constructor(t)=56.5845M GoblinTranslatorComposer::create_prover=1 GoblinTranslatorComposer::create_prover(t)=123.279M GoblinTranslatorProver::construct_proof=1 GoblinTranslatorProver::construct_proof(t)=927.524M ProtoGalaxyProver_::accumulator_update_round=10 ProtoGalaxyProver_::accumulator_update_round(t)=3.46156G ProtoGalaxyProver_::combiner_quotient_round=10 ProtoGalaxyProver_::combiner_quotient_round(t)=7.17713G ProtoGalaxyProver_::perturbator_round=10 ProtoGalaxyProver_::perturbator_round(t)=1.38221G ProtoGalaxyProver_::preparation_round=10 ProtoGalaxyProver_::preparation_round(t)=4.1G ProtogalaxyProver::fold_instances=10 ProtogalaxyProver::fold_instances(t)=16.1209G ProverInstance(Circuit&)=11 ProverInstance(Circuit&)(t)=1.945G batch_mul_with_endomorphism=30 batch_mul_with_endomorphism(t)=562.528M commit=425 commit(t)=3.96966G compute_combiner=10 compute_combiner(t)=7.175G compute_perturbator=9 compute_perturbator(t)=1.38188G compute_univariate=48 compute_univariate(t)=1.41821G construct_circuits=6 construct_circuits(t)=4.20217G Benchmarking lock deleted. client_ivc_bench.json 100% 4015 130.4KB/s 00:00 function ms % sum construct_circuits(t) 4202 14.31% ProverInstance(Circuit&)(t) 1945 6.62% ProtogalaxyProver::fold_instances(t) 16121 54.89% Decider::construct_proof(t) 753 2.56% ECCVMComposer::create_prover(t) 3409 11.61% GoblinTranslatorComposer::create_prover(t) 123 0.42% ECCVMProver::construct_proof(t) 1761 5.99% GoblinTranslatorProver::construct_proof(t) 928 3.16% Goblin::merge(t) 129 0.44% Total time accounted for: 29370ms/29446ms = 99.74% Major contributors: function ms % sum commit(t) 3970 13.52% compute_combiner(t) 7175 24.43% compute_perturbator(t) 1382 4.71% compute_univariate(t) 1418 4.83% Breakdown of ECCVMProver::create_prover: ECCVMComposer::compute_witness(t) 1737 50.97% ECCVMComposer::create_proving_key(t) 1668 48.92% Breakdown of ProtogalaxyProver::fold_instances: ProtoGalaxyProver_::preparation_round(t) 4100 25.43% ProtoGalaxyProver_::perturbator_round(t) 1382 8.57% ProtoGalaxyProver_::combiner_quotient_round(t) 7177 44.52% ProtoGalaxyProver_::accumulator_update_round(t) 3462 21.47% ```
- Loading branch information