Skip to content

Fix persistent CAGRA regressions#1800

Merged
rapids-bot[bot] merged 5 commits into
mainfrom
fix-persistent-cagra
Feb 18, 2026
Merged

Fix persistent CAGRA regressions#1800
rapids-bot[bot] merged 5 commits into
mainfrom
fix-persistent-cagra

Conversation

@achirkin

@achirkin achirkin commented Feb 12, 2026

Copy link
Copy Markdown
Contributor

Fix peristent cagra kernel bugs:

  1. Wrong arguments passed to the persistent kernel Convert non-type template parameters to runtime parameters in CAGRA search to cut binary size #1498 . Didn't catch this at compile time, because all affected parameters are of the same type. Never crashed in tests because of a lucky parameter combinations. But did crash in the example code.
  2. Some changes in RMM over multiple versions made the pool allocator a bad choice for high-concurrency code, leading to the non-persistent async kernel call loop swap the CPU and hang forever.
  3. Improved the speed of both implementations in the async loop by reducing the thread-launch overhead. Before: exactly work_size were spawned within a loop, competely dominating the runtime. After: n_threads are spawned and run an inner work loop over their shares of the input data. n_threads here is optimal for each implementation (persistent kernel requiring many more threads). The launch overheads are still significant, but do not overwhelm the useful work times.

@achirkin achirkin self-assigned this Feb 12, 2026
@achirkin achirkin added bug Something isn't working non-breaking Introduces a non-breaking change labels Feb 12, 2026
@achirkin
achirkin requested a review from a team as a code owner February 12, 2026 16:21
@achirkin achirkin moved this to In Progress in Unstructured Data Processing Feb 12, 2026
@divyegala divyegala mentioned this pull request Feb 16, 2026
8 tasks
@cjnolet

cjnolet commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

/ok to test 1e45d9f

@achirkin

Copy link
Copy Markdown
Contributor Author

/merge

@rapids-bot
rapids-bot Bot merged commit cb0aa04 into main Feb 18, 2026
149 of 151 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in Unstructured Data Processing Feb 18, 2026
rapids-bot Bot pushed a commit that referenced this pull request May 9, 2026
CUDA 13 binary size reduction from 282 MB to 257 MB (-8.86%).

Benchmark:
<img width="1137" height="776" alt="image" src="https://github.com/user-attachments/assets/81b4f25a-c999-423d-a2c9-3e45566904bf" />

Apply updates from 
CAGRA related PRs:

- [x] #1800
- [ ] #1781
- [x] #1780
- [x] #1771
- [x] #1834
- [x] #1851
- [x] #1831

JIT related PRs:
- [x] #1812

Authors:
  - Divye Gala (https://github.com/divyegala)
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Dante Gama Dessavre (https://github.com/dantegd)
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Dante Gama Dessavre (https://github.com/dantegd)

URL: #1807
landrumb pushed a commit to landrumb/cuvs that referenced this pull request Jul 8, 2026
Fix peristent cagra kernel bugs:

1. Wrong arguments passed to the persistent kernel NVIDIA#1498 . Didn't catch this at compile time, because all affected parameters are of the same type. Never crashed in tests because of a lucky parameter combinations. But did crash in the example code.
2. Some changes in RMM over multiple versions made the pool allocator a bad choice for high-concurrency code, leading to the non-persistent async kernel call loop swap the CPU and hang forever.
3. Improved the speed of both implementations in the async loop by reducing the thread-launch overhead. Before: exactly `work_size` were spawned within a loop, competely dominating the runtime. After: `n_threads` are spawned and run an inner work loop over their shares of the input data. `n_threads` here is optimal for each implementation (persistent kernel requiring many more threads). The launch overheads are still significant, but do not overwhelm the useful work times.

Authors:
  - Artem M. Chirkin (https://github.com/achirkin)

Approvers:
  - Corey J. Nolet (https://github.com/cjnolet)

URL: NVIDIA#1800
landrumb pushed a commit to landrumb/cuvs that referenced this pull request Jul 8, 2026
CUDA 13 binary size reduction from 282 MB to 257 MB (-8.86%).

Benchmark:
<img width="1137" height="776" alt="image" src="https://github.com/user-attachments/assets/81b4f25a-c999-423d-a2c9-3e45566904bf" />

Apply updates from 
CAGRA related PRs:

- [x] NVIDIA#1800
- [ ] NVIDIA#1781
- [x] NVIDIA#1780
- [x] NVIDIA#1771
- [x] NVIDIA#1834
- [x] NVIDIA#1851
- [x] NVIDIA#1831

JIT related PRs:
- [x] NVIDIA#1812

Authors:
  - Divye Gala (https://github.com/divyegala)
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Dante Gama Dessavre (https://github.com/dantegd)
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Dante Gama Dessavre (https://github.com/dantegd)

URL: NVIDIA#1807
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working non-breaking Introduces a non-breaking change

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants