diff --git a/src/thesis/chapters/4_decoding_under_dems.tex b/src/thesis/chapters/4_decoding_under_dems.tex index 00814b2..8e05d3f 100644 --- a/src/thesis/chapters/4_decoding_under_dems.tex +++ b/src/thesis/chapters/4_decoding_under_dems.tex @@ -2,31 +2,30 @@ \chapter{Decoding under Detector Error Models} \label{ch:Decoding} -In \Cref{ch:Fundamentals} we introduced the fundamentals of classical +In \Cref{ch:Fundamentals}, we introduced the fundamentals of classical error correction, before moving on 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 turned to 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. -Specifically, we concern ourselves with the practical aspects of decoding -under \acp{dem}. +Specifically, we consider the practical aspects of decoding under \acp{dem}. -We investigate decoding \acf{qldpc} codes under \acp{dem} in particular. +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 \cite[Sec.~1]{bravyi_high-threshold_2024}. Because of this, the decoding algorithms we consider will all be -related to \acf{bp} in some way. +based on \acf{bp}. Our aim is to build a fault-tolerant \ac{qec} system that works well even in the presence of circuit-level noise. We must overcome two main challenges to achieve this. First, recall the problems related to degeneracy, which is inherent to quantum codes. -Because multiple minimum-weight codewords exist, the \ac{bp} -algorithm becomes uncertain of the direction to proceed in. +Because multiple minimum-weight solutions to the decoding problem may +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 @@ -40,28 +39,28 @@ We also perform multiple rounds of syndrome measurements, exacerbating the problem. This leads to a massively increased computational complexity and latency of the decoding process. -In our experiments using the $\llbracket 144,12,12 \rrbracket$ -\acf{bb} code with $12$ syndrome measurement rounds, for example, the -number of \acp{vn} grew from $144$ to $9504$, and the -number of \acfp{cn} grew from $72$ to $1008$. +For example, in our experiments using the $\llbracket 144,12,12 +\rrbracket$ \acf{bb} code with $12$ syndrome measurement rounds, the +number of \acp{vn} grew from $144$ to $9504$, and the number of +\acfp{cn} grew from $72$ to $1008$. The first problem is not inherent to \acp{dem} or fault-tolerance, but rather quantum codes in general. Many different approaches to solving it exist, usually centered -around somehow modifying \ac{bp}. -The most popular approach is combining a few initial -iterations of \ac{bp} with a second decoding algorithm, \ac{osd} +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} \cite{roffe_decoding_2020}. Other approaches exist, such as \ac{aed} \cite{koutsioumpas_automorphism_2025}, where multiple variations of -the code are decoded simultaneously to increase the chances of convergence. +the syndrome, based on graph and code symmetries, are decoded +simultaneously to increase the chances of convergence. Here, we will focus on the \acf{bpgd} algorithm -\cite{yao_belief_2024} we already introduced in \Cref{ch:Fundamentals}, -for reasons that will become clear later in the chapter. +\cite{yao_belief_2024} introduced in \Cref{ch:Fundamentals}. The second problem is inherent to decoding using \acp{dem}. -This is an area that has received less attention. -As we saw in \Cref{sec:Quantum Error Correction}, for \ac{qec}, +This is an area that has so far received less attention in the literature. +As discerned in \Cref{sec:Quantum Error Correction}, for \ac{qec}, latency is the main constraint, not raw computational complexity. The main way this is addressed in the literature is \emph{sliding window decoding}, which attempts to divide the overall decoding @@ -70,7 +69,7 @@ problem into many smaller ones that can be solved more efficiently. % TODO: This could potentially be a bit more text (e.g., go into % SC-LDPC like structure that serves as the inspiration for the % warm-start decoding. Or just go into warm-start decoding) -Our own work will focus mostly on the the solution of the second +In this thesis, we will focus mostly on the the solution of the second problem using sliding-window decoding. We will start by briefly reviewing the existing work related to sliding-window decoding, @@ -200,7 +199,7 @@ Each of these windows is then decoded separately. % Some general notes -\Cref{fig:literature} gives an overview over the existing body of work +\Cref{fig:literature} gives an overview over the existing works related to sliding-window decoding. The papers \cite{huang_improved_2023} and \cite{huang_increasing_2024} are lumped together, as they share the same content; @@ -217,9 +216,9 @@ software freely available online% \footnote{ \url{https://github.com/gongaa/SlidingWindowDecoder} }. -A final thing to note is that \cite{dennis_topological_2002} never -explicitly mentions sliding windows; the authors call their scheme -``overlapping recovery''. +Finally, note that \cite{dennis_topological_2002} never explicitly +mentions sliding windows; the authors call their scheme ``overlapping +recovery''. % Topological vs QLDPC @@ -244,7 +243,7 @@ Finally, \cite{gong_toward_2024} explores \ac{bb} codes. % Sequential vs parallel After having divided the whole circuit into separate windows, the question -arises of how exactly to realize the decoding. +arises of how to make use of the window-like structure for decoding. There are two main approaches, with differing mechanisms of reducing the latency. Some papers decode the sliding windows in a parallel fashion. @@ -252,7 +251,8 @@ The benefit in this case is is that classical hardware can be utilized more effectively. Others choose a sequential approach. Here, decoding can start earlier, as there is no need to wait for the -syndrome measurements of all windows before beginning with the decoding. +syndrome measurements of subsequent windows before beginning with the +decoding of earlier windows. With the exception of \cite{dennis_topological_2002}, literature treating topological codes has mostly focused on parallel decoding while literature treating \ac{qldpc} codes has wholly considered @@ -261,7 +261,7 @@ sequential decoding. % Deep-dive into QLDPC methods For this work, the publications treating \ac{qldpc} codes are -especially interesting. +particularly interesting. The experimental conditions for these are summarized in \Cref{table:experimental_conditions}. As we noted above, \ac{hgp} and \ac{lp} codes are considered in @@ -286,12 +286,12 @@ explicitly work with the \ac{dem} formalism. sliding-window decoding for \ac{qldpc} codes.} \vspace*{3mm} \label{table:experimental_conditions} - \begin{tabular}{l|ccc} + \begin{tabular}{lccc}\toprule % tex-fmt: off - Publication & Code & Noise Model & Decoder \\ \hline - \hspace{-2.5mm}\cite{huang_improved_2023},\cite{huang_increasing_2024} & \acs{hgp}, \acs{lp} & Phenomenological noise & \acs{bp} + \acs{osd} \\ - \hspace{-2.5mm}\cite{gong_toward_2024} & \acs{bb} & Circuit-level noise & \acs{bp} + \acs{gdg} \\ - \hspace{-2.5mm}\cite{kang_quits_2025} & \acs{hgp}, \acs{lp}, \acs{bpc} & Circuit-level noise & \acs{bp} + \ac{osd} + Publication & Code & Noise Model & Decoder \\ \midrule + \hspace{-2.5mm}\cite{huang_improved_2023},\cite{huang_increasing_2024} & \acs{hgp}, \acs{lp} & Phenomenological noise & \acs{bp} + \acs{osd} \\ + \hspace{-2.5mm}\cite{gong_toward_2024} & \acs{bb} & Circuit-level noise & \acs{bp} + \acs{gdg} \\ + \hspace{-2.5mm}\cite{kang_quits_2025} & \acs{hgp}, \acs{lp}, \acs{bpc} & Circuit-level noise & \acs{bp} + \acs{osd} \\ \bottomrule % tex-fmt: on \end{tabular} \end{table} @@ -382,7 +382,7 @@ explicitly work with the \ac{dem} formalism. \subsection{Window Splitting and Sequential Sliding-Window Decoding} \label{subsec:Window Splitting and Sequential Sliding-Window Decoding} -In this section, we will examine the methodology by which a detector +In this section, we examine the methodology by which a detector error matrix is divided into overlapping windows. The algorithm detailed here follows \cite{kang_quits_2025}, which is in turn based on \cite{huang_increasing_2024}. @@ -411,11 +411,10 @@ After decoding a window, there is a subset of \acp{cn} that 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 wish to commit them before moving to 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. -As mentioned above, the benefit of this sequential sliding-window -decoding approach -is that the decoding process can begin as soon as the syndrome +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. % W and F and why we look at rows, not columns @@ -425,15 +424,15 @@ The \emph{window size} $W \in \mathbb{N}$ represents the number of syndrome extraction rounds lumped into one window, while the \emph{step size} $F \in \mathbb{N}$ represents the number of syndrome extraction rounds skipped before starting the next window. -$W$ controls the size of the windows while $F$ controls the overlap -between them. +The parameter $W$ controls the size of the windows while $F$ controls +the overlap between them. As illustrated in \Cref{fig:windowing_pcm}, $W$ and $F$ control the window dimensions and locations by defining the related \acp{cn}, not the \acp{vn}. -This is because while the number of overall \acp{cn} is only affected +This is because the number of overall \acp{cn} is only affected by the choice of the underlying code and the number of syndrome -measurement rounds, the number of \acp{vn} depends on the noise model -and is difficult to predict beforehand. +measurement rounds, while the number of \acp{vn} depends on the noise +model and is difficult to predict beforehand. \begin{figure}[t] \centering @@ -469,18 +468,16 @@ and is difficult to predict beforehand. matrix generated from the $\llbracket 72, 6, 6 \rrbracket$ BB code under circuit-level noise. The block-diagonal structure reflects the time-like locality - of the syndrome extraction circuit., with each block + of the syndrome extraction circuit, with each block corresponding to one syndrome measurement round. - Two consecutive windows are highlighted: the window size $W$ - controls the number of syndrome rounds included in each - window, while the step size $F$ controls how many rounds - separate the start of one window from the next. + Two consecutive windows are highlighted: the window size $W + \in \mathbb{N}$ controls the number of syndrome rounds + included in each window, while the step size $F \in + \mathbb{N}$ controls how many rounds separate the start of + one window from the next. The bracketed region indicates the commit region of the first window, i.e., the \acp{vn} that are committed - before moving to the second window. - % Visualization of the windowing process on a detector - % error matrix generated from the $\llbracket 72, 6, 6 - % \rrbracket$ BB code. + before moving to the decoding of the second window. } \label{fig:windowing_pcm} \end{figure} @@ -493,9 +490,9 @@ We use the variables $n,m \in \mathbb{N}$ to describe the number of We index the \acp{vn} using the variable $i \in \mathcal{I} := [0:n-1]$ and the \acp{cn} using the variable $j \in \mathcal{J} := [ 0 : m-1]$. Finally, we call $\mathcal{N}_\text{V}(i) = \left\{ j\in \mathcal{J}: -\bm{H}_{j,i} = 1 \right\}$ and $\mathcal{N}_\text{C}(j) := \left\{ i -\in \mathcal{I} : \bm{H}_{j,i} = 1 \right\}$ the neighborhoods of the -corresponding nodes. +H_{j,i} = 1 \right\}$ and $\mathcal{N}_\text{C}(j) := \left\{ i +\in \mathcal{I} : H_{j,i} = 1 \right\}$ the neighborhoods of the +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}$ @@ -503,17 +500,17 @@ to refer to the respective values defined from the detector error matrix. % How we get the corresponding rows -We begin by describing the sets of \acp{cn} relevant to each window. +First, we describe the sets of \acp{cn} relevant to each window. For indexing, we use the variable $\ell \in [0:n_\text{win} - 1]$, where $n_\text{win} \in \mathbb{N}$ is the number of windows. -Because we defined the step size $F$ as the number of syndrome -extraction rounds to skip, the first \ac{cn} of window $\ell$ should have index +Since we define the step size $F$ as the number of syndrome +extraction rounds to skip, the first \ac{cn} of window $\ell$ has index $\ell F m$. -Similarly, because of the way we defined the window size $W$, the -number of \acp{cn} should be $Wm$ for all but the last window. +Similarly, due to the definition of the window size $W$, the +number of \acp{cn} per window is $Wm$ for all but the last window. The number of \acp{cn} in the last window may differ if there are not enough \acp{cn} left to completely fill it. -We thus define +Thus, we define \begin{align*} \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\} @@ -522,13 +519,13 @@ We thus define \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\} - .% + ,% \end{align*} -$\mathcal{J}_\text{win}^{(\ell)}$ is the set of all \acp{cn} in the -window while $\mathcal{J}_\text{commit}^{(\ell)}$ is the set of \acp{cn} +where $\mathcal{J}_\text{win}^{(\ell)}$ is the set of all \acp{cn} in the +window and $\mathcal{J}_\text{commit}^{(\ell)}$ is the set of \acp{cn} that do not contribute to the next window and whose neighboring \acp{vn} will thus be committed. -We can additionally define the set of \acp{cn} that are shared between windows +Additionally, we can define the set of \acp{cn} that are shared between windows $\ell$ and $\ell + 1$ as $\mathcal{J}_\text{overlap}^{(\ell)} := \mathcal{J}_\text{win}^{(\ell)}\setminus \mathcal{J}_\text{commit}^{(\ell)}$. @@ -537,8 +534,9 @@ $\ell$ and $\ell + 1$ as $\mathcal{J}_\text{overlap}^{(\ell)} := We can 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 of -\ac{cn} indices and returns the largest neighboring \ac{vn} index. +\mathcal{P}(\mathbb{N}) \to \mathbb{N}$, which takes a set +$\mathcal{S} \in \mathcal{P}(\mathbb{N})$ of \ac{cn} indices and +returns the largest neighboring \ac{vn} index. We define \begin{align*} i_\text{max}\left( \mathcal{S} \right) := \max \left\{ i\in @@ -552,13 +550,13 @@ where we set $i_\text{max} (\emptyset) = -1$ by convention% and $\mathcal{I}_\text{win}^{(\ell)}$ appropriately. }% . -The commit region of window $\ell$ should include all of the \acp{vn} +The commit region of window $\ell$ includes all of the \acp{vn} neighboring any of the \acp{cn} in $\mathcal{J}_\text{commit}^{(\ell)}$. -Consequently, the maximum index of the \acp{vn} we consider should be +Consequently, the maximum index of the \acp{vn} we consider is $i_\text{max}(\mathcal{J}_\text{commit}^{(\ell)})$. Additionally, the set of \acp{vn} committed in the next window should -start immediately afterwards. -We thus define +contain the next largest index. +Thus we define \begin{align*} \mathcal{I}_\text{commit}^{(\ell)} &:= \left\{i \in \mathcal{I}_\text{DEM} :~ @@ -680,7 +678,7 @@ and after decoding all windows we will therefore have committed all \acp{vn}. % Syndrome update -\Cref{fig:vis_rep} illustrates the meaning of the various sets of nodes. +\Cref{fig:vis_rep} illustrates the the various sets of nodes. We can also see a subtlety we must handle carefully when moving on to decode the next window. While the \acp{vn} in $\mathcal{J}_\text{commit}^{(\ell)}$ have no @@ -690,9 +688,12 @@ This is the case because these \acp{vn} have neighboring \acp{cn} in the next window. The part of the detector error matrix $\bm{H}_\text{DEM}$ describing these connections is -$\bm{H}_\text{overlap}^{(\ell)} = -\left(\bm{H}_\text{DEM}\right)_{\mathcal{J}_\text{overlap}^{(\ell)}, -\mathcal{I}_\text{commit}^{(\ell)}}$. +\begin{align*} + \bm{H}_\text{overlap}^{(\ell)} := + \left(\bm{H}_\text{DEM}\right)_{\mathcal{J}_\text{overlap}^{(\ell)}, + \mathcal{I}_\text{commit}^{(\ell)}} + .% +\end{align*} We have to account for this fact by updating the syndrome $\bm{s}$ based on the committed bit values. Specifically, if $\hat{\bm{e}}_\text{commit}^{(\ell)}$ describes the error diff --git a/src/thesis/main.tex b/src/thesis/main.tex index 4a2d15b..3b64ef7 100644 --- a/src/thesis/main.tex +++ b/src/thesis/main.tex @@ -29,6 +29,7 @@ \usepackage{colortbl} \usepackage{cleveref} \usepackage{lipsum} +\usepackage{booktabs} \usetikzlibrary{calc, positioning, arrows, fit} \usetikzlibrary{external}