diff --git a/src/thesis/acronyms.tex b/src/thesis/acronyms.tex index 997bbd6..5e076ae 100644 --- a/src/thesis/acronyms.tex +++ b/src/thesis/acronyms.tex @@ -23,6 +23,11 @@ long=belief propagation with guided decimation } +\DeclareAcronym{gdg}{ + short=GDG, + long=guided decimation guessing +} + \DeclareAcronym{nms}{ short=NMS, long=normalized min-sum @@ -122,3 +127,18 @@ short=BB, long=bivariate bicycle } + +\DeclareAcronym{hgp}{ + short=HGP, + long=hypergraph product +} + +\DeclareAcronym{lp}{ + short=LP, + long=lifted-product +} + +\DeclareAcronym{bpc}{ + short=BPC, + long=balanced product code +} diff --git a/src/thesis/chapters/4_decoding_under_dems.tex b/src/thesis/chapters/4_decoding_under_dems.tex index 68b5232..d08be46 100644 --- a/src/thesis/chapters/4_decoding_under_dems.tex +++ b/src/thesis/chapters/4_decoding_under_dems.tex @@ -107,35 +107,104 @@ time dimension. Each of these windows is then decoded separately. %%%%%%%%%%%%%%%% -\subsection{Existing Literature} -\label{subsec:Existing Literature} +\subsection{Review of Existing Literature} +\label{subsec:Review of Existing Literature} -% Review of existing literature +% Description of the figure -Research on this topic has been ongoing for some time, though mostly -for topological codes. -The literature on \ac{qldpc} codes is more limited. Figure -\Cref{fig:literature} gives an overview of the related body of work. +\Cref{fig:literature} gives an overview over the existing body of work +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; +one is simply preprint published earlier. +We will only refer to \cite{huang_increasing_2024} in the following. +\cite{kang_quits_2025} is somewhat special in that the authors focus +more on the introduction of a new simluator framework they call +QUITS, rather than the performance of sliding-window decoding itself. +\cite{gong_toward_2024} and \cite{kang_quits_2025} have made their +software freely available online% +\footnote{ + https://github.com/mkangquantum/quits +}% +\footnote{ + https://github.com/gongaa/SlidingWindowDecoder +}. +A final thing to note is that \cite{dennis_topological_2002} never +explicitly mention sliding windows, they call their scheme +``overlapping recovery''. -\red{ - \begin{itemize} - \item \cite{huang_increasing_2024} use BP+OSD, - \cite{gong_toward_2024} use BP+GDG - \item \cite{huang_improved_2023} use phenomenological noise, - \cite{gong_toward_2024} circuit-level noise - \item Go into the way the parallel decoding approaches - consolidate the overlap regions - \item \cite{huang_improved_2023} use hypegraph and lifted - product codes, \cite{gong_toward_2024} use BB codes - \item \cite{kuo_fault-tolerant_2024} use toric codes, the - rest of the topological papers surface codes - \item \cite{dennis_topological_2002} call their scheme ``overlap-add'' - \item QUITS views sliding-window decoding more separately - \item Reasons for latency improvement () - \end{itemize} -} +% Topological vs QLDPC -\begin{figure}[H] +Research has focused on two categories of \ac{qec} codes, topological +and \ac{qldpc} codes. +Most of the work on topological codes has treated surface codes, +with the exception of \cite{kuo_fault-tolerant_2024} where toric +codes were considered. +With regard to \ac{qldpc} codes, in \cite{huang_increasing_2024} +they examine \emph{hypergraph product} (\acs{hgp}) and +\emph{lifted-product} (\acs{lp}) codes. +HGP codes are constructed from the product of two classical codes, +while LP codes generalize this construction by additionally applying +a lift to reduce the qubit overhead. +In \cite{kang_quits_2025}, \emph{balanced product codes} (\acs{bpc}) +are additionally considered. +Finally, in \cite{gong_toward_2024} the authors explore \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. +There are two main approaches, with differing mechanisms of reducing +the latency. +Some papers decode the sliding windows in a parallel fashion. +The benefit in this case is the option to more effectively utilize +classical hardware for decoding. +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. +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 wholely considered +sequential decoding. + +% Deep-dive into QLDPC methods + +\renewcommand{\arraystretch}{1.1} +\setlength{\tabcolsep}{12pt} +\begin{table}[t] + \centering + \caption{Experimental conditions for papers related to \ac{qldpc} codes.} + \vspace*{3mm} + \label{table:experimental_conditions} + \begin{tabular}{l|ccc} + % 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} + % tex-fmt: on + \end{tabular} +\end{table} + +For this work, the publications treating \ac{qldpc} codes are +especially 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 +\cite{huang_increasing_2024}, +\ac{hgp}, \ac{lp} and \ac{bpc} codes are considered in \cite{kang_quits_2025}, +and \ac{bb} codes are considered in \cite{gong_toward_2024}. +The employed noise models also differ; +\cite{huang_increasing_2024} use phenomenological noise, while +\cite{gong_toward_2024} and \cite{kang_quits_2025} use circuit-level noise. +Finally, \cite{gong_toward_2024} 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 +\cite{gong_toward_2024} and \cite{kang_quits_2025} do the authors +explicitly work with the \ac{dem} formalism. + +\begin{figure}[t] \centering \tikzset{ @@ -156,20 +225,22 @@ The literature on \ac{qldpc} codes is more limited. Figure } } + \tikzexternaldisable \begin{tikzpicture}[node distance = 0mm and 0mm] % tex-fmt: off - \node[heading, minimum width=15mm, fill=gray!25] (code) {Code}; - \node[heading, below right=1mm and -5mm of code, fill=orange!20] (top) {Topological}; - \node[heading, below right=42mm and -5mm of code, fill=orange!20] (qldpc) {QLDPC}; + \node[heading, minimum width=15mm, fill=gray!25] (code) {Code}; + \node[heading, below right=2mm and -5mm of code, fill=orange!20] (top) {Topological}; + \node[heading, below right=45mm and -5mm of code, fill=orange!20] (qldpc) {QLDPC}; - \node[literature, below right=0mm and -12mm of top] (dennis) {\cite{dennis_topological_2002}}; + \node[literature, below right=1mm and -12mm of top] (dennis) {\cite{dennis_topological_2002}}; \node[literature, below=of dennis] (tan) {\cite{tan_scalable_2023}}; \node[literature, below=of tan] (skoric) {\cite{skoric_parallel_2023}}; \node[literature, below=of skoric] (bombin) {\cite{bombin_modular_2023}}; \node[literature, below=of bombin] (kuo) {\cite{kuo_fault-tolerant_2024}}; - \node[literature, below right=0mm and -12mm of qldpc] (huang) {\cite{huang_improved_2023},\cite{huang_increasing_2024}}; + \node[literature, below right=1mm and -12mm of qldpc] (huang) {\cite{huang_improved_2023},\cite{huang_increasing_2024}}; \node[literature, below=of huang] (gong) {\cite{gong_toward_2024}}; + \node[literature, below=of gong] (kang) {\cite{kang_quits_2025}}; \coordinate (code-anchor) at ($(code.south) + (-2mm,0)$); \coordinate (top-anchor) at ($(top.south) + (-5mm,0)$); @@ -186,6 +257,7 @@ The literature on \ac{qldpc} codes is more limited. Figure \draw (qldpc-anchor) |- (huang); \draw (qldpc-anchor) |- (gong); + \draw (qldpc-anchor) |- (kang); \draw [ line width=1pt, @@ -208,10 +280,11 @@ The literature on \ac{qldpc} codes is more limited. Figure decorate, decoration={brace,amplitude=2mm,raise=5mm} ] - (huang.north east) -- (gong.south east) + (huang.north east) -- (kang.south east) node[midway,right,xshift=10mm]{Sequential}; % tex-fmt: on \end{tikzpicture} + \tikzexternalenable \caption{Overview of literature on sliding-window decoding.} \label{fig:literature} @@ -299,6 +372,21 @@ The literature on \ac{qldpc} codes is more limited. Figure % \end{itemize} % } +%%%%%%%%%%%%%%%% +\subsection{Window Generation} +\label{subsec:Window Generation} + +In this section, we will examine the methodology by which a detector +error matrix is divided into overlapping windows. +The algorithm detailed here follows \cite{kang_quits_2025}, whose +work is in turn based on \cite{huang_increasing_2024}. + +\red{ + \begin{itemize} + \item QUITS views sliding-window decoding more separately + \end{itemize} +} + \content{Possibly go into the fact that current sliding-window approaches don't differentiate clearly between the sliding-window part and the decoder part. This work aims to extend the @@ -306,10 +394,6 @@ The literature on \ac{qldpc} codes is more limited. Figure different decoder parts. Combine this with QUITS modular structure for sliding window decoding} -%%%%%%%%%%%%%%%% -\subsection{Implementation of Sliding-Window Decoding} -\label{subsec:Implementation of Sliding-Window Decoding} - We build on the approach taken by \cite{huang_increasing_2024} and \cite{gong_toward_2024}. @@ -361,7 +445,7 @@ with processing'' some VNs)} \begin{tikzpicture} \draw[{Latex}-{Latex}, line width=.7pt] (0, -0.75mm) -- (0, 5mm); \draw[line width=1pt] (-1mm,-0.75mm) -- -(3mm,-0.75mm); + (3mm,-0.75mm); \draw[line width=1pt] (-1mm,5mm) -- (3mm,5mm); \node[left] at (-2mm,2.125mm) {$\sim W$}; @@ -807,7 +891,7 @@ standard circuit-based depolarizing noise model, etc.)} {3/KITred/triangle*,4/KITblue/diamond*,5/KITorange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, solid, mark -options={fill=\col}, \col] + options={fill=\col}, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, @@ -888,7 +972,7 @@ options={fill=\col}, \col] {3/KITred/triangle*,4/KITblue/diamond*,5/KITorange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, solid, mark -options={fill=\col}, \col] + options={fill=\col}, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, @@ -971,7 +1055,7 @@ options={fill=\col}, \col] {3/KITred/triangle*,2/KITblue/diamond*,1/KITorange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, solid, mark -options={fill=\col}, \col] + options={fill=\col}, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, @@ -1039,7 +1123,7 @@ options={fill=\col}, \col] {3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, densely dashed, -forget plot, \col] + forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1110,7 +1194,7 @@ forget plot, \col] {3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, densely dashed, -forget plot, \col] + forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1148,7 +1232,7 @@ forget plot, \col] under circuit-level noise. $12$ rounds of syndrome extraction were performed and standard circuit-based depolarizing noise was chosen as the -noise model. + noise model. The physical error probabilty was fixed to $0.0025$. } \end{figure} @@ -1307,7 +1391,7 @@ noise model. information. $12$ rounds of syndrome extraction were performed and standard circuit-based depolarizing noise was chosen as the -noise model. + noise model. } \end{figure} @@ -1353,7 +1437,7 @@ noise model. {3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, densely dashed, -forget plot, \col] + forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1424,7 +1508,7 @@ forget plot, \col] {3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, densely dashed, -forget plot, \col] + forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1469,7 +1553,7 @@ forget plot, \col] included only the messages on the Tanner graph. $12$ rounds of syndrome extraction were performed and standard circuit-based depolarizing noise was chosen as the -noise model. + noise model. The physical error probabilty was fixed to $0.0025$. } \end{figure} @@ -1624,7 +1708,7 @@ noise model. included only the messages on the Tanner graph. $12$ rounds of syndrome extraction were performed and standard circuit-based depolarizing noise was chosen as the -noise model. + noise model. } \end{figure} @@ -1670,7 +1754,7 @@ noise model. {3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, densely dashed, -forget plot, \col] + forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1741,7 +1825,7 @@ forget plot, \col] {3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, densely dashed, -forget plot, \col] + forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1786,9 +1870,8 @@ forget plot, \col] included only the messages on the Tanner graph. $12$ rounds of syndrome extraction were performed and standard circuit-based depolarizing noise was chosen as the -noise model. + noise model. The physical error probabilty was fixed to $0.0025$. } \end{figure} - diff --git a/src/thesis/chapters/5_conclusion_and_outlook.tex b/src/thesis/chapters/5_conclusion_and_outlook.tex index f88fc24..c968b6f 100644 --- a/src/thesis/chapters/5_conclusion_and_outlook.tex +++ b/src/thesis/chapters/5_conclusion_and_outlook.tex @@ -2,4 +2,6 @@ \content{\textbf{Ideas for further research}} \content{Softer way of decimating VNs} +\content{Systematic study on using different inner decoders (AED, +SED, BPGD, ...)}