Skip to content

Trace sorting: Take advantage of sorted trace in sumcheck #870

Description

@ledwards2225

We can take advantage of a sorted execution trace in sumcheck by only evaluating relations that are active at each row. This will involve logic for determining active relations in the first round and subsequent rounds as appropriate.

Note: This is not directly tied to the Noir-Honk integration but needs to be done at some point and seems like a nice bonus to have at the time of integration since it will dramatically improve proving speeds.

Edit: The simplest approach here is the one taken by Kesha in his "skippety" work. For each round of sumcheck, simply check if the selector for a given relation is zero at both points on the edge being collapsed. If so, the contribution from that edge is zero and the computation can be skipped. The effectiveness of this method is improved by the sorting since it will in general be the case that if a relation is off at one point on the edge, it will be off at the other, and vice versa. Another approach is to condition relation execution based on the simple range where the relation is active (based on the block size/sorting). It seems plausible that this could lead to better branch prediction and therefore lower overhead for the conditionals. Worth considering but seems unlikely to provide much benefit.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions