Add literature overview figure
This commit is contained in:
@@ -49,7 +49,7 @@ 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 by far is combining a few initial
|
||||
The most popular approach is combining a few initial
|
||||
iterations of \ac{bp} with a second decoding algorithm, \ac{osd}
|
||||
\cite{roffe_decoding_2020}.
|
||||
Other approaches exist, such as \ac{aed}
|
||||
@@ -62,31 +62,256 @@ for reasons that will become clear later in the chapter.
|
||||
The second problem is inherent to decoding using \acp{dem}.
|
||||
This is an area that has been less studied.
|
||||
As we saw in \Cref{sec:Quantum Error Correction}, for \ac{qec},
|
||||
latency is the main constraint, not raw computational complexity,
|
||||
and reducing latency is the main goal of the existing literature.
|
||||
This is generally done using windowing approaches; either
|
||||
sliding-window based, where the latency is reduced due an earlier
|
||||
start to the decoding process \cite{kuo_fault-tolerant_2024}%
|
||||
\cite{huang_improved_2023}\cite{huang_increasing_2024}\cite{gong_toward_2024},
|
||||
or by decoding multiple windows in parallel
|
||||
\cite{skoric_parallel_2023}\cite{tan_scalable_2023}.
|
||||
This work is based on the sliding-window method.
|
||||
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
|
||||
problem into many smaller ones that can be solved more efficiently.
|
||||
|
||||
% TODO: This could potentially be abit 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)
|
||||
We will start by briefly reviewing the existing work related to
|
||||
sliding-window decoding,
|
||||
before focusing on one specific incarnation.
|
||||
We will then introduce a modification to the existing algorithm and
|
||||
perform numerical simulations to evaluate it.
|
||||
|
||||
% and reducing latency is the main goal of the existing literature.
|
||||
% This is generally done using windowing approaches; either
|
||||
% sliding-window based, where the latency is reduced due an earlier
|
||||
% start to the decoding process \cite{kuo_fault-tolerant_2024}%
|
||||
% \cite{huang_improved_2023}\cite{huang_increasing_2024}\cite{gong_toward_2024},
|
||||
% or by decoding multiple windows in parallel
|
||||
% \cite{skoric_parallel_2023}\cite{tan_scalable_2023}.
|
||||
% This work is based on the sliding-window method.
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Sliding-Window Decoding}
|
||||
\label{sec:Sliding-Window Decoding}
|
||||
|
||||
% Spacetime codes
|
||||
|
||||
\ac{qec} codes are often viewed through the lenses of the
|
||||
\emph{space} and \emph{time} dimensions.
|
||||
Both directions add redundancy, but they do so in a different way and
|
||||
guard against different defects.
|
||||
The space dimension corresponds to the redundancy added through the
|
||||
code itself, while the time dimension corresponds to the repetition
|
||||
of the syndrome measurements \cite[Sec.~IV.B]{dennis_topological_2002}.
|
||||
|
||||
% Basic idea
|
||||
|
||||
The idea of sliding-window decoding is to exploit the time-like
|
||||
structure by splitting the circuit into overlapping windows along the
|
||||
time dimension.
|
||||
Each of these windows is then decoded separately.
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Existing Literature}
|
||||
\label{subsec:Existing Literature}
|
||||
|
||||
% Review of existing literature
|
||||
|
||||
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.
|
||||
|
||||
\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}
|
||||
}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\tikzset{
|
||||
literature/.append style={
|
||||
minimum width=6mm,
|
||||
minimum height=6mm,
|
||||
text width=18mm,
|
||||
align=left,
|
||||
}
|
||||
}
|
||||
\tikzset{
|
||||
heading/.append style={
|
||||
draw=black,
|
||||
minimum width=22mm,
|
||||
minimum height=6mm,
|
||||
align=left,
|
||||
rounded corners = 1mm,
|
||||
}
|
||||
}
|
||||
|
||||
\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[literature, below right=0mm 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=of huang] (gong) {\cite{gong_toward_2024}};
|
||||
|
||||
\coordinate (code-anchor) at ($(code.south) + (-2mm,0)$);
|
||||
\coordinate (top-anchor) at ($(top.south) + (-5mm,0)$);
|
||||
\coordinate (qldpc-anchor) at ($(qldpc.south) + (-5mm,0)$);
|
||||
|
||||
\draw (code-anchor) |- (top);
|
||||
\draw (code-anchor) |- (qldpc);
|
||||
|
||||
\draw (top-anchor) |- (dennis);
|
||||
\draw (top-anchor) |- (tan);
|
||||
\draw (top-anchor) |- (skoric);
|
||||
\draw (top-anchor) |- (bombin);
|
||||
\draw (top-anchor) |- (kuo);
|
||||
|
||||
\draw (qldpc-anchor) |- (huang);
|
||||
\draw (qldpc-anchor) |- (gong);
|
||||
|
||||
\draw [
|
||||
line width=1pt,
|
||||
decorate,
|
||||
decoration={brace,amplitude=2mm,raise=5mm}
|
||||
]
|
||||
(dennis.north east) -- (dennis.south east)
|
||||
node[midway,right,xshift=10mm]{Sequential};
|
||||
|
||||
\draw [
|
||||
line width=1pt,
|
||||
decorate,
|
||||
decoration={brace,amplitude=2mm,raise=5mm}
|
||||
]
|
||||
(tan.north east) -- (kuo.south east)
|
||||
node[midway,right,xshift=10mm]{Parallel};
|
||||
|
||||
\draw [
|
||||
line width=1pt,
|
||||
decorate,
|
||||
decoration={brace,amplitude=2mm,raise=5mm}
|
||||
]
|
||||
(huang.north east) -- (gong.south east)
|
||||
node[midway,right,xshift=10mm]{Sequential};
|
||||
% tex-fmt: on
|
||||
\end{tikzpicture}
|
||||
|
||||
\caption{Overview of literature on sliding-window decoding.}
|
||||
\label{fig:literature}
|
||||
\end{figure}
|
||||
|
||||
% \red{
|
||||
% Existing work
|
||||
% \begin{itemize}
|
||||
% \item \cite{gong_toward_2024}
|
||||
% \begin{itemize}
|
||||
% \item BB codes (QLDPC)
|
||||
% \item Circuit-level noise
|
||||
% \item Sequential
|
||||
% \item Cites $\underbrace{\cite{dennis_topological_2002}
|
||||
% \cite{tan_scalable_2023}
|
||||
% \cite{skoric_parallel_2023}}_\text{Surface code}
|
||||
% \underbrace{\cite{huang_improved_2023}}_\text{QLDPC,Phenomenological}$
|
||||
% \end{itemize}
|
||||
% \item \cite{huang_improved_2023}
|
||||
% \begin{itemize}
|
||||
% \item Hypergraph product codes, Lifted product codes (QLDPC)
|
||||
% \item Phenomenological noise
|
||||
% \item Sequential
|
||||
% \item Cites $\underbrace{\cite{dennis_topological_2002}
|
||||
% [Huang, Brown, 2021]
|
||||
% \cite{skoric_parallel_2023}
|
||||
% \cite{tan_scalable_2023}
|
||||
% \cite{bombin_modular_2023}}_\text{Surface code}$
|
||||
% \end{itemize}
|
||||
% \item \cite{dennis_topological_2002}
|
||||
% \begin{itemize}
|
||||
% \item Surface code (Topological)
|
||||
% \item No idea what noise, don't care either (Gong et
|
||||
% al. say circuit-level noise)
|
||||
% \item ``Overlapping recovery'' -> Sequential
|
||||
% \end{itemize}
|
||||
% \item \cite{tan_scalable_2023}
|
||||
% \begin{itemize}
|
||||
% \item Surface code (Topological)
|
||||
% \item Circuit-level noise
|
||||
% \item Parallel
|
||||
% \item Cites \cite{dennis_topological_2002}
|
||||
% \end{itemize}
|
||||
% \item \cite{skoric_parallel_2023}
|
||||
% \begin{itemize}
|
||||
% \item Surface code (Topological)
|
||||
% \item Circuit-level noise
|
||||
% \item Parallel
|
||||
% \item Cites \cite{dennis_topological_2002}
|
||||
% \end{itemize}
|
||||
% \item \cite{huang_increasing_2024}
|
||||
% \begin{itemize}
|
||||
% \item Same as \cite{huang_improved_2023}
|
||||
% \end{itemize}
|
||||
% \item \cite{kuo_fault-tolerant_2024}
|
||||
% \begin{itemize}
|
||||
% \item Toric codes (Topological)
|
||||
% \item Circuit-level noise
|
||||
% \item Parallel
|
||||
% \item Cites \cite{dennis_topological_2002}
|
||||
% \cite{tan_scalable_2023}
|
||||
% \cite{skoric_parallel_2023} \cite{gong_toward_2024}
|
||||
% \end{itemize}
|
||||
% \item \cite{bombin_modular_2023}
|
||||
% \begin{itemize}
|
||||
% \item Surface codes (Topological)
|
||||
% \item No idea if it's even fault-tolerant
|
||||
% \item Parallel
|
||||
% \item Cites \cite{dennis_topological_2002}
|
||||
% \cite{tan_scalable_2023}
|
||||
% \cite{skoric_parallel_2023} \cite{leverrier_decoding_2022}
|
||||
% \end{itemize}
|
||||
% % This is not BP and not parallelization over the time dimension
|
||||
% % \item \cite{leverrier_decoding_2022}
|
||||
% % \begin{itemize}
|
||||
% % \item Quantum tanner codes (QLDPC)
|
||||
% % \item Parallel
|
||||
% % \item No idea if it's even fault-tolerant
|
||||
% % \item Cites [don't care]
|
||||
% % \end{itemize}
|
||||
% \item \cite{kang_quits_2025}
|
||||
% \begin{itemize}
|
||||
% \item Cites \cite{huang_increasing_2024} \ldots
|
||||
% \end{itemize}
|
||||
% \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
|
||||
sliding-window part in a general fashion that is compatible with many
|
||||
different decoder parts.}
|
||||
different decoder parts. Combine this with QUITS modular structure
|
||||
for sliding window decoding}
|
||||
|
||||
% Intro
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Implementation of Sliding-Window Decoding}
|
||||
\label{subsec:Implementation of Sliding-Window Decoding}
|
||||
|
||||
\content{Callback to previous chapter}
|
||||
\content{(Maybe even historical) overview of the literature}
|
||||
\content{Better yet: A proper (at least as proper as possible) review}
|
||||
We build on the approach taken by \cite{huang_increasing_2024} and
|
||||
\cite{gong_toward_2024}.
|
||||
|
||||
% High-level overview of Sliding-Window decoding
|
||||
|
||||
@@ -135,7 +360,8 @@ with processing'' some VNs)}
|
||||
\hspace*{-98mm}%
|
||||
\begin{tikzpicture}
|
||||
\draw[{Latex}-{Latex}, line width=.7pt] (0, -0.75mm) -- (0, 5mm);
|
||||
\draw[line width=1pt] (-1mm,-0.75mm) -- (3mm,-0.75mm);
|
||||
\draw[line width=1pt] (-1mm,-0.75mm) --
|
||||
(3mm,-0.75mm);
|
||||
\draw[line width=1pt] (-1mm,5mm) -- (3mm,5mm);
|
||||
\node[left] at (-2mm,2.125mm) {$\sim W$};
|
||||
|
||||
@@ -580,7 +806,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \W/\col/\mark in
|
||||
{3/KITred/triangle*,4/KITblue/diamond*,5/KITorange/square*} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, solid, mark options={fill=\col}, \col]
|
||||
\addplot+[mark=\mark, solid, mark
|
||||
options={fill=\col}, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y=LER_per_round,
|
||||
@@ -660,7 +887,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \W/\col/\mark in
|
||||
{3/KITred/triangle*,4/KITblue/diamond*,5/KITorange/square*} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, solid, mark options={fill=\col}, \col]
|
||||
\addplot+[mark=\mark, solid, mark
|
||||
options={fill=\col}, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y=LER_per_round,
|
||||
@@ -742,7 +970,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \F/\col/\mark in
|
||||
{3/KITred/triangle*,2/KITblue/diamond*,1/KITorange/square*} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, solid, mark options={fill=\col}, \col]
|
||||
\addplot+[mark=\mark, solid, mark
|
||||
options={fill=\col}, \col]
|
||||
table[
|
||||
col sep=comma, x=physical_p,
|
||||
y=LER_per_round,
|
||||
@@ -809,7 +1038,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \W/\col/\mark in
|
||||
{3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, densely dashed, forget plot, \col]
|
||||
\addplot+[mark=\mark, densely dashed,
|
||||
forget plot, \col]
|
||||
table[
|
||||
col sep=comma, x=max_iter,
|
||||
y=LER_per_round,
|
||||
@@ -879,7 +1109,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \F/\col/\mark in
|
||||
{3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, densely dashed, forget plot, \col]
|
||||
\addplot+[mark=\mark, densely dashed,
|
||||
forget plot, \col]
|
||||
table[
|
||||
col sep=comma, x=max_iter,
|
||||
y=LER_per_round,
|
||||
@@ -916,7 +1147,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\ac{bb} code
|
||||
under circuit-level noise.
|
||||
$12$ rounds of syndrome extraction were performed and
|
||||
standard circuit-based depolarizing noise was chosen as the noise model.
|
||||
standard circuit-based depolarizing noise was chosen as the
|
||||
noise model.
|
||||
The physical error probabilty was fixed to $0.0025$.
|
||||
}
|
||||
\end{figure}
|
||||
@@ -1074,7 +1306,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
included both the messages on the Tanner graph and decimation
|
||||
information.
|
||||
$12$ rounds of syndrome extraction were performed and
|
||||
standard circuit-based depolarizing noise was chosen as the noise model.
|
||||
standard circuit-based depolarizing noise was chosen as the
|
||||
noise model.
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
@@ -1119,7 +1352,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \W/\col/\mark in
|
||||
{3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, densely dashed, forget plot, \col]
|
||||
\addplot+[mark=\mark, densely dashed,
|
||||
forget plot, \col]
|
||||
table[
|
||||
col sep=comma, x=max_iter,
|
||||
y=LER_per_round,
|
||||
@@ -1189,7 +1423,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \F/\col/\mark in
|
||||
{3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, densely dashed, forget plot, \col]
|
||||
\addplot+[mark=\mark, densely dashed,
|
||||
forget plot, \col]
|
||||
table[
|
||||
col sep=comma, x=max_iter,
|
||||
y=LER_per_round,
|
||||
@@ -1233,7 +1468,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
The information used for the warm-start intialization
|
||||
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.
|
||||
standard circuit-based depolarizing noise was chosen as the
|
||||
noise model.
|
||||
The physical error probabilty was fixed to $0.0025$.
|
||||
}
|
||||
\end{figure}
|
||||
@@ -1387,7 +1623,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
The information used for the warm-start intialization
|
||||
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.
|
||||
standard circuit-based depolarizing noise was chosen as the
|
||||
noise model.
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
@@ -1432,7 +1669,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \W/\col/\mark in
|
||||
{3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, densely dashed, forget plot, \col]
|
||||
\addplot+[mark=\mark, densely dashed,
|
||||
forget plot, \col]
|
||||
table[
|
||||
col sep=comma, x=max_iter,
|
||||
y=LER_per_round,
|
||||
@@ -1502,7 +1740,8 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
\foreach \F/\col/\mark in
|
||||
{3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} {
|
||||
\edef\temp{\noexpand
|
||||
\addplot+[mark=\mark, densely dashed, forget plot, \col]
|
||||
\addplot+[mark=\mark, densely dashed,
|
||||
forget plot, \col]
|
||||
table[
|
||||
col sep=comma, x=max_iter,
|
||||
y=LER_per_round,
|
||||
@@ -1546,8 +1785,10 @@ standard circuit-based depolarizing noise model, etc.)}
|
||||
The information used for the warm-start intialization
|
||||
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.
|
||||
standard circuit-based depolarizing noise was chosen as the
|
||||
noise model.
|
||||
The physical error probabilty was fixed to $0.0025$.
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user