feat(agent): checkpoint CUDA multicast state - #133
galletas1712 wants to merge 2 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
a553235 to
71fba9e
Compare
71fba9e to
706f5d6
Compare
706f5d6 to
6a857be
Compare
6a857be to
cda1b03
Compare
cda1b03 to
fd8a929
Compare
fd8a929 to
2366c68
Compare
aeba6f2 to
f0d974b
Compare
Track same-node POSIX multicast objects, devices, bindings, mappings, and access state. Tear down multicast topology before native checkpoint and rebuild it from fresh objects after unicast restore. Avoid holding the shared state lock across collective driver calls, use bounded socket timeouts without raising the shim glibc floor, and validate complete groups before resume. Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
f0d974b to
4a5624e
Compare
4a5624e to
5608435
Compare
5608435 to
4a5624e
Compare
Signed-off-by: Schwinn Saereesitthipitak <schwinns@nvidia.com>
|
Superseded by #219 (multicast state); the parallel PREPARE_MULTICAST dispatch from c47baab is covered by a coordinator test in #216. The re-cut stack (#212 → #220) supersedes this PR. Its body is quoted verbatim in the replacement's Origin section, and each review thread here has a row in the replacement's "Review threads carried" table with what was done about it. |
Summary
The generic unicast access-range fix lives in #152. This is the multicast layer of stack #156; follow-on fixes #165, #166, #167, and #174 are stacked above it.
r615 root cause
The deployed workload loads the locally built r615.68
libcudaexactly (SHA-2569edeb49896e9b8d8dfb45dd1c9f3930c137f2d8f358f66594bb146b35437d850). In r615.68, multicast creation retains the public requested size butmemDeviceBlockAllocMulticastObjectRMrounds physical capacity to the 512 MiB FLA page size. FlashInfer consequently creates a smaller logical object and successfully binds/maps the 512 MiB driver-recommended extent.The interposer previously serialized only the smaller creation size. Its coordinator then rejected the valid 512 MiB binding before native CUDA checkpoint with
invalid multicast binding. The fix records successful map/bind ranges as the effective extent while retaining the original properties for multicast object identity and replay. No driver change, FLA disable, FABRIC disable, or device-to-device copy is involved.Validation
FAIL: multicast record uses driver-accepted extentmulticast behavior OKgo test ./api/... ./operator/... ./agent/...topology validate failed: invalid multicast binding17 * 23 = 391)391