Skip to content

feat(cuinterpose): multicast tracking and reconstruction - #331

Draft
galletas1712 wants to merge 7 commits into
schwinns/cuinterpose-rust-05-host-carrierfrom
schwinns/cuinterpose-rust-06-multicast
Draft

galletas1712 wants to merge 7 commits into
schwinns/cuinterpose-rust-05-host-carrierfrom
schwinns/cuinterpose-rust-06-multicast

Conversation

@galletas1712

@galletas1712 galletas1712 commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Refs #295 (approved).

Track and reconstruct multicast objects using the common resource registry and virtual-handle namespace.

Review boundary

  • memory/multicast.rs owns object lifetime, device membership, bindings, unlocked collective operations, and reconstruction.
  • CUDA handlers keep API-level policy. Pin/call/relock/revalidation stays inside multicast operations; handlers do not coordinate that sequence.
  • This PR adds the multicast resource variant and integrates common release, mapping, import/export, inspection, and checkpoint dispatch.
  • Unicast and multicast share one virtual-handle namespace and allocation-ID registry, while keeping their distinct CUDA metadata.
  • Reconstruction remains ordered by creator, importer, device, and binding barriers. No new discovery or rendezvous messages.

Validation

On the assembled stack, make -C agent/cmd/cuinterpose test passes formatting, strict Clippy, GNU/musl builds, ABI/artifact checks, Rust unit tests, and packaged fake-driver tests for initialization, memory IPC, multicast, checkpoint/restore, reciprocal peer requests, and fork cleanup.

This stack retains source-only intermediate PRs; the complete Rust backend is assembled in #331, with packaging in #333 and the integration harness in #338.

Physical-GPU validation on tx5tk: 4 passed, 0 skipped on two NVIDIA B200s (driver 595.58.03). This exercised multicast/graph reconstruction, shared POSIX memory save/restore and bytes, raw-import refusal, and report parsing. Tested packaged artifacts were SHA-256 matched to the local build. The existing test image supplied Python 3.12.3, PyTorch 2.13.0+cu130, and pytest 9.1.1; this was not a fresh install of the suite's pinned Python environment. This is same-node CUDA checkpoint/restore validation, not full CRIU cross-node or framework qualification.

@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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

@galletas1712
galletas1712 added this pull request to stack #339 September 16, 2026 22:37
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from d5f7a34 to 4146aab Compare September 16, 2026 23:51
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 4146aab to 66bcd41 Compare September 17, 2026 00:15
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 66bcd41 to 1551701 Compare September 17, 2026 07:39
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 1551701 to 02b2cd5 Compare September 17, 2026 08:52
@copy-pr-bot

copy-pr-bot Bot commented Sep 17, 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.

@galletas1712
galletas1712 removed this pull request from stack #339 September 17, 2026 08:53
@galletas1712
galletas1712 added this pull request to stack #343 September 17, 2026 08:53
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 02b2cd5 to 3e9b07d Compare September 17, 2026 09:30
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch 2 times, most recently from 16cac1a to 8f6a50e Compare September 18, 2026 23:34
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 8f6a50e to 5ee784e Compare September 18, 2026 23:48
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 5ee784e to 990d2ae Compare September 19, 2026 02:57
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 990d2ae to ff0c6a5 Compare September 19, 2026 03:01
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from ff0c6a5 to 47dc253 Compare September 19, 2026 06:08
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch 2 times, most recently from 0cac178 to 7b02f5c Compare September 19, 2026 08:06
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 7b02f5c to 2159adc Compare September 19, 2026 08:34
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch 2 times, most recently from 64c61bd to 58d0e3c Compare September 19, 2026 09:55
galletas1712 and others added 7 commits September 19, 2026 03:46
Refs #295.

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
…dlers

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
Collective calls still drop the registry lock. Failures after the CUDA
call poison the process instead of unmapping or releasing unpublished
objects.

Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@galletas1712
galletas1712 force-pushed the schwinns/cuinterpose-rust-06-multicast branch from 58d0e3c to 8e65552 Compare September 19, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant