Ideas for things
A compiler that automatically selects quantum error correction codes depending on an input quantum circuit and hardware topology + modality?
- This could be useful, but QECCs are usually tied closely to the topology
- We can have, for a given topology, certain options that work better (say, for trapped-ion stuff, like iceberg code things, or something else for neutral atom, etc, surface code for superconducting)
- Can we use different codes at different parts of the same circuit with code switching, or some other conversion between logical bases, assuming the codes use the same # of qubits, have the same/similar ancilla requirements, etc? What are the limitations here?
- Make determinations on which code to use based on (i.e., things we should be able to statically analyze the circuit for):
- Gate type / composition (% of gates/blocks that are Clifford only, vs T gates, etc.). Also want to care about T-depth. Because T gates are costly, maybe select codes that improve magic state stuff, or make T gates transversal?
- # of entangling gates and the interaction graph (2Q gates per layer, connectivity amongst logical qubits, dependence, etc.)
- Circuit depth v qubit count (depth can impact syndrome stuff, width may require larger code based on interaction graph?)
- Qubit lifetimes, idle time (related to dependency, can determine whether to remove syndrome circuits at idle spots?)
- Error budget (need to figure out how this works)
- Modularity / cut points for code switching, cheaper code @ clifford subsections, perhaps?
- Symmetry or algorithmic structure, repetitions (can be enabled by language constructs being recognized, subroutines, etc.)
- Target logical error rate.
- Things that differentiate QEC codes (axes by which we can select codes):
- Code Size, Rate, and Distance (directly from $[[n, k, d]]$)
- Stabilizer Weight: surface code checks are typically lower weight than qLDPC codes' checks, subsystem codes make checks cheaper asw.
- Connectivity and locality requirements (see above, some codes work better for some topologies). Surface codes need 2D nearest neighbor, high rate qLDPC codes need long range connectivity, or something similar.
- Transversal/gate set and non-clifford cost, challenges.
- Ancilla requirements and "best" corresponding decoder overhead
- Single shot-ness (some codes permit one-shot decoding, afaik?)
- We can also consider the idea of being able to use unique codes in dofferent subsections of the circuit, and then using intermediate codes (need to check this). Gauge fixing is another alternative, and is less costly while requiring a shared code parent. Need to look into this as well.
- Also important to note that the qubit mapping and routing problem is important only after we've converted the circuit into the "final" one, with stabilizer measurements and the QEC code's changes, as well as transpiling to the correct gate-set, etc. QMR changes on different topologies as well.
- Superconducting has a fixed coupling graph, most common application of QMR
- Trapped ion QCCD has shuffling (see QTM Helios)
- Neutral Atoms are reconfigurable via AOD movement (learn more about this)
- The cost considers (1) circuit, (2) code, and (3) topology, because we need to consider the QMR layer underneath as well when doing code selection, perhaps, and this is influenced by the topology, which also influences the types of codes that are effective.
- A code can be cheap or expensive given the topology, and additionally a code can be unnecessary given a certain circuit; why use a code that may be overkill?
- W.r.t code switching, read Minimizing the Number of Code Switching Operations in Fault-Tolerant Quantum Circuits