From 890ca1789a9d8879b18115ec9eed7b147be19b64 Mon Sep 17 00:00:00 2001 From: ledwards2225 Date: Tue, 7 Jan 2025 21:50:06 +0000 Subject: [PATCH 1/3] bump constant and improve logging --- barretenberg/cpp/src/barretenberg/constants.hpp | 2 +- .../cpp/src/barretenberg/goblin/mock_circuits.hpp | 1 + .../plonk_honk_shared/composer/composer_lib.hpp | 8 +++++++- .../cpp/src/barretenberg/ultra_honk/CMakeLists.txt | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/constants.hpp b/barretenberg/cpp/src/barretenberg/constants.hpp index a1cfae900ad..bd68e594adf 100644 --- a/barretenberg/cpp/src/barretenberg/constants.hpp +++ b/barretenberg/cpp/src/barretenberg/constants.hpp @@ -13,7 +13,7 @@ static constexpr uint32_t CONST_PG_LOG_N = 20; static constexpr uint32_t CONST_ECCVM_LOG_N = 15; -static constexpr uint32_t MAX_LOOKUP_TABLES_SIZE = 75000; +static constexpr uint32_t MAX_LOOKUP_TABLES_SIZE = 77000; static constexpr uint32_t MAX_DATABUS_SIZE = 10000; diff --git a/barretenberg/cpp/src/barretenberg/goblin/mock_circuits.hpp b/barretenberg/cpp/src/barretenberg/goblin/mock_circuits.hpp index 9a23c848af5..ccf28006546 100644 --- a/barretenberg/cpp/src/barretenberg/goblin/mock_circuits.hpp +++ b/barretenberg/cpp/src/barretenberg/goblin/mock_circuits.hpp @@ -8,6 +8,7 @@ #include "barretenberg/crypto/merkle_tree/merkle_tree.hpp" #include "barretenberg/srs/global_crs.hpp" #include "barretenberg/stdlib/encryption/ecdsa/ecdsa.hpp" +#include "barretenberg/stdlib/hash/keccak/keccak.hpp" #include "barretenberg/stdlib/hash/sha256/sha256.hpp" #include "barretenberg/stdlib/honk_verifier/ultra_recursive_verifier.hpp" #include "barretenberg/stdlib/primitives/curves/secp256k1.hpp" diff --git a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp index e4aa5872433..9e784ed2ef2 100644 --- a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp +++ b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp @@ -23,7 +23,13 @@ void construct_lookup_table_polynomials(const RefArray MAX_LOOKUP_TABLES_SIZE) { + info("\nTotal lookup tables size = ", + tables_size, + " exceeds constant MAX_LOOKUP_TABLES_SIZE = ", + MAX_LOOKUP_TABLES_SIZE); + ASSERT(false); + } ASSERT(dyadic_circuit_size > tables_size + additional_offset); size_t offset = circuit.blocks.lookup.trace_offset; if constexpr (IsPlonkFlavor) { diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/CMakeLists.txt b/barretenberg/cpp/src/barretenberg/ultra_honk/CMakeLists.txt index 0ae823699ce..cc7df8118f2 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/CMakeLists.txt +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/CMakeLists.txt @@ -1 +1 @@ -barretenberg_module(ultra_honk sumcheck stdlib_primitives) \ No newline at end of file +barretenberg_module(ultra_honk sumcheck stdlib_primitives stdlib_keccak stdlib_sha256) \ No newline at end of file From 60c7067dcd62750da0c8e318178a26c912485382 Mon Sep 17 00:00:00 2001 From: ledwards2225 Date: Tue, 7 Jan 2025 22:10:25 +0000 Subject: [PATCH 2/3] add todo --- .../src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp index 9e784ed2ef2..67924cccf44 100644 --- a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp +++ b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp @@ -22,6 +22,7 @@ void construct_lookup_table_polynomials(const RefArray MAX_LOOKUP_TABLES_SIZE) { info("\nTotal lookup tables size = ", From 50762fb67cc87788e566be9cc1332f4d7eb9447c Mon Sep 17 00:00:00 2001 From: ledwards2225 Date: Wed, 8 Jan 2025 14:00:59 +0000 Subject: [PATCH 3/3] remove use of max lookups constant at the expense of memory --- barretenberg/cpp/src/barretenberg/constants.hpp | 3 ++- .../plonk_honk_shared/composer/composer_lib.hpp | 8 -------- .../src/barretenberg/ultra_honk/decider_proving_key.cpp | 4 ++-- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/constants.hpp b/barretenberg/cpp/src/barretenberg/constants.hpp index bd68e594adf..1c1870d7326 100644 --- a/barretenberg/cpp/src/barretenberg/constants.hpp +++ b/barretenberg/cpp/src/barretenberg/constants.hpp @@ -13,7 +13,8 @@ static constexpr uint32_t CONST_PG_LOG_N = 20; static constexpr uint32_t CONST_ECCVM_LOG_N = 15; -static constexpr uint32_t MAX_LOOKUP_TABLES_SIZE = 77000; +// TODO(https://github.com/AztecProtocol/barretenberg/issues/1193): potentially reenable for better memory performance +// static constexpr uint32_t MAX_LOOKUP_TABLES_SIZE = 80000; static constexpr uint32_t MAX_DATABUS_SIZE = 10000; diff --git a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp index 67924cccf44..10699f07d2d 100644 --- a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp +++ b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/composer/composer_lib.hpp @@ -22,15 +22,7 @@ void construct_lookup_table_polynomials(const RefArray MAX_LOOKUP_TABLES_SIZE) { - info("\nTotal lookup tables size = ", - tables_size, - " exceeds constant MAX_LOOKUP_TABLES_SIZE = ", - MAX_LOOKUP_TABLES_SIZE); - ASSERT(false); - } ASSERT(dyadic_circuit_size > tables_size + additional_offset); size_t offset = circuit.blocks.lookup.trace_offset; if constexpr (IsPlonkFlavor) { diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_proving_key.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_proving_key.cpp index 0b9bf8a7d84..0e97f5dd05a 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_proving_key.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_proving_key.cpp @@ -99,8 +99,8 @@ void DeciderProvingKey_::allocate_table_lookup_polynomials(const Circuit PROFILE_THIS_NAME("allocate_table_lookup_polynomials"); size_t table_offset = circuit.blocks.lookup.trace_offset; - const size_t max_tables_size = - std::min(static_cast(MAX_LOOKUP_TABLES_SIZE), dyadic_circuit_size - table_offset); + // TODO(https://github.com/AztecProtocol/barretenberg/issues/1193): can potentially improve memory footprint + const size_t max_tables_size = dyadic_circuit_size - table_offset; ASSERT(dyadic_circuit_size > max_tables_size); // Allocate the polynomials containing the actual table data