QECTOR benchmarks are presented with scoped claims: tested circuits, distances, seeds, error models, latencies, memory profiles, and artifact hashes. The strongest public result is not a fastest-decoder claim; it is reproducible evidence with PyMatching LER parity, belief-matching accuracy mode, BP-OSD support, and CPU/GPU consistency checks.
Report build: git 729282f. License: QECTOR Decoder Source-Available License v1.0. Website: www.qector.store.
Real Stim circuit-level shots, rotated_memory_x, rounds = distance, p = 0.005, 40,000 shots per point through d=11. Same DEM decoded by both systems. QECTOR uses collapsed detector graph + weighted MWPM.
| d | QECTOR-Blossom LER | PyMatching LER | QECTOR µs/shot | PyMatching µs/shot | Interpretation |
|---|---|---|---|---|---|
| 3 | 0.0117 | 0.0117 | 0.7 | 0.5 | LER parity |
| 5 | 0.0089 | 0.0089 | 11.4 | 3.7 | LER parity |
| 7 | 0.0053 | 0.0053 | 60.4 | 13.3 | LER parity |
| 9 | 0.0029 | 0.0029 | 311.5 | 19.7 | LER parity |
| 11 | 0.0017 | 0.0017 | 633.9 | 46.0 | LER parity |
The adaptive-k fix restored d=15 logical-error-rate parity. At larger distances QECTOR's matching weight path is best described as near-exact adaptive-k, not universally bit-exact MWPM; the tested logical outcomes remain at parity.
| d | Shots | QECTOR LER | PyMatching LER | Errors Q/PM | QECTOR µs/shot |
|---|---|---|---|---|---|
| 13 | 20,000 | 0.0010 | 0.0010 | 20 / 20 | 1437.3 |
| 15 | 20,000 | 0.0005 | 0.0005 | 10 / 10 | 3555.0 |
Belief-matching runs BP on the hyperedge detector graph, preserving correlations that plain graphlike MWPM can discard, then reweights the matching problem. It is an accuracy mode and is slower than plain MWPM.
| d | PyMatching LER | QECTOR belief LER | Reduction | Interpretation |
|---|---|---|---|---|
| 3 | 0.0112 | 0.0109 | 2.7% | near parity at tiny distance |
| 5 | 0.0084 | 0.0056 | 33.7% | headline advantage |
| 7 | 0.0053 | 0.0039 | 25.7% | robust advantage |
d=5, p=0.005, 8 independent seeds: belief-matching was better in 8/8 seeds with pooled LER reduction of 20.1%.
d=5, p=0.004/0.005/0.006, five seeds each: pooled reductions remain positive across the grid.
Matching cannot decode codes whose mechanisms touch more than two detectors. QECTOR includes a BP-OSD workflow for arbitrary GF(2) check matrices and LDPC/qLDPC experiments.
| Code | p | QECTOR BP-OSD LER | ldpc package LER | Result |
|---|---|---|---|---|
| [[72,12]] bivariate-bicycle | 0.03 | 0.0370 | 0.0340 | within ~10% of reference |
CUDA and OpenCL batch decoders were checked against the CPU reference across d=3..13 and batches up to 65,536 on an NVIDIA GTX 1660 Ti. Outputs were bit-identical and syndrome-faithful in the tested configurations.
Python-side peak allocation remains approximately flat in the hot path across d=3..11, while native/Rust memory is measured separately through RSS profiling.
git clone https://github.com/qectorlab/qector-decoder.git
cd qector-decoder
pip install maturin
maturin develop --release --no-default-features
pip install -e ".[dev]"
pytestUse the repository folders docs/, benchmark_results/, artifacts/, and scripts/ for methodology, results, hashes, and reproducibility drivers.