Final readthrough corrections for decoding chapter
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
\label{ch:Decoding}
|
||||
|
||||
In \Cref{ch:Fundamentals}, we introduced the fundamentals of classical
|
||||
error correction, before moving on to quantum information science and
|
||||
error correction, before turning to quantum information science and
|
||||
finally combining the two in \acf{qec}.
|
||||
In \Cref{ch:Fault tolerance}, we then turned to fault-tolerance, with
|
||||
In \Cref{ch:Fault tolerance}, we then considered fault-tolerance, with
|
||||
a focus on a specific way of implementing it, called \acfp{dem}.
|
||||
In this chapter, we move on from the fundamental concepts and examine
|
||||
how to apply them in practice.
|
||||
@@ -14,7 +14,7 @@ Specifically, we consider the practical aspects of decoding under \acp{dem}.
|
||||
In particular, we investigate decoding \acf{qldpc} codes under \acp{dem}.
|
||||
We focus on \ac{qldpc} codes, as they have emerged as leading
|
||||
candidates for practical quantum error correction, offering
|
||||
comparable thresholds with substantially improved encoding rates
|
||||
good thresholds with substantially improved encoding rates
|
||||
\cite[Sec.~1]{bravyi_high-threshold_2024}.
|
||||
Because of this, the decoding algorithms we consider will all be
|
||||
based on \acf{bp}.
|
||||
@@ -29,7 +29,7 @@ exist, the \ac{bp} algorithm becomes uncertain of the direction to proceed in.
|
||||
Additionally, the commutativity conditions of the stabilizers
|
||||
necessitate the existence of short cycles.
|
||||
Together, these two aspects lead to substantial convergence problems
|
||||
of \ac{bp} for quantum codes, when it is used on its own.
|
||||
of \ac{bp} for quantum codes, when employed on its own.
|
||||
|
||||
Second, the consideration of circuit-level noise introduces many more
|
||||
error locations into the circuit.
|
||||
@@ -49,7 +49,7 @@ but rather quantum codes in general.
|
||||
Many different approaches to solving it exist, usually centered
|
||||
around modifying \ac{bp}.
|
||||
The most popular approach is combining a few initial iterations of
|
||||
\ac{bp} with a second decoding algorithm, namely \ac{osd}
|
||||
\ac{bp} with a second decoding algorithm, \ac{osd}
|
||||
\cite{roffe_decoding_2020}.
|
||||
Other approaches exist, such as \ac{aed}
|
||||
\cite{koutsioumpas_automorphism_2025}, where multiple variations of
|
||||
@@ -274,7 +274,7 @@ The employed noise models also differ;
|
||||
Finally, in \cite{gong_toward_2024} the authors introduce their own variation of
|
||||
\ac{bpgd}, \ac{bp} with \ac{gdg}, while \cite{huang_increasing_2024}
|
||||
and \cite{kang_quits_2025} use \ac{bp} + \ac{osd}.
|
||||
We would additionally like to note that only in
|
||||
We would additionally like to note that only
|
||||
\cite{gong_toward_2024} and \cite{kang_quits_2025}
|
||||
explicitly work with the \ac{dem} formalism.
|
||||
|
||||
@@ -392,7 +392,7 @@ is in turn based on \cite{huang_increasing_2024}.
|
||||
Sliding-window decoding is made possible by the time-like structure
|
||||
of the syndrome extraction circuitry.
|
||||
This is especially clearly visible under the \ac{dem} formalism, where
|
||||
this manifests as a block-diagonal structure of the detector
|
||||
it manifests as a block-diagonal structure of the detector
|
||||
error matrix $\bm{H}$.
|
||||
Note that this presupposes a choice of detectors as seen in
|
||||
\Cref{subsec:Detector Error Matrix}.
|
||||
@@ -412,7 +412,7 @@ no longer contribute to decoding, since none of their
|
||||
neighboring \acp{vn} appear in subsequent windows.
|
||||
We call the set of \acp{vn} connected to those \acp{cn} the
|
||||
\emph{commit region} and we commit them before moving to the
|
||||
next window, i.e., fix the values we estimate for the corresponding bits.
|
||||
next window, i.e., we fix the values we estimate for the corresponding bits.
|
||||
The benefit of this sequential sliding-window decoding approach is
|
||||
that the decoding process can begin as soon as the syndrome
|
||||
measurements for the first window are complete.
|
||||
@@ -496,7 +496,7 @@ respective nodes.
|
||||
In this case, we take $\bm{H} \in \mathbb{F}_2^{m\times n}$ to be the
|
||||
check matrix of the underlying code, from which the \ac{dem} was generated.
|
||||
We use $m_\text{DEM}, \mathcal{I}_\text{DEM}$, and $\mathcal{J}_\text{DEM}$
|
||||
to refer to the respective values defined from the detector error matrix.
|
||||
to refer to the respective values defined for the detector error matrix.
|
||||
|
||||
% How we get the corresponding rows
|
||||
|
||||
@@ -515,7 +515,7 @@ Thus, we define
|
||||
\mathcal{J}_\text{win}^{(\ell)} &:= \left\{ j\in \mathcal{J}_\text{DEM}:~
|
||||
\ell F m \le j < \min \left\{m_\text{DEM}, (\ell F + W) m \right\}
|
||||
\right\} \\[2mm]
|
||||
& \hspace{30mm} \text{and} \\[2mm]
|
||||
& \hspace{37mm} \text{and} \\[2mm]
|
||||
\mathcal{J}_\text{commit}^{(\ell)} &:= \left\{ j\in \mathcal{J}_\text{DEM}:~
|
||||
\ell F m \le j < \min \left\{m_\text{DEM}, (\ell + 1) F m \right\}
|
||||
\right\}
|
||||
@@ -531,7 +531,7 @@ $\ell$ and $\ell + 1$ as $\mathcal{J}_\text{overlap}^{(\ell)} :=
|
||||
|
||||
% How we get the corresponding columns
|
||||
|
||||
We can now turn our attention to defining the sets of \acp{vn} relevant
|
||||
We now turn our attention to defining the sets of \acp{vn} relevant
|
||||
to each window.
|
||||
We first introduce a helper function $i_\text{max} :
|
||||
\mathcal{P}(\mathbb{N}) \to \mathbb{N}$, which takes a set
|
||||
@@ -735,7 +735,7 @@ initialization can be used with.
|
||||
For instance, \ac{bp}+\ac{osd} does not immediately seem suitable, as
|
||||
it performs a hard decision on the \acp{vn}, though this remains to
|
||||
be investigated.
|
||||
We chose to investigate first standard \ac{bp} due to its simplicity and
|
||||
We chose to investigate first plain \ac{bp} due to its simplicity and
|
||||
then \ac{bpgd} because of the availability of recently computed messages.
|
||||
|
||||
% TODO: Include this?
|
||||
@@ -1249,10 +1249,11 @@ For the circuit generation, we employed utilities from QUITS
|
||||
\cite{kang_quits_2025}, which provides syndrome extraction circuitry
|
||||
generation for a number of different \ac{qldpc} codes.
|
||||
We initially created a Python implementation, which used QUITS for the window
|
||||
splitting and subsequent sliding-window decoding as well.
|
||||
The \ac{bp} and \ac{bpgd} are implementation in Rust to achieve
|
||||
higher simulation speeds leveraging the compiled nature of the language.
|
||||
We reimplemented both the window splitting and the decoders.
|
||||
splitting and subsequent sliding-window decoding as well, before
|
||||
reimplementing in Rust.
|
||||
The \ac{bp} and \ac{bpgd} are implemented in Rust to achieve
|
||||
higher simulation speeds leveraging the compiled nature of the
|
||||
language.
|
||||
|
||||
% Global experimental setup
|
||||
|
||||
@@ -1268,7 +1269,7 @@ For the generation of the \ac{dem} we set the number of syndrome
|
||||
extraction rounds to $12$, similarly to \cite{gong_toward_2024}, and
|
||||
we defined our detectors as in the example in
|
||||
\Cref{subsec:Detector Error Matrix}.
|
||||
We employed circuit-lose noise as described in
|
||||
We employed circuit-level noise as described in
|
||||
\Cref{subsec:Choice of Noise Model} as our noise model, specifically standard
|
||||
ciruit-based depolarizing noise \cite[Sec.~VIII]{fowler_high-threshold_2009},
|
||||
i.e., all error locations in the circuit get assigned the same
|
||||
@@ -1285,7 +1286,8 @@ generated by simulating at least $200$ logical error events.
|
||||
|
||||
We begin our investigation by using \ac{bp} with no further
|
||||
modifications as the inner decoder.
|
||||
We chose the min-sum variant of \ac{bp} due to its low computational complexity.
|
||||
We choose the min-sum variant of \ac{bp} due to its low computational
|
||||
complexity.
|
||||
|
||||
% [Thread] Get impression for max gain
|
||||
|
||||
@@ -1295,7 +1297,7 @@ To this end, we begin by analyzing the decoding performance of the
|
||||
original process, without our warm-start modification.
|
||||
We will call this \emph{cold-start} decoding in the following.
|
||||
Because we expect more global decoding to work better (the inner
|
||||
decoder then has access to a larger portion of the long-range
|
||||
decoder has access to a larger portion of the long-range
|
||||
correlations encoded in the detector error matrix before any commit
|
||||
is made) we initially decide to use decoding on the whole detector
|
||||
error matrix as a proxy for the attainable decoding performance.
|
||||
@@ -1729,7 +1731,7 @@ hypothesis put forward above.
|
||||
The whole-block decoder eventually overtaking every windowed scheme
|
||||
matches the prediction made there: with a sufficiently large
|
||||
iteration budget, the whole-block decoder reaches an error rate
|
||||
that nonone of the windowed schemes can beat, because of the more global
|
||||
that none of the windowed schemes can beat, because of the more global
|
||||
nature of the considered constraints.
|
||||
Furthermore, the pronounced advantage of warm- over cold-start decoding at low
|
||||
numbers of iterations makes sense if we consider the overall trend of the plots.
|
||||
@@ -1742,7 +1744,7 @@ initialization diminishes, and the curves approach each other.
|
||||
The fact that no curve clearly saturates within the swept range is
|
||||
itself worth noting.
|
||||
We know that \ac{bp} on \ac{qldpc} codes suffers from poor
|
||||
convergence due to degeneracy and the short cycles in the underlying
|
||||
convergence due to degeneracy and short cycles in the underlying
|
||||
Tanner graph, so even after several thousand iterations the decoder
|
||||
may continue to slowly refine its message estimates rather than
|
||||
settle into a stable fixed point.
|
||||
@@ -1968,9 +1970,9 @@ previous experiments.
|
||||
% [Experimental parameters] Figure 4.9
|
||||
|
||||
\Cref{fig:bp_f} summarizes the results of this investigation.
|
||||
In both panels the dashed colored curves correspond to cold-start
|
||||
sliding-window decoding for $F \in \{1, 2, 3\}$ and the solid colored
|
||||
curves to the corresponding warm-start runs.
|
||||
In both panels, the dashed curves correspond to cold-start
|
||||
sliding-window decoding for $F \in \{1, 2, 3\}$ and the solid
|
||||
curves to warm-start decoding.
|
||||
The window size is fixed to $W = 5$ throughout.
|
||||
\Cref{fig:bp_f_over_p} sweeps the physical error rate over
|
||||
$p \in [0.001, 0.004]$ in steps of $0.0005$ at a fixed maximum of
|
||||
@@ -1990,7 +1992,7 @@ monotonic increase of the per-round \ac{ler} with the physical
|
||||
error rate.
|
||||
At fixed $F$, the warm-start approach lies below
|
||||
cold-start across the entire sweep, and at fixed
|
||||
warm- or cold-start, smaller $F$ produces a lower \ac{ler}.
|
||||
warm or cold start, smaller $F$ produces a lower \ac{ler}.
|
||||
Both gaps grow as the physical error rate decreases:
|
||||
the curves at $F = 1$ separate further from those at $F = 2$ and $F = 3$,
|
||||
and the warm-start curves separate further from the cold-start ones.
|
||||
@@ -2314,7 +2316,7 @@ Recall from
|
||||
that the warm start for \ac{bpgd} carries over not only the \ac{bp}
|
||||
messages on the edges of the overlap region but also the decimation
|
||||
information.
|
||||
Because we run with an iteration budget large enough to decimate
|
||||
Because we decode with an iteration budget large enough to decimate
|
||||
every \ac{vn} in a window, by the time window $\ell$ ends, all
|
||||
of its \acp{vn} have already been hard-decided.
|
||||
For the \acp{vn} that lie in the overlap region with window $\ell + 1$
|
||||
@@ -2515,8 +2517,8 @@ fixed physical error rate.
|
||||
\Cref{fig:bpgd_iter} shows the per-round \ac{ler} of \ac{bpgd}
|
||||
sliding-window decoding as a function of the maximum number of inner
|
||||
\ac{bp} iterations $n_\text{iter}$.
|
||||
The dashed colored curves correspond to cold-start sliding-window
|
||||
decoding and the solid colored curves to warm-start, which again
|
||||
The dashed curves correspond to cold-start sliding-window
|
||||
decoding and the solid curves to warm-start, which again
|
||||
retains both the \ac{bp} messages and the decimaiton information on
|
||||
the overlap region.
|
||||
The physical error rate is fixed at $p = 0.0025$ and the iteration
|
||||
@@ -2607,8 +2609,8 @@ of the warm-start curves and limit ourselves to noting it.
|
||||
The natural consequence of the previous diagnosis is to drop the
|
||||
problematic part of the warm-start initialization for \ac{bpgd} and
|
||||
to carry over only the \ac{bp} messages on the edges of the overlap
|
||||
region, as in \Cref{fig:messages_tanner}, while leaving the channel
|
||||
\acp{llr} of the next window in their original cold-start state.
|
||||
region, as in \Cref{fig:messages_tanner}, while leaving the
|
||||
decimation information of the next window in its original cold-start state.
|
||||
Note that some information about the previous window's decimation
|
||||
state is still implicitly carried over through the \ac{bp} messages,
|
||||
since the decimation decisions were made based on the messages themselves.
|
||||
@@ -2803,7 +2805,7 @@ as $F$ grows.
|
||||
|
||||
% [Description] Interpretation 4.12
|
||||
|
||||
Removing the channel \acp{llr} from the warm-start initialization lifts
|
||||
Removing the decimation information from the warm-start initialization lifts
|
||||
the warm-start regression observed in \Cref{fig:bpgd_wf},
|
||||
and warm-start now consistently outperforms cold-start.
|
||||
The dependence on the window size and the step size also recovers
|
||||
@@ -3036,7 +3038,7 @@ performance gain when the inner decoder is upgraded from plain
|
||||
\ac{bp} to its guided-decimation variant, but only if some care is
|
||||
taken in choosing what to information carry over.
|
||||
Passing the channel \acp{llr} along with the \ac{bp} messages,
|
||||
as suggested by naively carrying over the warm-start idea to \ac{bpgd},
|
||||
as suggested by naively transferring the warm-start idea to \ac{bpgd},
|
||||
leads to premature hard decisions on \acp{vn} in the overlap region.
|
||||
This leads to warm-start initialization actually worsening the
|
||||
performance compared to cold-start initialization.
|
||||
|
||||
Reference in New Issue
Block a user