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

Correct active range for databus #1152

Open
ledwards2225 opened this issue Nov 18, 2024 · 1 comment
Open

Correct active range for databus #1152

ledwards2225 opened this issue Nov 18, 2024 · 1 comment
Assignees

Comments

@ledwards2225
Copy link
Collaborator

The ExecutionTraceUsageTracker tracks the 'active' ranges of the PG accumulator based on the block data for circuits being accumulated. The active range for most blocks is simply the max size of the corresponding gate block across all circuits. For lookups/databus, the active range must also include the rows where table data is stored. This data does not necessarily have to overlap with the corresponding gate block.

The issue: For some reason, trying to set the databus active range as the union of the (possibly disjoint) gate block and the databus data causes certain tests to fail. This does not seem to be based on an incorrect assumption about which rows are 'active' as one might expect. E.g. if we set the active ranges as described, certain tests only fail if the num_threads is set to 128. Any other number of threads seems to pass. If we allow 128 threads but divide rows evenly among threads (instead of based on active content) the tests again pass. Very confusing, needs investigation.

Note: I saw failures in only the BasicStructured ClientIvc tests - most structured tests still passed.

@maramihali
Copy link
Contributor

One starting point: ensure the algorithm for computing the reduced active ranges in the ExecutionTraceUsageTracker

maramihali added a commit to AztecProtocol/aztec-packages that referenced this issue Dec 18, 2024
…ace (#10707)

Constructing the lookup block and lookup table data at the top of the
trace removes the dependence of active ranges on the dyadic circuit size
which was causing problems for the overflow scenario and also reduces
the number of active rows to be close to the real size (modulo
AztecProtocol/barretenberg#1152 which still
needs investigation).
AztecBot pushed a commit that referenced this issue Dec 19, 2024
…ace (#10707)

Constructing the lookup block and lookup table data at the top of the
trace removes the dependence of active ranges on the dyadic circuit size
which was causing problems for the overflow scenario and also reduces
the number of active rows to be close to the real size (modulo
#1152 which still
needs investigation).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants