Sparse parity-check matrix support for decoders#550
Merged
vedika-saravanan merged 39 commits intoJun 5, 2026
Conversation
39255bc to
7c7cc4d
Compare
Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
…nitializations Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
I, Ben Howe <bhowe@nvidia.com>, hereby add my Signed-off-by to this commit: 9df0571 Signed-off-by: Ben Howe <bhowe@nvidia.com>
Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
… DEMs. Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Auto update to the latest CUDA-Q commit on main branch --------- Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Angela Burton <angelab@nvidia.com> Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Ben Howe <bhowe@nvidia.com> Co-authored-by: Angela Burton <angelab@nvidia.com> Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
…ounds slicing, Python BYOD, dense random PCM cap). Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
7c7cc4d to
7beef5b
Compare
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
341ccc5 to
1174d33
Compare
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Collaborator
Author
@bmhowe23, I have raised a merge request for necessary changes in nv-qldpc-decoder (219) |
sacpis
reviewed
May 26, 2026
bmhowe23
reviewed
May 29, 2026
melody-ren
reviewed
May 29, 2026
melody-ren
reviewed
May 29, 2026
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
1153937 to
6c594e1
Compare
19 tasks
bmhowe23
reviewed
Jun 5, 2026
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
6d1eb8e to
694db52
Compare
Signed-off-by: vedika-saravanan <vsaravanan@nvidia.com>
bmhowe23
reviewed
Jun 5, 2026
bmhowe23
approved these changes
Jun 5, 2026
bmhowe23
left a comment
Collaborator
There was a problem hiding this comment.
Thanks, @vedika-saravanan.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continuation of #440. Closes #379.
Introduces
cudaq::qec::sparse_binary_matrix(CSC/CSR,uint32_tindices) as the decoder PCM type, so large PCMs no longer have to be materialized as a densecudaqx::tensor. The sparse path is wired through PCM generation, round slicing, decoder construction, and Python bindings.sliding_windowcanonicalizes once and readsH.ptr() / H.indices()directly per window.Breaking changes
const sparse_binary_matrix &H. Densecudaqx::tensor<uint8_t>callers still compile via implicit conversion, but the extension-point template changed — out-of-tree plugins must be recompiled.generate_random_pcmthrows abovek_max_dense_pcm_elements(400M). Usegenerate_random_pcm_sparsefor larger matrices.single_error_lut_examplenow uses columnqErrof H directly instead of XOR-of-other-columns (the old form was only correct when every row of H had even weight). Example plugin only; productionsingle_error_lutwas already correct.Follow-up PRs
Note to reviewers: Quick context on why it's larger than the ~1000-line guideline: it's a foundational type-system change rather than an additive feature. The new sparse_binary_matrix type, the decoder constructor breaking change, all the plugin updates, the sparse generator, and the Python bindings all have to land together for the #379 fix to actually be usable end-to-end. Splitting it would create intermediate states where the breaking change has landed but users still can't construct a >50k-mechanism PCM which would mean shipping the API churn without the benefit.