Repository navigation
Conversation
Signed-off-by: aknvda <anikkulkarni@nvidia.com>
Signed-off-by: aknvda <anikkulkarni@nvidia.com>
Signed-off-by: aknvda <anikkulkarni@nvidia.com>
Signed-off-by: aknvda <anikkulkarni@nvidia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This extends #67 with correlation from remote hint submission through target receipt and caller completion. A successful native write, target receipt, completion of the mixed-tier join, and the caller observing the result remain separate events. Cancellation, quarantine/quiescence, stale routes and unresolved shutdown retain explicit causes without changing ownership or wire contracts.
Add a two-process capture example for real KVCR/NIXL DRAM or VRAM transfers, a SQLite payload decoder, and profiling/schema documentation. The decoder validates request context, worker joins and ordering, and rejects missing or mismatched context streams. One KVCR domain and bounded event names use fresh structured payloads; unavailable session/parent IDs and framework utilization stay unknown.
This draft is stacked on
aniket/nvtx-instrumentation(#67). The unrelated Guard test allocation fix remains in #68.Validation:
Measured delivery overhead:
Latency is the median of five run means, measured from deliver dispatch through
caller completion. Each run uses 20 warmups and 200 measured deliveries of
16 blocks × 4 KiB between two real KVCR/NIXL processes. Thirty runs cover off,
low and medium with and without Nsight: 6,000 measured deliveries, plus 600
warmups. Level order rotates by repetition; runs are sequential. Every run
verified received bytes and 220 pin requests/releases, with zero cancellations.
Nsight uses NVTX/CUDA tracing with CPU sampling/context-switch collection off.
Hint construction, byte verification, process startup and teardown are outside
the timed delivery interval. This is a DRAM microbenchmark, not model throughput
or a GPU/RDMA performance claim. The ranges overlap; the apparent medium/low
ordering is not evidence that medium is cheaper. The successful path exercises
few medium-only events. No production overhead acceptance threshold was supplied.
Median delivery rates and raw Nsight report sizes across the five runs:
The delivery rate is the reciprocal of each run’s mean timed delivery latency;
it excludes setup/verification and is not full application throughput. Report
size includes the warmups and Nsight/NIXL data as well as KVCR payloads.
Review boundaries: full Dynamo remote reuse still needs a compatible hint carrier between the producer and adapter. Session/parent correlation and framework utilization need explicit integration seams. Full public-fetch fan-out and other KVCR operations are outside this contribution. Human schema/capture approval and an overhead threshold remain open.
Known minor: when the source selects zero descriptors it reports PARTIAL with an explicit zero count while the target/caller reports FAILED; transfer behavior and ownership are unchanged. Use at least two blocks for the capture example's
partialscenario; a one-block partial scenario produces zero successes and does not match the decoder's PARTIAL expectation.