Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Barretenberg compilation time #573

Open
codygunton opened this issue Jul 3, 2023 · 2 comments
Open

Barretenberg compilation time #573

codygunton opened this issue Jul 3, 2023 · 2 comments
Labels

Comments

@codygunton
Copy link
Collaborator

We have been working to address the time needed to compile Barretenberg (eg #572).

We have analyzed compilation using: https://github.com/aras-p/ClangBuildAnalyzer. Cloning this into cpp/ and building it there, the "magic command" to produce a build analysis is:
rm -rf build && cmake --preset clang15 -DCMAKE_CXX_FLAGS="-ftime-trace" && cmake --build --preset clang15 && ./ClangBuildAnalyzer/build/ClangBuildAnalyzer --all build artifacts && ./ClangBuildAnalyzer/build/ClangBuildAnalyzer --analyze artifacts > build-analysis

Here is the compilation analysis at the moment:

Analyzing build trace from 'artifacts'...
**** Time summary:
Compilation (642 times):
  Parsing (frontend):         1265.6 s
  Codegen & opts (backend):    722.4 s

**** Files that took longest to parse (compiler frontend):
 18015 ms: build/src/barretenberg/ecc/CMakeFiles/ecc_test_objects.dir/curves/bn254/pairing.test.cpp.o
 10985 ms: build/src/barretenberg/honk/CMakeFiles/honk_test_objects.dir/sumcheck/sumcheck.test.cpp.o
  8946 ms: build/src/barretenberg/honk/CMakeFiles/honk_objects.dir/proof_system/ultra_prover.cpp.o
  8913 ms: build/src/barretenberg/stdlib/recursion/CMakeFiles/stdlib_recursion_test_objects.dir/verifier/verifier_turbo.test.cpp.o
  8806 ms: build/src/barretenberg/stdlib/recursion/CMakeFiles/stdlib_recursion_test_objects.dir/verifier/verifier.test.cpp.o
  8767 ms: build/src/barretenberg/stdlib/primitives/CMakeFiles/stdlib_primitives_test_objects.dir/bigfield/bigfield.test.cpp.o
  8644 ms: build/src/barretenberg/honk/CMakeFiles/honk_test_objects.dir/sumcheck/sumcheck_round.test.cpp.o
  8542 ms: build/src/barretenberg/honk/CMakeFiles/honk_objects.dir/proof_system/ultra_verifier.cpp.o
  8439 ms: build/src/barretenberg/honk/CMakeFiles/honk_test_objects.dir/sumcheck/polynomials/multivariates.test.cpp.o
  8326 ms: build/src/barretenberg/honk/CMakeFiles/honk_objects.dir/proof_system/prover.cpp.o

**** Files that took longest to codegen (compiler backend):
 25369 ms: build/src/barretenberg/stdlib/recursion/CMakeFiles/stdlib_recursion_test_objects.dir/verifier/verifier.test.cpp.o
 21986 ms: build/src/barretenberg/ecc/CMakeFiles/ecc_test_objects.dir/curves/secp256k1/secp256k1.test.cpp.o
 20581 ms: build/src/barretenberg/ecc/CMakeFiles/ecc_test_objects.dir/curves/secp256r1/secp256r1.test.cpp.o
 17696 ms: build/src/barretenberg/stdlib/encryption/ecdsa/CMakeFiles/stdlib_ecdsa_test_objects.dir/ecdsa.test.cpp.o
 16405 ms: build/src/barretenberg/stdlib/primitives/CMakeFiles/stdlib_primitives_test_objects.dir/biggroup/biggroup.test.cpp.o
 15335 ms: build/src/barretenberg/stdlib/recursion/CMakeFiles/stdlib_recursion_test_objects.dir/verifier/verifier_turbo.test.cpp.o
 14227 ms: build/src/barretenberg/stdlib/primitives/CMakeFiles/stdlib_primitives_test_objects.dir/bigfield/bigfield.test.cpp.o
 11733 ms: build/src/barretenberg/solidity_helpers/CMakeFiles/stdlib_solidity_helpers_objects.dir/key_gen.cpp.o
 11625 ms: build/src/barretenberg/crypto/ecdsa/CMakeFiles/crypto_ecdsa_test_objects.dir/ecdsa.test.cpp.o
 11483 ms: build/src/barretenberg/solidity_helpers/CMakeFiles/stdlib_solidity_helpers_objects.dir/proof_gen.cpp.o

**** Templates that took longest to instantiate:
 11772 ms: proof_system::honk::flavor::create_relation_univariates_container<ba... (32 times, avg 367 ms)
 11060 ms: proof_system::plonk::widget::GenericVerifierWidget<barretenberg::fie... (78 times, avg 141 ms)
 10934 ms: proof_system::plonk::widget::PlookupArithmeticKernel<barretenberg::f... (78 times, avg 140 ms)
  7875 ms: std::reverse_iterator<std::_Bit_iterator> (280 times, avg 28 ms)
  7637 ms: proof_system::honk::flavor::create_relation_univariates_container<ba... (32 times, avg 238 ms)
  7018 ms: std::reverse_iterator<std::_Bit_const_iterator> (280 times, avg 25 ms)
  6165 ms: std::vector<plookup::MultiTable>::operator= (146 times, avg 42 ms)
  6043 ms: std::vector<proof_system::UltraCircuitBuilder::RomTranscript>::opera... (146 times, avg 41 ms)
  5185 ms: proof_system::honk::flavor::create_relation_univariates_container<ba... (32 times, avg 162 ms)
  4941 ms: std::vector<plookup::BasicTable>::operator= (146 times, avg 33 ms)
  4814 ms: numeric::uintx<numeric::uint256_t>::operator% (254 times, avg 18 ms)
  4788 ms: numeric::uintx<numeric::uint256_t>::divmod (254 times, avg 18 ms)
  4432 ms: testing::internal::ValueArray<bool, bool>::operator ParamGenerator<b... (121 times, avg 36 ms)
  4119 ms: barretenberg::field<barretenberg::Bn254FrParams>::batch_invert (308 times, avg 13 ms)
  4058 ms: proof_system::honk::flavor::create_relation_univariates_container<ba... (32 times, avg 126 ms)
  4037 ms: std::vector<proof_system::UltraCircuitBuilder::RamTranscript>::opera... (146 times, avg 27 ms)
  3816 ms: barretenberg::field2<barretenberg::field<crypto::pedersen::sidon::Si... (1 times, avg 3816 ms)
  3815 ms: barretenberg::field<crypto::pedersen::sidon::SidonFqParams<1019>>::one (1 times, avg 3815 ms)
  3815 ms: barretenberg::field<crypto::pedersen::sidon::SidonFqParams<1019>>::f... (1 times, avg 3815 ms)
  3814 ms: barretenberg::field<crypto::pedersen::sidon::SidonFqParams<1019>>::s... (1 times, avg 3814 ms)
  3792 ms: proof_system::honk::flavor::create_relation_univariates_container<ba... (35 times, avg 108 ms)
  3743 ms: std::_Rb_tree<std::basic_string<char>, std::pair<const std::basic_st... (326 times, avg 11 ms)
  3597 ms: proof_system::honk::flavor::create_relation_values_container<barrete... (32 times, avg 112 ms)
  3341 ms: std::unordered_map<int, int> (276 times, avg 12 ms)
  3293 ms: testing::ValuesIn<std::vector<bool>> (121 times, avg 27 ms)
  3264 ms: testing::ValuesIn<std::_Bit_const_iterator> (121 times, avg 26 ms)
  3182 ms: RecursiveCircuit<proof_system::UltraCircuitBuilder>::generate (4 times, avg 795 ms)
  3127 ms: RecursiveCircuit<proof_system::UltraCircuitBuilder>::create_outer_ci... (4 times, avg 781 ms)
  2999 ms: std::sort<__gnu_cxx::__normal_iterator<proof_system::UltraCircuitBui... (146 times, avg 20 ms)
  2981 ms: std::__sort<__gnu_cxx::__normal_iterator<proof_system::UltraCircuitB... (146 times, avg 20 ms)

**** Template sets that took longest to instantiate:
 27934 ms: std::__and_<$> (27116 times, avg 1 ms)
 24455 ms: std::__or_<$> (32614 times, avg 0 ms)
 19780 ms: std::vector<$> (7593 times, avg 2 ms)
 19534 ms: std::copy<$> (9494 times, avg 2 ms)
 17151 ms: std::tuple<$> (2097 times, avg 8 ms)
 16694 ms: testing::internal::TypeParameterizedTest<$>::Register (307 times, avg 54 ms)
 15837 ms: std::__copy_move_a<$> (8373 times, avg 1 ms)
 15565 ms: proof_system::honk::flavor::create_relation_univariates_container<$> (67 times, avg 232 ms)
 15252 ms: std::__uninitialized_copy_a<$> (5518 times, avg 2 ms)
 15115 ms: testing::internal::TestFactoryImpl<$>::CreateTest (765 times, avg 19 ms)
 15088 ms: std::reverse_iterator<$> (568 times, avg 26 ms)
 14939 ms: std::vector<$>::emplace_back<$> (3070 times, avg 4 ms)
 14709 ms: std::unique_ptr<$> (1013 times, avg 14 ms)
 14409 ms: std::_Destroy<$> (6850 times, avg 2 ms)
 14379 ms: proof_system::plonk::widget::GenericVerifierWidget<$>::compute_quoti... (742 times, avg 19 ms)
 14191 ms: std::vector<$>::vector (3332 times, avg 4 ms)
 13763 ms: std::uninitialized_copy<$> (5107 times, avg 2 ms)
 13562 ms: std::vector<$>::_M_realloc_insert<$> (3817 times, avg 3 ms)
 11833 ms: std::__uniq_ptr_data<$> (1013 times, avg 11 ms)
 11701 ms: std::__uniq_ptr_impl<$> (1013 times, avg 11 ms)
 11588 ms: proof_system::plonk::widget::PlookupArithmeticKernel<$>::compute_non... (89 times, avg 130 ms)
 11521 ms: std::is_nothrow_copy_constructible<$> (10067 times, avg 1 ms)
 11507 ms: proof_system::honk::sumcheck::BarycentricData<$> (45 times, avg 255 ms)
 11131 ms: std::vector<$>::~vector (3479 times, avg 3 ms)
 10694 ms: std::pair<$> (4389 times, avg 2 ms)
 10386 ms: std::__niter_base<$> (8393 times, avg 1 ms)
 10255 ms: std::_Vector_base<$> (7435 times, avg 1 ms)
 10105 ms: std::tuple_cat<$> (524 times, avg 19 ms)
  9990 ms: std::_Tuple_impl<$> (2032 times, avg 4 ms)
  9821 ms: std::_Rb_tree<$>::_M_erase (1354 times, avg 7 ms)

**** Functions that took longest to compile:
  1107 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/solidity_helpers/proof_gen.cpp)
  1065 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/solidity_helpers/key_gen.cpp)
   556 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/recursion/verifier/verifier.test.cpp)
   552 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/primitives/biggroup/biggroup.test.cpp)
   547 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/dsl/acir_format/recursion_constraint.cpp)
   529 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/encryption/ecdsa/ecdsa.test.cpp)
   476 ms: test_secp256r1::secp256r1_eq_Test::TestBody() (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/ecc/curves/secp256r1/secp256r1.test.cpp)
   472 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/solidity_helpers/proof_gen.cpp)
   464 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/solidity_helpers/key_gen.cpp)
   458 ms: test_secp256k1::secp256k1_eq_Test::TestBody() (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/ecc/curves/secp256k1/secp256k1.test.cpp)
   455 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/solidity_helpers/proof_gen.cpp)
   414 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/solidity_helpers/key_gen.cpp)
   395 ms: test_secp256k1::secp256k1_add_exception_test_infinity_Test::TestBody() (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/ecc/curves/secp256k1/secp256k1.test.cpp)
   371 ms: test_secp256r1::secp256r1_add_exception_test_infinity_Test::TestBody() (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/ecc/curves/secp256r1/secp256r1.test.cpp)
   294 ms: barretenberg::group_elements::element<barretenberg::field<secp256k1:... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/proof_system/plookup_tables/non_native_group_generator.cpp)
   288 ms: barretenberg::group_elements::element<barretenberg::field<secp256k1:... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/ecc/curves/secp256k1/c_bind.cpp)
   283 ms: barretenberg::group_elements::element<barretenberg::field<secp256k1:... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/crypto/ecdsa/c_bind.cpp)
   260 ms: void proof_system::honk::sumcheck::AuxiliaryRelationBase<barretenber... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/honk/sumcheck/relations/ultra_relation_consistency.test.cpp)
   240 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/primitives/biggroup/biggroup.test.cpp)
   238 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/encryption/ecdsa/ecdsa.test.cpp)
   238 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/dsl/acir_format/recursion_constraint.cpp)
   236 ms: proof_system::honk_relation_tests::UltraRelationConsistency_Auxiliar... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/honk/sumcheck/relations/ultra_relation_consistency.test.cpp)
   233 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/recursion/verifier/verifier.test.cpp)
   233 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/dsl/acir_format/recursion_constraint.cpp)
   220 ms: proof_system::plonk::stdlib::element<proof_system::UltraCircuitBuild... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/primitives/biggroup/biggroup.test.cpp)
   218 ms: proof_system::plonk::VerifierPermutationWidget<barretenberg::field<b... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/plonk/proof_system/proving_key/proving_key.test.cpp)
   213 ms: test_grumpkin::grumpkin_eq_Test::TestBody() (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/ecc/curves/grumpkin/grumpkin.test.cpp)
   212 ms: testing::internal::ExecDeathTest::AssumeRole() (/mnt/user-data/cody/barretenberg/cpp/build/_deps/gtest-src/googletest/src/gtest-all.cc)
   209 ms: test_secp256r1::secp256r1_add_mixed_add_consistency_check_Test::Test... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/ecc/curves/secp256r1/secp256r1.test.cpp)
   208 ms: proof_system::TurboCircuitBuilder::create_logic_constraint(unsigned ... (/mnt/user-data/cody/barretenberg/cpp/src/barretenberg/proof_system/circuit_builder/turbo_circuit_builder.cpp)

**** Function sets that took longest to compile / optimize:
 12322 ms: testing::internal::TypeParameterizedTest<$>::Register(char const*, t... (794 times, avg 15 ms)
  7280 ms: proof_system::plonk::stdlib::element<$>::lookup_table_plookup<$>::lo... (30 times, avg 242 ms)
  7016 ms: proof_system::plonk::VerifierPermutationWidget<$>::compute_quotient_... (76 times, avg 92 ms)
  6597 ms: proof_system::plonk::VerifierPlookupWidget<$>::compute_quotient_eval... (76 times, avg 86 ms)
  2752 ms: numeric::uintx<$>::divmod(numeric::uintx<$> const&) const (127 times, avg 21 ms)
  2302 ms: barretenberg::group_elements::element<$>::self_dbl() (81 times, avg 28 ms)
  2264 ms: barretenberg::field<$>::field(int) (241 times, avg 9 ms)
  2134 ms: barretenberg::field<$>::invert() const (195 times, avg 10 ms)
  2077 ms: barretenberg::group_elements::element<barretenberg::field<secp256k1:... (11 times, avg 188 ms)
  2044 ms: proof_system::plonk::stdlib::bigfield<$>::unsafe_evaluate_multiply_a... (26 times, avg 78 ms)
  1922 ms: proof_system::plonk::stdlib::bigfield<$>::unsafe_evaluate_multiple_m... (20 times, avg 96 ms)
  1802 ms: testing::internal::SuiteApiResolver<$>::GetSetUpCaseOrSuite(char con... (888 times, avg 2 ms)
  1734 ms: proof_system::plonk::stdlib::element<$>::batch_lookup_table_plookup<... (6 times, avg 289 ms)
  1652 ms: testing::internal::SuiteApiResolver<$>::GetTearDownCaseOrSuite(char ... (888 times, avg 1 ms)
  1357 ms: testing::internal::TestFactoryImpl<$>::CreateTest() (1519 times, avg 0 ms)
  1208 ms: std::__cxx11::basic_string<$>::_M_replace(unsigned long, unsigned lo... (187 times, avg 6 ms)
  1160 ms: proof_system::CircuitBuilderBase<$>::CircuitBuilderBase(std::vector<... (83 times, avg 13 ms)
  1085 ms: barretenberg::group_elements::element<barretenberg::field<barretenbe... (36 times, avg 30 ms)
  1054 ms: barretenberg::field<$>::field(numeric::uint256_t const&) (209 times, avg 5 ms)
   992 ms: proof_system::plonk::stdlib::recursion::aggregation_state<$> proof_s... (8 times, avg 124 ms)
   977 ms: proof_system::CircuitBuilderBase<$>::add_variable(barretenberg::fiel... (109 times, avg 8 ms)
   941 ms: barretenberg::group_elements::element<$>::mul_with_endomorphism(barr... (47 times, avg 20 ms)
   894 ms: std::array<$> proof_system::plonk::stdlib::element<$>::create_group_... (34 times, avg 26 ms)
   840 ms: proof_system::plonk::stdlib::bigfield<$>::conditional_negate(proof_s... (18 times, avg 46 ms)
   831 ms: numeric::uintx<numeric::uint256_t>::operator>>(unsigned long) const (107 times, avg 7 ms)
   822 ms: numeric::uintx<numeric::uint256_t>::operator<<(unsigned long) const (107 times, avg 7 ms)
   817 ms: std::__cxx11::basic_string<$>::_M_mutate(unsigned long, unsigned lon... (190 times, avg 4 ms)
   817 ms: barretenberg::field<$> proof_system::plonk::compute_public_input_del... (77 times, avg 10 ms)
   808 ms: std::vector<$>::~vector() (485 times, avg 1 ms)
   806 ms: proof_system::plonk::stdlib::element<$>::multiple_montgomery_ladder(... (15 times, avg 53 ms)

**** Expensive headers:
201919 ms: /mnt/user-data/cody/barretenberg/cpp/src/barretenberg/ecc/curves/bn254/fr.hpp (included 243 times, avg 830 ms), included via:
  bit_array.cpp.o bit_array.hpp uint.hpp bool.hpp witness.hpp  (2294 ms)
  blake2s.test.cpp.o blake2s.hpp byte_array.hpp bool.hpp witness.hpp  (2204 ms)
  c_bind_new.cpp.o c_bind.hpp  (2115 ms)
  multivariates.test.cpp.o  (2095 ms)
  power_polynomial.test.cpp.o power_polynomial.hpp polynomial.hpp evaluation_domain.hpp  (2077 ms)
  evaluation_domain.cpp.o evaluation_domain.hpp  (2076 ms)
  ...

160715 ms: /mnt/user-data/cody/barretenberg/cpp/src/barretenberg/proof_system/circuit_builder/ultra_circuit_builder.hpp (included 146 times, avg 1100 ms), included via:
  ultra_circuit_builder.test.cpp.o  (3587 ms)
  ultra_circuit_builder.cpp.o  (3207 ms)
  ultra_composer.test.cpp.o  (1832 ms)
  pedersen.bench.cpp.o pedersen.hpp byte_array.hpp safe_uint.hpp circuit_builders.hpp  (1728 ms)
  ram_table.test.cpp.o  (1408 ms)
  bigfield.test.cpp.o byte_array.hpp safe_uint.hpp circuit_builders.hpp  (1387 ms)
  ...

121709 ms: /mnt/user-data/cody/barretenberg/cpp/src/barretenberg/proof_system/plookup_tables/plookup_tables.hpp (included 147 times, avg 827 ms), included via:
  plookup_tables.cpp.o  (2791 ms)
  plookup.test.cpp.o plookup.hpp  (2618 ms)
  sha256_plookup.cpp.o sha256_plookup.hpp  (2589 ms)
  blake3s_plookup.cpp.o blake3s_plookup.hpp  (2588 ms)
  blake2s_plookup.cpp.o blake2s_plookup.hpp  (2579 ms)
  plookup.cpp.o plookup.hpp  (2426 ms)
  ...

109926 ms: /mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/primitives/circuit_builders/circuit_builders.hpp (included 83 times, avg 1324 ms), included via:
  comparison.cpp.o  (3412 ms)
  logic.cpp.o  (3371 ms)
  logic.cpp.o  (3243 ms)
  comparison.cpp.o  (3218 ms)
  arithmetic.cpp.o  (3198 ms)
  arithmetic.cpp.o  (3050 ms)
  ...

101693 ms: /usr/include/c++/10/string (included 304 times, avg 334 ms), included via:
  ecdsa.test.cpp.o bigfield.hpp fq.hpp iomanip ios_base.h locale_classes.h  (692 ms)
  bit_array.cpp.o bit_array.hpp uint.hpp bool.hpp witness.hpp fr.hpp iomanip ios_base.h locale_classes.h  (647 ms)
  transcript_wrappers.cpp.o transcript_wrappers.hpp transcript.hpp manifest.hpp  (612 ms)
  verifier_turbo.test.cpp.o verifier.hpp fq12.hpp field12.hpp engine.hpp uint128.hpp iomanip ios_base.h locale_classes.h  (603 ms)
  file_crs_factory.cpp.o file_crs_factory.hpp bn254.hpp fr.hpp iomanip ios_base.h locale_classes.h  (586 ms)
  evaluation_domain.cpp.o evaluation_domain.hpp fr.hpp iomanip ios_base.h locale_classes.h  (580 ms)
  ...

98364 ms: /mnt/user-data/cody/barretenberg/cpp/build/_deps/gtest-src/googletest/include/gtest/gtest.h (included 121 times, avg 812 ms), included via:
  verification_key.test.cpp.o test.hpp  (2355 ms)
  compute_nullifier.test.cpp.o  (2150 ms)
  membership.test.cpp.o  (2147 ms)
  serialize.test.cpp.o  (2065 ms)
  group.test.cpp.o  (1996 ms)
  ram_table.test.cpp.o  (1978 ms)
  ...

92207 ms: /usr/include/c++/10/iomanip (included 268 times, avg 344 ms), included via:
  bit_array.cpp.o bit_array.hpp uint.hpp bool.hpp witness.hpp fr.hpp  (1223 ms)
  ecdsa.test.cpp.o bigfield.hpp fq.hpp  (1164 ms)
  verifier_turbo.test.cpp.o verifier.hpp fq12.hpp field12.hpp engine.hpp uint128.hpp  (963 ms)
  evaluation_domain.cpp.o evaluation_domain.hpp fr.hpp  (912 ms)
  prover.cpp.o prover.hpp shplonk.hpp claim.hpp polynomial.hpp evaluation_domain.hpp fr.hpp  (883 ms)
  power_polynomial.test.cpp.o power_polynomial.hpp polynomial.hpp evaluation_domain.hpp fr.hpp  (877 ms)
  ...

86326 ms: /mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/primitives/byte_array/byte_array.hpp (included 102 times, avg 846 ms), included via:
  blake2s.test.cpp.o blake2s.hpp  (3643 ms)
  blake2s.cpp.o blake2s.hpp  (3333 ms)
  blake3s.cpp.o blake3s.hpp  (3287 ms)
  byte_array.cpp.o  (3191 ms)
  blake3s.test.cpp.o blake3s.hpp  (3161 ms)
  pedersen.bench.cpp.o pedersen.hpp  (1881 ms)
  ...

80892 ms: /mnt/user-data/cody/barretenberg/cpp/src/barretenberg/stdlib/primitives/safe_uint/safe_uint.hpp (included 105 times, avg 770 ms), included via:
  safe_uint.cpp.o  (3477 ms)
  pedersen.bench.cpp.o pedersen.hpp byte_array.hpp  (1851 ms)
  bigfield.test.cpp.o byte_array.hpp  (1484 ms)
  membership.test.cpp.o merkle_tree.hpp hash_path.hpp hash.hpp blake2s.hpp byte_array.hpp  (1441 ms)
  sha256.test.cpp.o sha256.hpp uint.hpp byte_array.hpp  (1400 ms)
  nullifier_memory_tree.test.cpp.o nullifier_memory_tree.hpp hash.hpp blake2s.hpp byte_array.hpp  (1399 ms)
  ...

80249 ms: /usr/include/c++/10/algorithm (included 292 times, avg 274 ms), included via:
  sha256.bench.cpp.o benchmark.h  (1084 ms)
  polynomials.bench.cpp.o benchmark.h  (1028 ms)
  external.bench.cpp.o benchmark.h  (1011 ms)
  barycentric_data.test.cpp.o barycentric_data.hpp  (892 ms)
  sumcheck_round.test.cpp.o sumcheck_round.hpp log.hpp  (545 ms)
  verifier.cpp.o throw_or_abort.hpp log.hpp  (513 ms)
  ...

  done in 0.4s.
@codygunton
Copy link
Collaborator Author

Suspected major culprits at the moment: transcript is all in a header; zeromorph is all in a header; new Univariate template parameter; use of MANY different tuple types in relations.

@codygunton
Copy link
Collaborator Author

This is a forever issue that we return to periodcally 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant