8000 [pytree] Add public pytree module `torch.utils.pytree` by XuehaiPan · Pull Request #137400 · pytorch/pytorch · GitHub
[go: up one dir, main page]

Skip to content

[pytree] Add public pytree module torch.utils.pytree #137400

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 158 commits into
base: gh/XuehaiPan/179/base
Choose a base branch
from

Conversation

XuehaiPan
Copy link
Collaborator
@XuehaiPan XuehaiPan commented Oct 5, 2024

Stack from ghstack (oldest at bottom):

Populate APIs from torch.utils._pytree (default) or torch.utils._cxx_pytree to a new public module torch.utils.pytree. There is an environment variable PYTORCH_USE_CXX_PYTREE (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using torch.utils.pytree.

Resolves #65761

cc @zou3519 @voznesenskym @penguinwu @EikanWang @jgong5 @Guobing-Chen @XiaobingSuper @zhuhaozhe @blzheng @wenzhe-nrv @jiayisunx @chenyang78 @kadeng @chauhang @amjames @rec

[ghstack-poisoned]
Copy link
pytorch-bot bot commented Oct 5, 2024

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/137400

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit 087c7b2 with merge base cb5f31a (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

XuehaiPan added a commit that referenced this pull request Oct 5, 2024
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: ea0d2b6
Pull Request resolved: #137400
@XuehaiPan XuehaiPan self-assigned this Oct 5, 2024
@XuehaiPan XuehaiPan added ciflow/trunk Trigger trunk jobs on your pull request release notes: releng release notes category module: pytree release notes: dynamo labels Oct 5, 2024
@XuehaiPan XuehaiPan linked an issue Oct 5, 2024 that may be closed by this pull request
[ghstack-poisoned]
XuehaiPan added a commit that referenced this pull request Oct 5, 2024
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 656e242
Pull Request resolved: #137400
[ghstack-poisoned]
XuehaiPan added a commit that referenced this pull request Oct 5, 2024
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: db25160
Pull Request resolved: #137400
[ghstack-poisoned]
XuehaiPan added a commit that referenced this pull request Oct 5, 2024
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 65bf5dc
Pull Request resolved: #137400
[ghstack-poisoned]
XuehaiPan added a commit that referenced this pull request Oct 5, 2024
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 2718a77
Pull Request resolved: #137400
[ghstack-poisoned]
XuehaiPan added a commit that referenced this pull request Oct 5, 2024
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 57d7a7b
Pull Request resolved: #137400
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request Apr 26, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 000d799
Pull Request resolved: pytorch#137400
__all__ = [
"PyTreeSpec",
"register_pytree_node",
"tree_flatten",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what about tree_flatten_with_spec and register_dataclass?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if they are exposed APIs or only used internally. If it should be exposed and stabilized in torch.utils.pytree, I can add it in a follow-up.

[ghstack-poisoned]
@XuehaiPan XuehaiPan requested a review from angelayi May 1, 2025 17:41
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 1, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 42d47d5
Pull Request resolved: pytorch#137400
@@ -11,6 +11,7 @@
data as data,
deterministic as deterministic,
hooks as hooks,
pytree as pytree,
Copy link
Contributor
@zou3519 zou3519 May 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we are offering an API to swap between python and C++ pytree in this PR, for this PR, I would like us to have finished making Python treespec and C++ treespec interoperable.

That is, one should be able to pass a treespec created from Python pytree to C++-pytree and vice versa. Otherwise there will be pain switching between the two APIs.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 1, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 4778e60
Pull Request resolved: pytorch#137400
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 1, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 684f8c3
Pull Request resolved: pytorch#137400
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 2, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 684f8c3
Pull Request resolved: pytorch#137400
XuehaiPan added 2 commits May 3, 2025 00:40
[ghstack-poisoned]
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 2, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 5d2275d
Pull Request resolved: pytorch#137400
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 2, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 952db83
Pull Request resolved: pytorch#137400
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 2, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 7db73f6
Pull Request resolved: pytorch#137400
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 3, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 661af0f
Pull Request resolved: pytorch#137400
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 5, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 661af0f
Pull Request resolved: pytorch#137400
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 8, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 0ead633
Pull Request resolved: pytorch#137400
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 11, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: 0ead633
Pull Request resolved: pytorch#137400
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 14, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: e075efa
Pull Request resolved: pytorch#137400
[ghstack-poisoned]
XuehaiPan added a commit to XuehaiPan/pytorch that referenced this pull request May 16, 2025
Populate APIs from `torch.utils._pytree` (default) or `torch.utils._cxx_pytree` to a new public module `torch.utils.pytree`. There is a environment varaible `PYTORCH_USE_CXX_PYTREE` (disabled by default) to control this.

Since the CXX pytree is now Dynamo traceable, the users can change the underlining pytree implementation by flipping the environment variable while using `torch.utils.pytree`.

ghstack-source-id: f21d8ee
Pull Request resolved: pytorch#137400
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

torch.utils._pytree -> stable
4 participants
0