You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/sphinx/components/qec/introduction.rst
+17-1Lines changed: 17 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -640,13 +640,29 @@ The Quantum Low-Density Parity-Check (QLDPC) decoder leverages GPU-accelerated b
640
640
Since belief propagation is an iterative method which may not converge, decoding can be improved with a second-stage post-processing step. The `nv-qldpc-decoder`
641
641
API provides various post-processing options, which can be selected through its parameters.
642
642
643
+
**Belief Propagation Methods:**
644
+
645
+
The decoder supports multiple BP algorithms (configured via ``bp_method``):
* **Min-Sum BP** (``bp_method=1``): Approximation to sum-product that uses min operations instead of sum. Optionally accepts ``scale_factor``.
649
+
* **Memory-based BP** (``bp_method=2``): Min-sum with uniform memory strength across all variable nodes. **Requires:** ``gamma0``.
650
+
* **Disordered Memory BP** (``bp_method=3``): Min-sum with per-variable memory strengths. **Requires:** ``gamma_dist`` [min, max] OR ``explicit_gammas`` (2D vector).
651
+
652
+
**Sequential Relay Decoding:**
653
+
654
+
Starting with version 0.5.0, the decoder supports Sequential Relay BP (configured via ``composition=1``), which combines disordered memory BP
655
+
with multiple "relay legs" - sequential runs with different gamma configurations. **Requires:** ``bp_method=3``, ``gamma0``, ``srelay_config``, and either ``gamma_dist`` OR ``explicit_gammas``.
656
+
643
657
The QLDPC decoder `nv-qldpc-decoder` requires a CUDA-Q compatible GPU. See the list below for dependencies and compatibility:
Copy file name to clipboardExpand all lines: docs/sphinx/examples_rst/qec/decoders.rst
+27-6Lines changed: 27 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,12 +75,33 @@ CUDA-Q QEC library. The library follows the CUDA-Q decoder Python and C++ interf
75
75
:cpp:class:`cudaq::qec::decoder` for C++), but as documented in the API sections
76
76
(:ref:`nv_qldpc_decoder_api_python` for Python and
77
77
:ref:`nv_qldpc_decoder_api_cpp` for C++), there are many configuration options
78
-
that can be passed to the constructor. The following example shows how to
79
-
exercise the decoder using non-trivial pre-generated test data. The test data
80
-
was generated using scripts originating from the GitHub repo for
81
-
`BivariateBicycleCodes
82
-
<https://github.com/sbravyi/BivariateBicycleCodes>`_ [#f1]_; it includes parity
83
-
check matrices (PCMs) and test syndromes to exercise a decoder.
78
+
that can be passed to the constructor.
79
+
80
+
Belief Propagation Methods
81
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
82
+
83
+
The ``nv-qldpc-decoder`` supports multiple belief propagation (BP) algorithms, each with different trade-offs
84
+
between accuracy, convergence, and speed:
85
+
86
+
* **Sum-Product BP** (``bp_method=0``): The standard BP algorithm. Good baseline performance.
87
+
* **Min-Sum BP** (``bp_method=1``): Faster approximation to sum-product. Can be tuned with ``scale_factor``.
88
+
* **Memory-based BP** (``bp_method=2``): Adds uniform memory (``gamma0``) to help escape local minima. Useful when standard BP fails to converge.
89
+
* **Disordered Memory BP** (``bp_method=3``): Uses per-variable memory strengths for better adaptability to code structure.
90
+
* **Sequential Relay BP** (``composition=1``): Advanced method that runs multiple "relay legs" with different gamma configurations. See examples below for configuration.
91
+
92
+
Usage Example
93
+
~~~~~~~~~~~~~
94
+
95
+
The following example shows how to exercise the decoder using non-trivial pre-generated test data.
96
+
The test data was generated using scripts originating from the GitHub repo for
0 commit comments