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
#677 modified coprocessor reduction semantics to allow for a clean separation of coprocessor and reduction circuits.
Previously, coprocessors returned values into the ApplyContinuation branch of reduction, but implementing this in independent coprocessor circuits would require inlining all of that reduction logic into every coprocessor circuit. Instead, for the first pass, we change reduction logic so coprocessor return unevaluated arguments.
The coprocessor wrapper quotes the return values and passes them to the next reduction step along with a new tail continuation containing the intended new env and cont. This allows the next iteration to pick up the computation at the initial border of a reduction, rather than partway through it.
However, this is not optimal. We should consider alternate approaches as optimizations later (but not now — the current approach is part of what allows us to quickly gain confidence in a relatively simple implementation).
The text was updated successfully, but these errors were encountered:
#677 modified coprocessor reduction semantics to allow for a clean separation of coprocessor and reduction circuits.
Previously, coprocessors returned values into the
ApplyContinuation
branch of reduction, but implementing this in independent coprocessor circuits would require inlining all of that reduction logic into every coprocessor circuit. Instead, for the first pass, we change reduction logic so coprocessor return unevaluated arguments.The coprocessor wrapper quotes the return values and passes them to the next reduction step along with a new tail continuation containing the intended new env and cont. This allows the next iteration to pick up the computation at the initial border of a reduction, rather than partway through it.
However, this is not optimal. We should consider alternate approaches as optimizations later (but not now — the current approach is part of what allows us to quickly gain confidence in a relatively simple implementation).
The text was updated successfully, but these errors were encountered: