Skip to content

Fix SVR zero-delta kernel cache state - #8605

Open
sylvesterkaczmarek wants to merge 2 commits into
NVIDIA:mainfrom
sylvesterkaczmarek:bug-svr-zero-delta-cache-state
Open

Fix SVR zero-delta kernel cache state#8605
sylvesterkaczmarek wants to merge 2 commits into
NVIDIA:mainfrom
sylvesterkaczmarek:bug-svr-zero-delta-cache-state

Conversation

@sylvesterkaczmarek

@sylvesterkaczmarek sylvesterkaczmarek commented Sep 10, 2026

Copy link
Copy Markdown

Closes #8579

Summary

  • allow a kernel-cache working set to be replaced when no full-tile batching is in progress
  • retain the guard against reinitialization during an incomplete batching step
  • add regression coverage for the reported degree-10 polynomial SVR case

Validation

  • python3 -m py_compile python/cuml/tests/test_svm.py
  • git diff --check

Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
@copy-pr-bot

copy-pr-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 925e2b08-6220-460c-8ce5-5aa169fa1ad3

📥 Commits

Reviewing files that changed from the base of the PR and between 5cc7111 and d0a4e42.

📒 Files selected for processing (2)
  • cpp/src/svm/kernelcache.cuh
  • python/cuml/tests/test_svm.py

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Bug Fixes

    • Improved SVR working-set reinitialization after solves that skip full-tile batching.
    • Prevented valid subsequent solves from being rejected due to a prior initialized state.
  • Tests

    • Added coverage for SVR polynomial kernels with degree 10, including float32 prediction results.

Walkthrough

The change permits working-set reinitialization after completed batching and adds an SVR regression test for degree-10 polynomial kernels. The test verifies that fitting completes and produces a finite one-dimensional prediction.

Changes

SVR working-set handling

Layer / File(s) Summary
Working-set reinitialization and regression coverage
cpp/src/svm/kernelcache.cuh, python/cuml/tests/test_svm.py
InitWorkingSet no longer rejects reinitialization after WS_INITIALIZED; it still rejects incomplete batching. The regression test covers degree-10 polynomial SVR fitting and checks prediction shape and finiteness.

Estimated code review effort: 2 (Simple) | ~10 minutes

Severity of issue fixed: Medium

Suggested reviewers: viclafargue, bdice

Merge Risk: ⚪ Minimal · up to 55bca

This restores degree-10 polynomial SVR fitting while preserving protection against incomplete batching, with regression coverage confirming a finite prediction. The change is ready to merge.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 1 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes address issue #8579 by allowing working-set replacement when full-tile batching is not in progress and by adding regression coverage for the degree-10 polynomial SVR case. The incomplete-b…
Out of Scope Changes check ✅ Passed The changes are limited to the kernel-cache state fix and its targeted SVR regression test. No unrelated code changes are identified.
Title check ✅ Passed The title clearly identifies the main change: fixing the SVR zero-delta kernel-cache state issue.
Description check ✅ Passed The description directly explains the kernel-cache change, retained guard, regression test, and validation steps.
Full details: Docstring Coverage

Explanation

Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 1 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
@csadorf

csadorf commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

@sylvesterkaczmarek please avoid merging upstream main unless it is absolutely necessary to preserve CI resources. Thank you.

@sylvesterkaczmarek

Copy link
Copy Markdown
Author

Understood. I will avoid merging upstream main into cuML PR branches unless it is necessary for conflict resolution or specifically requested for validation.

@sylvesterkaczmarek

sylvesterkaczmarek commented Sep 12, 2026

Copy link
Copy Markdown
Author

@csadorf The Label Checker is currently failing because the PR has no changelog category/breaking classification. I do not have permission to add repository labels. Could a maintainer please add bug and non-breaking? I have not merged main, per your request to avoid unnecessary CI churn. Once the labels are set, could you also review the current head when convenient?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CUDA/C++ Cython / Python Cython or Python issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] SVR with a degree=10 polynomial kernel fails with an internal working-set state error

3 participants