Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: new Tracy Time preset and more efficient univariate extension (#…
…8789) We add a new script `benchmark_tracy_build_mainframe_run_local.sh`that will copy the executable to local and run it there instead. We also add a new tracy-time preset that reuses the BB_OP_COUNT_TIME statements around the codebase to mark zones. We add a new extend_from function that is more efficient than the existing extend_to function. From using the new extend_from function, we see improvements to the combiner round. ``` -------------------------------------------------------------------------------- Benchmark Time CPU Iterations UserCounters... -------------------------------------------------------------------------------- ClientIVCBench/Full/6 32719 ms 30147 ms 1 Arithmetic::accumulate=3.89126M Arithmetic::accumulate(t)=7.36388G Auxiliary::accumulate=1.98134M Auxiliary::accumulate(t)=13.3567G COMMIT::databus=108 COMMIT::databus(t)=8.37903M COMMIT::databus_inve rses=36 COMMIT::databus_inverses(t)=11.6069M COMMIT::ecc_op_wires=48 COMMIT::ecc_op_wires(t)=38.5805M COMMIT::lookup_counts_tags=12 COMMIT::lookup_counts_tags(t)=106.101M COMMIT::lookup_inverses=12 COMMIT::lookup_inverses(t)=257.04M COMMIT::wires=24 COMMIT::wires(t )=2.21684G COMMIT::z_perm=12 COMMIT::z_perm(t)=2.31257G DatabusRead::accumulate=447 DatabusRead::accumulate(t)=1.64643M Decider::construct_proof=1 Decider::construct_proof(t)=1.585G DeciderProvingKey(Circuit&)=12 DeciderProvingKey(Circuit&)(t)=2.60037G DeltaRange:: accumulate=1.87876M DeltaRange::accumulate(t)=4.23593G ECCVMProver(CircuitBuilder&)=1 ECCVMProver(CircuitBuilder&)(t)=229.56M ECCVMProver::construct_proof=1 ECCVMProver::construct_proof(t)=2.59633G Elliptic::accumulate=183.692k Elliptic::accumulate(t)=464.215M Gobl in::merge=23 Goblin::merge(t)=116.512M Lookup::accumulate=1.66363M Lookup::accumulate(t)=3.69157G MegaFlavor::get_row=6.18564M MegaFlavor::get_row(t)=4.21736G OinkProver::execute_grand_product_computation_round=12 OinkProver::execute_grand_product_computation_round (t)=3.58134G OinkProver::execute_log_derivative_inverse_round=12 OinkProver::execute_log_derivative_inverse_round(t)=2.47144G OinkProver::execute_preamble_round=12 OinkProver::execute_preamble_round(t)=151.77k OinkProver::execute_sorted_list_accumulator_round=12 Oi nkProver::execute_sorted_list_accumulator_round(t)=681.46M OinkProver::execute_wire_commitments_round=12 OinkProver::execute_wire_commitments_round(t)=1.69618G OinkProver::generate_alphas_round=12 OinkProver::generate_alphas_round(t)=3.44188M Permutation::accumulat e=10.6427M Permutation::accumulate(t)=40.6403G PoseidonExt::accumulate=30.452k PoseidonExt::accumulate(t)=77.2342M PoseidonInt::accumulate=210.454k PoseidonInt::accumulate(t)=374.93M ProtogalaxyProver::prove=11 ProtogalaxyProver::prove(t)=19.5955G ProtogalaxyProver _::combiner_quotient_round=11 ProtogalaxyProver_::combiner_quotient_round(t)=8.44199G ProtogalaxyProver_::compute_row_evaluations=11 ProtogalaxyProver_::compute_row_evaluations(t)=1.97625G ProtogalaxyProver_::perturbator_round=11 ProtogalaxyProver_::perturbator_rou nd(t)=2.87543G ProtogalaxyProver_::run_oink_prover_on_each_incomplete_key=11 ProtogalaxyProver_::run_oink_prover_on_each_incomplete_key(t)=7.60574G ProtogalaxyProver_::update_target_sum_and_fold=11 ProtogalaxyProver_::update_target_sum_and_fold(t)=672.3M Translator CircuitBuilder::constructor=1 TranslatorCircuitBuilder::constructor(t)=33.0787M TranslatorProver=1 TranslatorProver(t)=46.9695M TranslatorProver::construct_proof=1 TranslatorProver::construct_proof(t)=838.946M batch_mul_with_endomorphism=16 batch_mul_with_endomorph ism(t)=407.175M commit=543 commit(t)=6.55046G commit_sparse=36 commit_sparse(t)=11.5922M compute_combiner=11 compute_combiner(t)=8.04092G compute_perturbator=11 compute_perturbator(t)=2.87517G compute_univariate=51 compute_univariate(t)=2.18992G construct_circuits= 12 construct_circuits(t)=4.20212G pippenger=215 pippenger(t)=101.133M pippenger_unsafe_optimized_for_non_dyadic_polys=543 pippenger_unsafe_optimized_for_non_dyadic_polys(t)=6.54615G Benchmarking lock deleted. client_ivc_bench.json 100% 6912 245.8KB/s 00:00 function ms % sum construct_circuits(t) 4202 13.23% DeciderProvingKey(Circuit&)(t) 2600 8.19% ProtogalaxyProver::prove(t) 19596 61.69% Decider::construct_proof(t) 1585 4.99% ECCVMProver(CircuitBuilder&)(t) 230 0.72% ECCVMProver::construct_proof(t) 2596 8.17% TranslatorProver::construct_proof(t) 839 2.64% Goblin::merge(t) 117 0.37% Total time accounted for: 31764ms/32719ms = 97.08% Major contributors: function ms % sum commit(t) 6550 20.62% compute_combiner(t) 8041 25.31% compute_perturbator(t) 2875 9.05% compute_univariate(t) 2190 6.89% Breakdown of ProtogalaxyProver::prove: ProtogalaxyProver_::run_oink_prover_on_each_incomplete_key(t) 7606 38.81% ProtogalaxyProver_::perturbator_round(t) 2875 14.67% ProtogalaxyProver_::combiner_quotient_round(t) 8442 43.08% ProtogalaxyProver_::update_target_sum_and_fold(t) 672 3.43% Relation contributions (times to be interpreted relatively): Total time accounted for (ms): 70206 operation ms % sum Arithmetic::accumulate(t) 7364 10.49% Permutation::accumulate(t) 40640 57.89% Lookup::accumulate(t) 3692 5.26% DeltaRange::accumulate(t) 4236 6.03% Elliptic::accumulate(t) 464 0.66% Auxiliary::accumulate(t) 13357 19.02% EccOp::accumulate(t) 0 0.00% DatabusRead::accumulate(t) 2 0.00% PoseidonExt::accumulate(t) 77 0.11% PoseidonInt::accumulate(t) 375 0.53% Commitment contributions: Total time accounted for (ms): 4951 operation ms % sum COMMIT::wires(t) 2217 44.77% COMMIT::z_perm(t) 2313 46.71% COMMIT::databus(t) 8 0.17% COMMIT::ecc_op_wires(t) 39 0.78% COMMIT::lookup_inverses(t) 257 5.19% COMMIT::databus_inverses(t) 12 0.23% ``` --------- Co-authored-by: lucasxia01 <lucasxia01@gmail.com>
- Loading branch information