Skip to content

build(deps): update cudarc to 0.19.9 - #15055

Open
Aphoh wants to merge 4 commits into
mainfrom
warnold/update-cudarc-0.19.9
Open

Aphoh wants to merge 4 commits into
mainfrom
warnold/update-cudarc-0.19.9

Conversation

@Aphoh

@Aphoh Aphoh commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • update the workspace cudarc dependency from 0.19.8 to 0.19.9
  • update the standalone KVBM binding dependency and all checked-in lockfiles

Validation

  • cargo metadata --locked --no-deps --format-version 1
  • cargo metadata --locked --no-deps --format-version 1 --manifest-path lib/bindings/python/Cargo.toml
  • cargo metadata --locked --no-deps --format-version 1 --manifest-path lib/bindings/kvbm/Cargo.toml
  • cargo check --locked -p dynamo-memory
  • git diff --check

Summary by CodeRabbit

  • Chores
    • Updated the CUDA-related cudarc dependency to version 0.19.9.
    • Kept existing dependency features and optional configuration unchanged.

Signed-off-by: William Arnold <7565007+Aphoh@users.noreply.github.com>
@Aphoh
Aphoh requested review from a team as code owners September 18, 2026 06:56
@copy-pr-bot

copy-pr-bot Bot commented Sep 18, 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 18, 2026

Copy link
Copy Markdown
Contributor

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: f4598e62-8051-4f23-86f5-eeab5f33dc7c

📥 Commits

Reviewing files that changed from the base of the PR and between ecb92bd and c054f10.

⛔ Files ignored due to path filters (3)
  • Cargo.lock is excluded by !**/*.lock
  • lib/bindings/kvbm/Cargo.lock is excluded by !**/*.lock
  • lib/bindings/python/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • Cargo.toml
  • lib/bindings/kvbm/Cargo.toml

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


Walkthrough

The pull request updates cudarc from version 0.19.8 to 0.19.9 in two Cargo manifests. Existing features and optional dependency settings remain unchanged.

Changes

CUDA dependency update

Layer / File(s) Summary
Align cudarc dependency versions
Cargo.toml, lib/bindings/kvbm/Cargo.toml
Both manifests now use cudarc version 0.19.9. Existing features and optional settings remain unchanged.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to c054f

The dependency pins and lockfile are aligned at cudarc 0.19.9, with reported validation checks passing, so the change is mergeable.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description summarizes the dependency updates and lists validation commands, but it does not use the required Overview, Details, or Where should the reviewer start sections. It also omits the requ… Add the required Overview, Details, Where should the reviewer start, and Related Issues sections. In Related Issues, either link the applicable issue or check the confirmation that this PR has no related issue. Preserve the existing change …
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the dependency update from cudarc 0.19.8 to 0.19.9.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description summarizes the dependency updates and lists validation commands, but it does not use the required Overview, Details, or Where should the reviewer start sections. It also omits the required Related Issues section and confirmation that no related issue exists.

Resolution

Add the required Overview, Details, Where should the reviewer start, and Related Issues sections. In Related Issues, either link the applicable issue or check the confirmation that this PR has no related issue. Preserve the existing change summary and validation details in the appropriate sections.

  • Fix all pre-merge checks with AI

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

Signed-off-by: William Arnold <7565007+Aphoh@users.noreply.github.com>
Signed-off-by: William Arnold <7565007+Aphoh@users.noreply.github.com>

@dmitry-tokarev-nv dmitry-tokarev-nv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of a dependency bump, one round

Approved. All three lock files are correct and in sync, and neither version range touches an interface this repository uses. Two P3 notes, neither blocking.

[P3] The Validation list does not prove the lock files are in sync. cargo metadata --locked --no-deps skips dependency resolution, so --locked has nothing left to compare. The form CI runs, without --no-deps, does catch a stale lock. Please drop --no-deps from that claim.

Measured on x86_64 Linux: the two command forms disagree under the same mutation

Toolchain 1.96.1. I reverted only the cudarc version line inside the root Cargo.lock to 0.19.8, and left Cargo.toml at =0.19.9.

tree sha256 of Cargo.lock --no-deps form CI form
head, unchanged 0f7b28f0... exit 0 exit 0
mutated, 1 line 1b8a3aa7... exit 0 exit 101
restored 0f7b28f0... exit 0 exit 0

The mutated checksum differs from the baseline, so the write landed. The restored checksum matches it, so the restore landed. lib/bindings/kvbm/Cargo.lock was the control. Its checksum never moved and its own check stayed green through the mutation.

The CI form failed with this, with the worktree path replaced:

error: cannot update the lock file <worktree>/Cargo.lock because --locked was passed to prevent this

The CI step is cargo metadata --locked --format-version 1 at .github/workflows/pre-merge.yml:508.

The second note is an inline comment on lib/memory/Cargo.toml, about the nixl-sys bump that the title does not mention.

What else I verified, and where verification stopped

Merge base ecb92bd8, head 624976db, four commits, and no head_ref_force_pushed event in the issue timeline. Main gained one commit since the merge base and it touches no file in this diff, so there is no interaction to check.

Lock files:

  • The recorded checksums match the sha256 of the real crates.io tarballs. cudarc-0.19.9.crate is 804764d1... and nixl-sys-1.4.1.crate is 2a38f879.... All three lock files carry the same pair.
  • cargo metadata --locked --format-version 1 exits 0 for Cargo.toml, lib/bindings/python/Cargo.toml and lib/bindings/kvbm/Cargo.toml.
  • The resolver picks cudarc@0.19.9 and nixl-sys@1.4.1. Nothing else moved. The diff changes exactly two package stanzas, two lines each, in each lock file.
  • Both upstream manifests differ from the old version only in the version line, so the unchanged dependencies = [...] blocks are right.
  • lib/runtime/examples/Cargo.lock is the fourth lock file in the tree. It holds neither crate, so leaving it alone is correct.

cudarc 0.19.8 to 0.19.9: the only change to shipped code is in src/driver/safe/core.rs. Three call sites now ask is_managing_stream_synchronization() before they record or wait on an event. Twelve other call sites already asked. The flag is is_in_multi_stream_mode() && is_event_tracking(), and both exist in 0.19.8 with the same defaults, so single stream code stops doing work it did not need. The rest of the diff is the cupti bindings. No .rs or .toml file here names cupti or calls that flag or its setters.

Build, run on x86_64 Linux with the pinned 1.96.1 toolchain:

  • cargo check --locked -p dynamo-memory -j 16 finished in 4.93 seconds and compiled cudarc v0.19.9 and nixl-sys v1.4.1. dynamo-memory is the crate that takes both as hard dependencies.
  • cargo test --locked -p dynamo-memory --no-run -j 16 built both test binaries, and -- --list reports 2 tests.

Verification stopped here. I ran a crate scoped subset, not the whole rust-tests (.) lane, to keep a shared disk free. The workspace lane is green at 624976db. I did not link against a real libnixl build, because nixl-sys 1.3.2 and 1.4.1 have byte identical build.rs, wrapper.cpp and stubs.cpp, which answers the question a link test would have answered.

Comment thread lib/memory/Cargo.toml
anyhow = { workspace = true }
cudarc = { workspace = true }
nixl-sys = { version = "=1.3.2" }
nixl-sys = { version = "=1.4.1" }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] The nixl-sys bump from 1.3.2 to 1.4.1 is not named in the title or the Summary. lib/memory/Cargo.toml:30 and lib/llm/Cargo.toml:155. The bump itself is safe, but a reader of the title will not see it. Please name it in both.

Measured: nixl-sys 1.3.2 and 1.4.1 differ only in tests and version metadata

diff -r over the two crates.io tarballs:

path changed
src/ no change
wrapper.h, wrapper.cpp, stubs.cpp no change
build.rs no change
Cargo.toml version line only
tests/tests.rs, tests/env_guard/ changed, test only

The C API surface that this repository links against does not move. That is why the NIXL C++ SDK refs can stay where they are:

place before after
lib/llm/Cargo.toml:155 =1.3.2 =1.4.1
lib/memory/Cargo.toml:30 =1.3.2 =1.4.1
container/context.yaml:28 frontend v1.3.2 v1.3.2
container/context.yaml:55 dynamo v1.3.2 v1.3.2
container/context.yaml:108 vllm v1.3.2 v1.3.2
container/context.yaml:146 sglang xpu v1.1.0 v1.1.0
container/context.yaml:151 sglang v1.4.0 v1.4.0
container/context.yaml:166 trtllm v1.3.1 v1.3.1

Two reasons the disclosure matters here. The only approval on this pull request sits at ab70fae, which is before the two NIXL commits. The CodeRabbit walkthrough also describes the change as cudarc in two manifests, because !**/*.lock hides the lock files and the two NIXL manifests arrived later.

@dynamo-review-agent dynamo-review-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously reported defects still present:

  • Original discussion: The PR still changes the direct nixl-sys pins from 1.3.2 to 1.4.1 in lib/memory/Cargo.toml and lib/llm/Cargo.toml, but the title and summary describe only the cudarc update, as originally reported.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants