You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
…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).
…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).
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.The text was updated successfully, but these errors were encountered: