Conversation
Connor-XY
force-pushed
the
codex/fix-nvfp4-rng-lifetime
branch
from
September 17, 2026 10:55
8b921dc to
17c95e2
Compare
Connor-XY
marked this pull request as ready for review
September 18, 2026 19:41
Contributor
|
Signed-off-by: Yan Xu <yxu1@nvidia.com>
Signed-off-by: Yan Xu <yxu1@nvidia.com>
for more information, see https://pre-commit.ci
Connor-XY
force-pushed
the
codex/fix-nvfp4-rng-lifetime
branch
from
September 21, 2026 21:06
5dee0b2 to
879772e
Compare
This branch has not been deployed
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.
NVFP4 stochastic quantization stores non-owning TE wrappers for temporary rowwise and columnwise RNG tensors. Their ATen owners went out of scope before quantization dispatch, allowing allocator reuse to change seeded output; disabling caching exposed invalid global-memory reads.
Keep both owners alive through dispatch. The regression restores the real CUDA RNG, compares logical packed outputs/scales across ordinary and fragmented allocation patterns, and verifies seed sensitivity. Comments now explain the load-bearing deterministic fill and alternating-free anchors. The 128-column fused shape is parity coverage on SM100/SM110; allocator-based detection is heuristic. The independent no-caching Compute Sanitizer check remains essential evidence.
Validation and scope
Current head:
e1cc25658e62dd392c5e059cdb4a3284fc133376. This follow-up changes comments/docstrings only; executable Python AST after removing docstrings is identical to the previously validated test, and the C++ ownership fix is unchanged. No new TE wheel/GPU acceptance run is claimed for the comment-only commit.At previous head
17c95e206159ec476d88241343a6fa29a21e08d4, exact-source GB200 acceptance built the full PyTorch wheel and CUDA core. Independent verification checked all 10,794 tracked source files, installed binary identities and per-rank artifacts:eba245d420ec822117445f253d4cae6ab7380c65passed 31 model and 83 kernel pytest cases per rank. Selected reports were D31/N0/U0 and D49/N0/U0; all six strict author reference/sensitivity requirements passed with actual dependency identities.Separate pinned-release controls at TE
27486e03cfc1fa41f6932dcecdc47c71c47eac3eestablished causality: both installed and rebuilt-unmodified controls failed three of four new cases while the ownership patch passed all four. No-caching sanitizer controls reported 136/69 errors for unpatched variants and zero with the patch. The 128-column parity case is not claimed as an old-binary regression failure.Raw validation data remains on the GPU hosts. Full TE required GPU CI and maintainer review remain pending. A shared RNG owner/view abstraction across other call sites is a separate follow-up; this PR stays focused on ownership and its regression.