arkadip-maitra
1a34ff4e04
Fixing get_local_rank() variable missing when compiled ( #165432 )
...
Fixes #165215
Pull Request resolved: https://github.com/pytorch/pytorch/pull/165432
Approved by: https://github.com/bdhirsh
2025-10-16 18:20:34 +00:00
Tugsbayasgalan Manlaibaatar
afeec56a5a
Fix replacement reconstruct ( #164937 )
...
If we return Dtensor, the object is created via fx graph call so we never needed to reconstruct them. But if there is side effect, we do need to reconstruct it.
Differential Revision: [D84159000](https://our.internmc.facebook.com/intern/diff/D84159000 )
Pull Request resolved: https://github.com/pytorch/pytorch/pull/164937
Approved by: https://github.com/StrongerXi
2025-10-09 15:31:23 +00:00
PyTorch MergeBot
df640df68a
Revert "Reapply "C++-accessible Placements via pybind11 ( #163030 )" ( #164519 )"
...
This reverts commit 8c0bc879b9 .
Reverted https://github.com/pytorch/pytorch/pull/164519 on behalf of https://github.com/malfet due to Still breaks internal workflows ([comment](https://github.com/pytorch/pytorch/pull/164519#issuecomment-3378469432 ))
2025-10-07 19:46:17 +00:00
PyTorch MergeBot
afee8062d5
Revert "Fix mesh.get_local_rank when it is > 1d ( #164473 )"
...
This reverts commit 83d71dfb2f .
Reverted https://github.com/pytorch/pytorch/pull/164473 on behalf of https://github.com/izaitsevfb due to appears to be causing vision_maskrcnn regression ([comment](https://github.com/pytorch/pytorch/pull/164473#issuecomment-3374738997 ))
2025-10-07 00:37:41 +00:00
Scott Wolchok
8c0bc879b9
Reapply "C++-accessible Placements via pybind11 ( #163030 )" ( #164519 )
...
This makes Placement data representation available in C++ via pybind11. Reapply with fix for internal errors.
D83788896
Pull Request resolved: https://github.com/pytorch/pytorch/pull/164519
Approved by: https://github.com/Skylion007 , https://github.com/ezyang
2025-10-06 23:19:14 +00:00
Francisco Massa
83d71dfb2f
Fix mesh.get_local_rank when it is > 1d ( #164473 )
...
Previously, we would not take the arguments passed by get_local_rank into account. This means that we wouldn't be able to trace this call if we had a device_mesh > 1d
Pull Request resolved: https://github.com/pytorch/pytorch/pull/164473
Approved by: https://github.com/xmfan , https://github.com/Skylion007
2025-10-04 11:27:55 +00:00
PyTorch MergeBot
f6f7676756
Revert "C++-accessible Placements via pybind11 ( #163030 )"
...
This reverts commit 3e03deab6f .
Reverted https://github.com/pytorch/pytorch/pull/163030 on behalf of https://github.com/swolchok due to doesn't pass pyre ([comment](https://github.com/pytorch/pytorch/pull/163030#issuecomment-3362450379 ))
2025-10-02 18:25:24 +00:00
Scott Wolchok
3e03deab6f
C++-accessible Placements via pybind11 ( #163030 )
...
This makes Placement data representation available in C++ via pybind11.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/163030
Approved by: https://github.com/ezyang
2025-10-02 02:38:23 +00:00
Yuanyuan Chen
cc8b14d09a
[2/N] Simplify "in" operation for containers of a single item ( #164323 )
...
These issues are detected by ruff [FURB171](https://docs.astral.sh/ruff/rules/single-item-membership-test/#single-item-membership-test-furb171 ).
Pull Request resolved: https://github.com/pytorch/pytorch/pull/164323
Approved by: https://github.com/justinchuby , https://github.com/Skylion007
2025-10-01 05:39:11 +00:00
Animesh Jain
5274753873
[dynamo][device_mesh] Support mesh_dim_names ( #164200 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/164200
Approved by: https://github.com/SherlockNoMad , https://github.com/jansel
2025-09-30 07:16:28 +00:00
Simon Fan
72e4786d16
[dynamo][dist] trace DeviceMesh's get_local_rank and get_rank as constants ( #160805 )
...
Used in https://github.com/pytorch/torchtitan/pull/1555
Pull Request resolved: https://github.com/pytorch/pytorch/pull/160805
Approved by: https://github.com/StrongerXi , https://github.com/mlazos
2025-08-20 01:12:24 +00:00
Xuehai Pan
1b2146fc6d
[BE][4/16] fix typos in torch/ (torch/_dynamo/) ( #156314 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156314
Approved by: https://github.com/jingsh
ghstack dependencies: #156313
2025-06-23 02:57:19 +00:00
PyTorch MergeBot
5b427c92a8
Revert "[BE][4/16] fix typos in torch/ (torch/_dynamo/) ( #156314 )"
...
This reverts commit ead741c5fb .
Reverted https://github.com/pytorch/pytorch/pull/156314 on behalf of https://github.com/atalman due to export/test_torchbind.py::TestCompileTorchbind::test_compile_error_on_input_aliasing_contents_backend_aot_eager [GH job link](https://github.com/pytorch/pytorch/actions/runs/15804799771/job/44548489912 ) [HUD commit link](c95f7fa874 ) ([comment](https://github.com/pytorch/pytorch/pull/156313#issuecomment-2994171213 ))
2025-06-22 12:31:57 +00:00
Xuehai Pan
ead741c5fb
[BE][4/16] fix typos in torch/ (torch/_dynamo/) ( #156314 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/156314
Approved by: https://github.com/jingsh
ghstack dependencies: #156313
2025-06-22 08:43:18 +00:00
Yanbo Liang
9efa9c73f6
[Dyamo] Replace unimplemented with unimplemented_v2 for variables/distributed ( #148500 )
...
Fixes #ISSUE_NUMBER
Pull Request resolved: https://github.com/pytorch/pytorch/pull/148500
Approved by: https://github.com/williamwen42
2025-03-05 20:41:43 +00:00
dan_the_3rd
d1abde11ec
[dynamo] Support passing arguments to DeviceMesh.get_group ( #147741 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/147741
Approved by: https://github.com/StrongerXi
2025-03-04 21:19:47 +00:00
Raymond Li
21c2565f35
Document dynamo ( #146736 )
...
Many files in dynamo are currently lacking file/module-level documentation, which makes it hard to know what they do at a glance and without digging into the code. This fixes that.
Note: documentation was AI-generated and could be incorrect, please review carefully.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/146736
Approved by: https://github.com/jansel , https://github.com/StrongerXi , https://github.com/anijain2305 , https://github.com/zou3519
2025-02-13 00:02:21 +00:00
Aaron Orenstein
a79100ab11
PEP585 update - torch/_dynamo ( #145105 )
...
See #145101 for details.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/145105
Approved by: https://github.com/bobrenjc93
2025-01-18 20:47:11 +00:00
Ryan Guo
3141e038f0
[dynamo] Fix VariableBuilder._wrap on frozenset and enforce invariants on ConstantVariable ( #141504 )
...
Prior to this patch, we are using `ConstantVariable.create` to create VT
for frozenset objects, and intended yet failed to predicate that on all
itmes being literals (see https://github.com/pytorch/pytorch/pull/140984#discussion_r1847393736 ).
The code was from https://github.com/pytorch/torchdynamo/commit/7c03434 and
the original goal was to help DBR quantization, but as the new test in
this patch shows, it could lead to silent incorrectness.
Upon a closer look, this exposes some subtleties in how Dynamo handles
`ConstantVariable` and `LOAD_CONST`, so this patch both fixes the
aforementioned issue and documents, enforces, and makes explicit the
invariants around `ConstantVariable` and `LOAD_CONST` -- only immutable
objects are supported.
Specifically, this patch:
1. refine the checks for wrapping a `frozenset` object, document why we
can't just wrap its items directly due to lack of `Sourcec` for set
items, and use a safe workaround (`SourcelessBuilder`) to ensure
soundness while keeping the DBR quantization support.
2. Adds more types to `common_constant_types`, thereby making
`ConstantVariable.is_base_literal` more lenient, and strictly checks
this property in the constructor of `ConstantVariable`.
3. Change relevant uses of `create_instruction("LOAD_CONST", ...)` to
`create_load_const` which checks `is_safe_constant`, and makes
developer overrides explicit by using `create_load_const_unchecked`
when needed.
4. In a few places, use more specific `VariableTracker`, e.g.,
`TypingVariable` rather than `ConstantVariable`, and
`FrozensetVariable` rather than `SetVariable`.
(2) and (3) are mainly to future-proof Dynamo against bugs like (1).
Pull Request resolved: https://github.com/pytorch/pytorch/pull/141504
Approved by: https://github.com/jansel
2024-11-27 21:58:35 +00:00
Yanbo Liang
5f004f455a
[Dynamo][Distributed] Fix ProcessGroup getattr ( #141638 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/141638
Approved by: https://github.com/williamwen42 , https://github.com/jansel
2024-11-27 21:42:33 +00:00
PyTorch MergeBot
b6b9596607
Revert "[dynamo] Fix constant propagation in builtins and UserClasses ( #131354 )"
...
This reverts commit 44257c063e .
Reverted https://github.com/pytorch/pytorch/pull/131354 on behalf of https://github.com/huydhn due to Sorry for reverting your change, but it seems to break some internal tests ([comment](https://github.com/pytorch/pytorch/pull/131354#issuecomment-2451050605 ))
2024-11-01 00:13:20 +00:00
Tom Ritchford
44257c063e
[dynamo] Fix constant propagation in builtins and UserClasses ( #131354 )
...
* Fixes https://github.com/pytorch/pytorch/issues/118675
* Replaces https://github.com/pytorch/pytorch/pull/118994
Pull Request resolved: https://github.com/pytorch/pytorch/pull/131354
Approved by: https://github.com/jansel , https://github.com/anijain2305
2024-10-30 12:47:20 +00:00
Simon Fan
fd9f4e6770
Back out "[compiled autograd] tls access helpers ( #138061 )" and Back out "[compiled autograd] Compiled autograd configs in TLS ( #137821 )" ( #139086 )
...
Summary:
Original commit changeset: 9bf80c1492d7
Original Phabricator Diff: D64796226
Original commit changeset: aa1d9ef8f6e6
Original Phabricator Diff: D64796212
Differential Revision: D65072644
Pull Request resolved: https://github.com/pytorch/pytorch/pull/139086
Approved by: https://github.com/malfet
2024-10-28 23:37:05 +00:00
Simon Fan
5a13282c75
[compiled autograd] tls access helpers ( #138061 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/138061
Approved by: https://github.com/yf225
ghstack dependencies: #137953 , #137821
2024-10-22 08:03:52 +00:00
Simon Fan
49fa437097
[compiled autograd] Compiled autograd configs in TLS ( #137821 )
...
Multithreaded doesn't work yet, this adds python side TLS only for the python side state
Pull Request resolved: https://github.com/pytorch/pytorch/pull/137821
Approved by: https://github.com/jansel , https://github.com/yf225
ghstack dependencies: #137953
2024-10-22 08:03:52 +00:00
PyTorch MergeBot
361f42bc42
Revert "[compiled autograd] Compiled autograd configs in TLS ( #137821 )"
...
This reverts commit 9aba0b91c8 .
Reverted https://github.com/pytorch/pytorch/pull/137821 on behalf of https://github.com/wdvr due to Reverting this for now, it is failing test_public_bindings in trunk ([comment](https://github.com/pytorch/pytorch/pull/137821#issuecomment-2417351788 ))
2024-10-16 16:38:29 +00:00
Simon Fan
9aba0b91c8
[compiled autograd] Compiled autograd configs in TLS ( #137821 )
...
Multithreaded doesn't work yet, this adds python side TLS only for the python side state
Pull Request resolved: https://github.com/pytorch/pytorch/pull/137821
Approved by: https://github.com/jansel , https://github.com/yf225
ghstack dependencies: #137953
2024-10-16 09:28:32 +00:00
PyTorch MergeBot
9223c16208
Revert "Fix constant propagation in builtins and UserClasses ( #131354 )"
...
This reverts commit dd4a51b39a .
Reverted https://github.com/pytorch/pytorch/pull/131354 on behalf of https://github.com/atalman due to Breaks torchrec tests ([comment](https://github.com/pytorch/pytorch/pull/131354#issuecomment-2375417145 ))
2024-09-25 23:01:03 +00:00
Tom Ritchford
dd4a51b39a
Fix constant propagation in builtins and UserClasses ( #131354 )
...
* Fixes https://github.com/pytorch/pytorch/issues/118675
* Replaces https://github.com/pytorch/pytorch/pull/118994
Pull Request resolved: https://github.com/pytorch/pytorch/pull/131354
Approved by: https://github.com/jansel , https://github.com/anijain2305
2024-09-25 13:03:40 +00:00
Wanchao Liang
cfc227ad43
[reland][dtensor] move DTensor to public namespace ( #134203 )
...
reland of https://github.com/pytorch/pytorch/pull/133113
I have to create a new PR because the previous reverted PR could not either be rebased, or imported successfully :(
----
Moving DTensor to be in the public namespace, to formally add the documentation page that includes all the public APIs. This includes:
* many path renames and path import fixes
* a dedicated doc page without too much content yet (adding in the next PRs)
* To preserve the BC for users still using the torch.distributed._tensor, I added a shim script to redirect old path calls to the new module
The BC preserving is evidented by the fact that all DTensor tests are still working without changing the public imports. So it's safe to land the changes
Pull Request resolved: https://github.com/pytorch/pytorch/pull/134203
Approved by: https://github.com/tianyu-l
2024-09-08 17:08:40 +00:00
PyTorch MergeBot
35f36363ec
Revert "[dtensor] move DTensor to public namespace ( #133113 )"
...
This reverts commit 2ee6b97464 .
Reverted https://github.com/pytorch/pytorch/pull/133113 on behalf of https://github.com/wanchaol due to looks like it break some internal type imports ([comment](https://github.com/pytorch/pytorch/pull/133113#issuecomment-2295670911 ))
2024-08-19 05:00:19 +00:00
Wanchao Liang
2ee6b97464
[dtensor] move DTensor to public namespace ( #133113 )
...
Moving DTensor to be in the public namespace, to formally add the
documentation page that includes all the public APIs. This includes:
* many path renames and path import fixes
* a dedicated doc page without too much content yet (adding in the next
PRs)
* To preserve the BC for users still using the `torch.distributed._tensor`,
I added a shim script to redirect old path calls to the new module
The BC preserving is evidented by the fact that all DTensor tests are still
working without changing the public imports. So it's safe to land the
changes
Pull Request resolved: https://github.com/pytorch/pytorch/pull/133113
Approved by: https://github.com/XilunWu
ghstack dependencies: #133305 , #133306
2024-08-17 05:09:52 +00:00
Huanyu He
de48d54042
[TorchRec] Add Support for FakeProcessGroup ( #133039 )
...
Summary:
# context
* use FakeProcessGroup to mimic the multi-process tests
* can use `_test_compile_fake_pg_fn` as the single-process VB compile test
```
from torchrec.distributed.tests.test_pt2_multiprocess import _test_compile_fake_pg_fn
_test_compile_fake_pg_fn(
rank=0,
world_size=2,
)
```
reference: D59637444
Test Plan:
# run test
* run command and results: P1519228952, [tlparse](https://interncache-all.fbcdn.net/manifold/tlparse_reports/tree/logs/.tmpwMCK1E/index.html )
```
TORCH_TRACE=/var/tmp/tt TORCH_SHOW_CPP_STACKTRACES=1 TORCH_LOGS="+all" buck2 run fbcode//mode/opt fbcode//torchrec/distributed/tests:test_pt2_multiprocess
```
Differential Revision: D56124045
Pull Request resolved: https://github.com/pytorch/pytorch/pull/133039
Approved by: https://github.com/ezyang
2024-08-10 01:10:47 +00:00
Oguz Ulgen
6e79932543
Add basic mypy annotations to dynamo ( #132415 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/132415
Approved by: https://github.com/XuehaiPan , https://github.com/jamesjwu
2024-08-04 18:43:36 +00:00
PyTorch MergeBot
3558a8cf4a
Revert "Add basic mypy annotations to dynamo ( #132415 )"
...
This reverts commit 71e22e0959 .
Reverted https://github.com/pytorch/pytorch/pull/132415 on behalf of https://github.com/ZainRizvi due to Sorry, this PR has entered a weird state in the diff train. Trying to revert it to skip it, and then we can try relanding it ([comment](https://github.com/pytorch/pytorch/pull/132415#issuecomment-2267631785 ))
2024-08-04 18:39:29 +00:00
Oguz Ulgen
71e22e0959
Add basic mypy annotations to dynamo ( #132415 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/132415
Approved by: https://github.com/XuehaiPan , https://github.com/jamesjwu
2024-08-01 20:14:25 +00:00
Xuehai Pan
e74ba1b34a
[BE][Easy][15/19] enforce style for empty lines in import segments in torch/_d*/ ( #129767 )
...
See https://github.com/pytorch/pytorch/pull/129751#issue-2380881501 . Most changes are auto-generated by linter.
You can review these PRs via:
```bash
git diff --ignore-all-space --ignore-blank-lines HEAD~1
```
Pull Request resolved: https://github.com/pytorch/pytorch/pull/129767
Approved by: https://github.com/anijain2305
2024-07-31 21:18:11 +00:00
Oguz Ulgen
7a42470bcb
Annotate all InstructionTranslator ( #131509 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/131509
Approved by: https://github.com/zou3519
2024-07-24 23:45:53 +00:00
PyTorch MergeBot
5db5865614
Revert "Annotate all InstructionTranslator ( #131509 )"
...
This reverts commit eafbd20f23 .
Reverted https://github.com/pytorch/pytorch/pull/131509 on behalf of https://github.com/clee2000 due to sorry need to revert this to revert something else, I think you only need to rebase and remerge ([comment](https://github.com/pytorch/pytorch/pull/131509#issuecomment-2249000843 ))
2024-07-24 22:29:49 +00:00
Oguz Ulgen
eafbd20f23
Annotate all InstructionTranslator ( #131509 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/131509
Approved by: https://github.com/zou3519
2024-07-24 05:31:01 +00:00
Brian Hirsh
7058563078
support as_python_constant on PlacementClassVariable ( #124398 )
...
Fixes an error for torchtitan + internal
Pull Request resolved: https://github.com/pytorch/pytorch/pull/124398
Approved by: https://github.com/ezyang , https://github.com/wanchaol , https://github.com/yoyoyocmu
2024-05-01 21:56:01 +00:00
Yifu Wang
3bede14fa7
Don't create world pg variable out of thin air when rewriting c10d collectives ( #122561 )
...
Fixes https://github.com/pytorch/pytorch/issues/122404
Previously, when rewriting c10d collectives, if the group argument is
unspecified or None, we create a world pg variable out of thin air and
pass it to the rewrite target. The approach was problematic, as it
assumes the symbol `torch` is available in the scope (see #122404 ).
After #120560 , dynamo can now trace dist.group.WORLD. If the group
argument is unspecified, we can just set it with dist.group.WORLD in the
rewrite target.
Testing
pytest test/distributed/test_inductor_collectives.py -k test_dynamo_rewrite_dist_allreduce
Also verified with the repro provided in #122404
Pull Request resolved: https://github.com/pytorch/pytorch/pull/122561
Approved by: https://github.com/wconstab
ghstack dependencies: #120560
2024-03-26 20:12:08 +00:00
Yifu Wang
36188360dd
[dynamo] support torch.distributed.{group.WORLD, GroupMember.WORLD, distributed_c10d._get_default_group} ( #120560 )
...
Fixes https://github.com/pytorch/pytorch/issues/120431
Pull Request resolved: https://github.com/pytorch/pytorch/pull/120560
Approved by: https://github.com/wconstab
2024-03-24 11:13:05 +00:00
Brian Hirsh
2e44b12dd4
dynamo: handle DTensor.device_mesh.device_type ( #118803 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/118803
Approved by: https://github.com/wanchaol , https://github.com/yanboliang
2024-03-22 14:42:22 +00:00
Jason Ansel
3c8c7e2a46
[dynamo] Tweak naming for module hook bw_state ( #121609 )
...
Some minor changes not related to the other PRs in the stack
Pull Request resolved: https://github.com/pytorch/pytorch/pull/121609
Approved by: https://github.com/yanboliang
2024-03-12 16:27:56 +00:00
Yifu Wang
d7a5e59647
[dynamo] support group=None when rewriting collectives ( #121043 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/121043
Approved by: https://github.com/awgu
2024-03-06 21:37:19 +00:00
Jason Ansel
e3dbd194f4
[dynamo] Support module backwards hooks ( #120685 )
...
Pull Request resolved: https://github.com/pytorch/pytorch/pull/120685
Approved by: https://github.com/yanboliang , https://github.com/xmfan
2024-03-01 02:24:26 +00:00
Sergii Dymchenko
d341b66e96
Revert [dynamo] support group=None when rewriting collectives ( #12018 ) ( #120677 )
...
This reverts commit 298c686d3f .
Pull Request resolved: https://github.com/pytorch/pytorch/pull/120677
Approved by: https://github.com/yifuwang , https://github.com/huydhn
2024-02-27 00:33:35 +00:00
Yifu Wang
298c686d3f
[dynamo] support group=None when rewriting collectives ( #120118 )
...
Resolves case 2 in #120082 .
Pull Request resolved: https://github.com/pytorch/pytorch/pull/120118
Approved by: https://github.com/wconstab
ghstack dependencies: #120370
2024-02-25 03:12:10 +00:00
Yifu Wang
11e4a9266d
Temporarily support ranks + tag as pg identifier in native funcol ( #120226 )
...
As communicated in https://github.com/pytorch/pytorch/issues/93173#issuecomment-1907095208 , although we are dropping `(ranks, tag)` as group identifier in funcols, there will be a grace period for migration. This PR adds temporary `(ranks, tag)` support in native funcols. It also helps us decouple the py funcol -> native funcol transition from the API change.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/120226
Approved by: https://github.com/wanchaol , https://github.com/wconstab
ghstack dependencies: #120042 , #120043 , #120070
2024-02-22 20:24:16 +00:00