First of all, thank your for building deq and open-sourcing it! It is a fantastic tool!
I'm using RemoteConditionalCorrection to implement Pauli-feedforward. However, I find that such feedforward blocks readouts, even when the propagated Pauli correction commutes with the logical observable.
Problem. A gadget's frame is only computed once every remote conditional readout it references has a resolved frame (deq_runtime/src/misc/pauli_frame_tracker.rs, the early returns in propagate_from). Since downstream gadgets in turn require their input peers' frames, one unresolved conditional correction blocks decode() (via wait_for_pauli_frame, deq_runtime/src/coordinator/window_coordinator.rs) for the entire downstream cone — even when the conditional Pauli commutes with the measured logical observable, so the readout provably cannot depend on it.
Example. A conditional logical Z (remote conditional correction hitting only LX residual rows) followed by a Z-basis logical measurement whose readout_propagation reads only the LZ column: the influence of the condition bit on the readout is identically zero over GF(2), yet the measurement's readout is withheld until the remote readout's frame resolves. For feed-forward that puts an unrelated decode's latency on the critical path.
First of all, thank your for building deq and open-sourcing it! It is a fantastic tool!
I'm using
RemoteConditionalCorrectionto implement Pauli-feedforward. However, I find that such feedforward blocks readouts, even when the propagated Pauli correction commutes with the logical observable.Problem. A gadget's frame is only computed once every remote conditional readout it references has a resolved frame (
deq_runtime/src/misc/pauli_frame_tracker.rs, the earlyreturns inpropagate_from). Since downstream gadgets in turn require their input peers' frames, one unresolved conditional correction blocksdecode()(viawait_for_pauli_frame,deq_runtime/src/coordinator/window_coordinator.rs) for the entire downstream cone — even when the conditional Pauli commutes with the measured logical observable, so the readout provably cannot depend on it.Example. A conditional logical Z (remote conditional correction hitting only LX residual rows) followed by a Z-basis logical measurement whose
readout_propagationreads only the LZ column: the influence of the condition bit on the readout is identically zero over GF(2), yet the measurement's readout is withheld until the remote readout's frame resolves. For feed-forward that puts an unrelated decode's latency on the critical path.