Repository navigation
Conversation
Signed-off-by: Frank Lai <frlai@nvidia.com>
Signed-off-by: Frank Lai <frlai@nvidia.com>
Signed-off-by: Frank Lai <frlai@nvidia.com>
Resolve the tracing import conflict using direct proxy storage and the ATen rewrite module from the target branch. Signed-off-by: Frank Lai <frlai@nvidia.com>
frlai
merged commit Oct 29, 2026
e7a5476
into
feature/view-mutation-functionalization
5 checks passed
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.
PR #33 functionalizes recorded view mutations through PyTorch, but traced values still carry shared
ProxyViewcells. Store FX proxies directly on carriers and removeProxyView, nested cell traversal, shared/new-view binding helpers, and the dualproxy=/view=factory interface.Numerical writes retain stable FX tensor handles and record the existing mutation operations for functionalization. Input redeclarations use a small per-node binding table; retained aliases attach to declarations after a capture reset. Independent conversion copies, per-carrier ports, and weak whole-allocation Warp metadata retain their existing responsibilities.
New Warp outputs use a provisional FX Proxy shared directly by their actual aliases. Segment close resolves that proxy's producer once, without recording a tensor allocation or copy. Weak storage metadata captured before close is published on the eventual producer. Existing-storage writes still go through functionalization; finished nodes continue eager execution without creating pending producers.
Stacked on #33, targeting
feature/view-mutation-functionalizationat914d27a(including PR #44). Implementation and experiments use the separateleapp-direct-proxyworktree.Validation and branch update:
914d27apassed 1,062 tests / 1,800 subtests, including examples and visualization, on Python 3.12 / Torch 2.14.0 / released Warp 1.18 / RTX 4090 with matching native ONNX/PT2 adapters.test_retained_alias_reattaches_after_declaration_reentryandtest_new_warp_output_publishes_without_graph_allocation_or_copy. Production code is identical to the full-suite-tested integration. All pre-existing tests from the target branch remain.1bf9364: 1,052 tests / 1,800 subtests, plus 26 additional ONNX/PT2 Warp allocation cases / 104 independently varied replay trials, weak-storage lifetime/cleanup and missing-covering-root guards, and five minimum-Torch allocation-metadata checks. These additional matrices were not rerun for the target-branch integration; historical full-version and TensorRT matrices from fix: preserve mutations through tensor views #33 are not claimed for this revision.For the 65,536-element new-Warp-output probe, the final candidate's normalized FX and saved PT2 graph text are identical to baseline, with six normalized nodes. Warm native PT2 replay measured 44.25 vs 44.57 µs, with the same 524,288-byte additional Torch allocator peak. Two-pass capture medians were 144.20 vs 146.19 ms. These are local measurements, not general performance guarantees; publication introduces no additional replay operations.
Against the original
d46edb7baseline, the direct-proxy refactor removed 160 production physical lines, 31 Python AST statements, and six conditional/while branches. No replacement proxy-cell class or general view tree is introduced.Published revision:
158979717e3f6f529885055670ef297ced71f4fe; exact source tree:57025d9f33e0c9a1cbc5a97081d457d126cd4e4c. The branch includes the reviewed PR #44 import resolution and the agreed test cleanup.