From 7e9e2681e314145237f95f79ffdc95ad25a0e319 Mon Sep 17 00:00:00 2001 From: ledwards2225 <98505400+ledwards2225@users.noreply.github.com> Date: Wed, 8 Jan 2025 11:36:19 -0700 Subject: [PATCH] fix: remove max lookup table size constant (for now) (#11095) Remove the MAX_LOOKUP_TABLES_SIZE constant (for now) to avoid pain for developers. Added TODO to reconsider this in the future to continue to benefit from the memory gains afforded by MAX_LOOKUP_TABLES_SIZE --- barretenberg/cpp/src/barretenberg/constants.hpp | 3 ++- barretenberg/cpp/src/barretenberg/goblin/mock_circuits.hpp | 1 + .../barretenberg/plonk_honk_shared/composer/composer_lib.hpp | 1 - barretenberg/cpp/src/barretenberg/ultra_honk/CMakeLists.txt | 2 +- .../cpp/src/barretenberg/ultra_honk/decider_proving_key.cpp | 4 ++-- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/constants.hpp b/barretenberg/cpp/src/barretenberg/constants.hpp index a1cfae900ad..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 = 75000; +// 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/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..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 @@ -23,7 +23,6 @@ void construct_lookup_table_polynomials(const RefArray 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 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