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.
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.