diff --git a/2.9.0/done/result_dynamo.md b/2.9.0/done/result_dynamo.md new file mode 100644 index 0000000..298df42 --- /dev/null +++ b/2.9.0/done/result_dynamo.md @@ -0,0 +1,54 @@ + +# Release Notes worksheet dynamo + +The main goal of this process is to rephrase all the commit messages below to make them **clear and easy to read** by the end user. You should follow the following instructions to do so: + +* **Please clean up and format commit titles to be readable by the general PyTorch user.** Make sure you're [following the guidance here](https://docs.google.com/document/d/14OmgGBr1w6gl1VO47GGGdwrIaUNr92DFhQbY_NEk8mQ/edit)! Your resulting notes must be consistent and easy to read. +* Please sort commits into the following categories (you should not rename the categories!), I tried to pre-sort these to ease your work, feel free to move commits around if the current categorization is not good. +* Anything that is not public facing needs to be removed. +* If anything is miscategorized/belongs to another domain, move it to `miscategorized.md`. +* Please scan through `miscategorized.md` and handle any commits that belong within your domain according to these instructions. +* We place a lot of emphasis on the “BC-breaking” and “deprecation” sections. Those should be where the most effort goes in. The “improvements” and “bug fixes” for Python API should be nice as well. +* Once you are finished, move this very file from `todo/` to `done/` and submit a pull request. + +The categories below are as follows: + +* BC breaking: All commits that are BC-breaking. These are the most important commits. If any pre-sorted commit is actually BC-breaking, do move it to this section. Each commit should contain a paragraph explaining the rational behind the change as well as an example for how to update user code [BC-Guidelines](https://docs.google.com/document/d/14OmgGBr1w6gl1VO47GGGdwrIaUNr92DFhQbY_NEk8mQ/edit#heading=h.a9htwgvvec1m). +* Deprecations: All commits introducing deprecation. Each commit should include a small example explaining what should be done to update user code. +* new_features: All commits introducing a new feature (new functions, new submodule, new supported platform etc) +* improvements: All commits providing improvements to existing feature should be here (new backend for a function, new argument, better numerical stability) +* bug fixes: All commits that fix bugs and behaviors that do not match the documentation +* performance: All commits that are added mainly for performance (we separate this from improvements above to make it easier for users to look for it) +* documentation: All commits that add/update documentation +* Developers: All commits that are not end-user facing but still impact people that compile from source, develop into pytorch, extend pytorch, etc +* not user facing: All commits that are not public end-user facing and hence should be dropped from the release notes + +## dynamo +### bc breaking +### deprecation +### new features +- Experimental API for ahead-of-time compiling models in fullgraph mode ([#161383](https://github.com/pytorch/pytorch/pull/161383)) +- Toggle erroring/resume on graph break with `torch._dynamo.error_on_graph_break` ([#161739](https://github.com/pytorch/pytorch/pull/161739), [#161747](https://github.com/pytorch/pytorch/pull/161747)) +- Add a hook for recompilations ([#157961](https://github.com/pytorch/pytorch/pull/157961)) +### improvements +- Improved tracing support for various Python builtin data structures/modules: + - `list`s (e.g. [#153969](https://github.com/pytorch/pytorch/pull/153969)) + - `set`s (e.g. [#153150](https://github.com/pytorch/pytorch/pull/153150)) + - `dict`s (e.g. [#154794](https://github.com/pytorch/pytorch/pull/154794)) + - `iter` (e.g. [#156371](https://github.com/pytorch/pytorch/pull/156371)) + - `itertools` (e.g. [#159693](https://github.com/pytorch/pytorch/pull/159693)) + - `collections` (e.g. [#159365](https://github.com/pytorch/pytorch/pull/159365)) + - `collections.NamedTuple` ([#159367](https://github.com/pytorch/pytorch/pull/159367)) + - frozen `dataclasses.dataclass` ([#159529](https://github.com/pytorch/pytorch/pull/159529)) +- Graph break error messages link to a website with more information ([#159011](https://github.com/pytorch/pytorch/pull/159011)) +- Add option for TorchDispatchMode to ignore torch.compile internals ([#161648](https://github.com/pytorch/pytorch/pull/161648)) +### bug fixes +- Fix segfault due to interaction between Dynamo backends and `torch.compiler.reset()` ([#156527](https://github.com/pytorch/pytorch/pull/156527)) +- Fix crash due to bad interaction with recompilations and with blocks in Python 3.11+ ([#162318](https://github.com/pytorch/pytorch/pull/162318)) +### performance +- Recursive `dict` tag optimization for faster guard evaluation ([#159183](https://github.com/pytorch/pytorch/pull/159183)) +### docs +### devs +### Untopiced +### not user facing +### security diff --git a/2.9.0/miscategorized.md b/2.9.0/miscategorized.md index e1735a6..db936f0 100644 --- a/2.9.0/miscategorized.md +++ b/2.9.0/miscategorized.md @@ -5,7 +5,13 @@ Add any commits that were miscategorized for your domain below. Handle any commits that actually do belong to your domain and remove them from this list. ## Untopiced +- shape guards ([#161178](https://github.com/pytorch/pytorch/pull/161178)) +- Add support for tracing vmap in pre-dispatch export ([#154650](https://github.com/pytorch/pytorch/pull/154650)) +- New export implementation with flat inp/out ([#162167](https://github.com/pytorch/pytorch/pull/162167)) +- Warn when there is side effect in strict mode ([#160060](https://github.com/pytorch/pytorch/pull/160060)) +- kill allow_complex_guards_as_runtime_asserts ([#161794](https://github.com/pytorch/pytorch/pull/161794)) +- [export] runtime asserts for while HOP subgraphs ([#158467](https://github.com/pytorch/pytorch/pull/158467)) +- [fx] Add is_fx_symbolic_tracing flag ([#161385](https://github.com/pytorch/pytorch/pull/161385)) - [ROCm] Add FP8 rowwise support to _scaled_grouped_mm + Submodule update ([#159075](https://github.com/pytorch/pytorch/pull/159075)) - [CPU] Support GQA for flash attention ([#157893](https://github.com/pytorch/pytorch/pull/157893)) - ## not user facing diff --git a/2.9.0/todo/result_dynamo.md b/2.9.0/todo/result_dynamo.md deleted file mode 100644 index f16ca73..0000000 --- a/2.9.0/todo/result_dynamo.md +++ /dev/null @@ -1,294 +0,0 @@ - -# Release Notes worksheet dynamo - -The main goal of this process is to rephrase all the commit messages below to make them **clear and easy to read** by the end user. You should follow the following instructions to do so: - -* **Please clean up and format commit titles to be readable by the general PyTorch user.** Make sure you're [following the guidance here](https://docs.google.com/document/d/14OmgGBr1w6gl1VO47GGGdwrIaUNr92DFhQbY_NEk8mQ/edit)! Your resulting notes must be consistent and easy to read. -* Please sort commits into the following categories (you should not rename the categories!), I tried to pre-sort these to ease your work, feel free to move commits around if the current categorization is not good. -* Anything that is not public facing needs to be removed. -* If anything is miscategorized/belongs to another domain, move it to `miscategorized.md`. -* Please scan through `miscategorized.md` and handle any commits that belong within your domain according to these instructions. -* We place a lot of emphasis on the “BC-breaking” and “deprecation” sections. Those should be where the most effort goes in. The “improvements” and “bug fixes” for Python API should be nice as well. -* Once you are finished, move this very file from `todo/` to `done/` and submit a pull request. - -The categories below are as follows: - -* BC breaking: All commits that are BC-breaking. These are the most important commits. If any pre-sorted commit is actually BC-breaking, do move it to this section. Each commit should contain a paragraph explaining the rational behind the change as well as an example for how to update user code [BC-Guidelines](https://docs.google.com/document/d/14OmgGBr1w6gl1VO47GGGdwrIaUNr92DFhQbY_NEk8mQ/edit#heading=h.a9htwgvvec1m). -* Deprecations: All commits introducing deprecation. Each commit should include a small example explaining what should be done to update user code. -* new_features: All commits introducing a new feature (new functions, new submodule, new supported platform etc) -* improvements: All commits providing improvements to existing feature should be here (new backend for a function, new argument, better numerical stability) -* bug fixes: All commits that fix bugs and behaviors that do not match the documentation -* performance: All commits that are added mainly for performance (we separate this from improvements above to make it easier for users to look for it) -* documentation: All commits that add/update documentation -* Developers: All commits that are not end-user facing but still impact people that compile from source, develop into pytorch, extend pytorch, etc -* not user facing: All commits that are not public end-user facing and hence should be dropped from the release notes - -## dynamo -### bc breaking -### deprecation -### new features -### improvements -### bug fixes -- [dynamo] fix segfault due to dangling CacheEntry backend pointer ([#156527](https://github.com/pytorch/pytorch/pull/156527)) -- [dynamo] fix segfault due to dangling CacheEntry backend pointer ([#156527](https://github.com/pytorch/pytorch/pull/156527)) -- [dynamo] fix resume_execution.py KeyError in Python 3.11+ ([#162318](https://github.com/pytorch/pytorch/pull/162318)) -### performance -### docs -### devs -### Untopiced -- [dynamo] allow symints in list.__setitem__ ([#156197](https://github.com/pytorch/pytorch/pull/156197)) -- [Generator] Implement generator.__contains__ ([#154539](https://github.com/pytorch/pytorch/pull/154539)) -- [dynamo] Fix dynamic shapes handling in after_aot repro generation ([#157136](https://github.com/pytorch/pytorch/pull/157136)) -- [list] Implement list.count ([#153969](https://github.com/pytorch/pytorch/pull/153969)) -- [list] Implement `list.remove` ([#156242](https://github.com/pytorch/pytorch/pull/156242)) -- Implement list.__add__ and list.__iadd__ ([#156270](https://github.com/pytorch/pytorch/pull/156270)) -- [list] Add list.__mul__ and list.__imul__ ([#156271](https://github.com/pytorch/pytorch/pull/156271)) -- [list] Add list.__delitem__ ([#156339](https://github.com/pytorch/pytorch/pull/156339)) -- [PGO] include module int attributes in PGO state ([#157518](https://github.com/pytorch/pytorch/pull/157518)) -- [dynamo] Add FakeProcessGroup support for fx_graph_runnable with distributed collectives ([#157162](https://github.com/pytorch/pytorch/pull/157162)) -- Fix compilation and "import torch" issues for cpython 3.14 ([#158184](https://github.com/pytorch/pytorch/pull/158184)) -- [iter] exhaust `ListIterator` when `unpack_var_sequence` is called ([#156370](https://github.com/pytorch/pytorch/pull/156370)) -- [Dynamo][Better Engineering] Add typing support for _dynamo/repro and debug_utils ([#158504](https://github.com/pytorch/pytorch/pull/158504)) -- [dynamo][be] hide warnings without invalidating warnings cache ([#158520](https://github.com/pytorch/pytorch/pull/158520)) -- [export] runtime asserts for while HOP subgraphs ([#158467](https://github.com/pytorch/pytorch/pull/158467)) -- [dynamo] Added back weblink generation ([#159011](https://github.com/pytorch/pytorch/pull/159011)) -- [ROCm] add flag torch.backends.miopen.immediate ([#158951](https://github.com/pytorch/pytorch/pull/158951)) -- [iter] Add support for sequence protocol in `iter(..)` ([#156371](https://github.com/pytorch/pytorch/pull/156371)) -- [iter] support `iter(callable, sentinel)` ([#156416](https://github.com/pytorch/pytorch/pull/156416)) -- [Dynamo] Make frozen dataclasses hashable ([#159529](https://github.com/pytorch/pytorch/pull/159529)) -- [itertools] Fix accumulate ([#158774](https://github.com/pytorch/pytorch/pull/158774)) -- [itertools] Implement itertools.cycle with a polyfill ([#159102](https://github.com/pytorch/pytorch/pull/159102)) -- [dynamo] Make filter handle None as filter function ([#159500](https://github.com/pytorch/pytorch/pull/159500)) -- Update convert_frame.py (52376b9b6fb) -- Update utils.py (b4b71d011ed) -- Update test_utils.py (5711a8f0694) -- [Dynamo][Better Engineering] Add type coverage to dynamo/compiled_autograd.py ([#159518](https://github.com/pytorch/pytorch/pull/159518)) -- [Dynamo] Fix arg ordering in tf modes ([#159707](https://github.com/pytorch/pytorch/pull/159707)) -- [Dynamo] Enable torch function dispatch on HOPs ([#159708](https://github.com/pytorch/pytorch/pull/159708)) -- [Dynamo] make HOPs hashable ([#159910](https://github.com/pytorch/pytorch/pull/159910)) -- [dynamo] update pytorch-labs -> meta-pytorch in graph break URLs ([#159975](https://github.com/pytorch/pytorch/pull/159975)) -- [Dynamo] Add torch.xpu.stream to trace rules ([#159844](https://github.com/pytorch/pytorch/pull/159844)) -- [dynamo] Improve support for itertools.product ([#159693](https://github.com/pytorch/pytorch/pull/159693)) -- [PGO] no counterfactual suggestions for dynamic allowlist ([#160231](https://github.com/pytorch/pytorch/pull/160231)) -- [Dynamo][Hierarchical Compile] Allow parameters to be propagated to submodules ([#157979](https://github.com/pytorch/pytorch/pull/157979)) -- [Hierarchical Compile] Sort all regions identically ([#158814](https://github.com/pytorch/pytorch/pull/158814)) -- Warn when there is side effect in strict mode ([#160060](https://github.com/pytorch/pytorch/pull/160060)) -- [Dynamo][Hierarchical-Compile] Don't allow node duplicates to be added ([#160605](https://github.com/pytorch/pytorch/pull/160605)) -- [Dynamo][Hierarchical Compile] Refactor for tuple flattening ([#158810](https://github.com/pytorch/pytorch/pull/158810)) -- Fixes for `collections.Counter` ([#159368](https://github.com/pytorch/pytorch/pull/159368)) -- Support `next(iterator, default)` ([#159483](https://github.com/pytorch/pytorch/pull/159483)) -- [Dynamo][Hierarchical Compile] Flatten tuple outputs in graph dedupe pass ([#158811](https://github.com/pytorch/pytorch/pull/158811)) -- [PGO] add extra read/write keys ([#160715](https://github.com/pytorch/pytorch/pull/160715)) -- Fixes for `collections.NamedTuple` ([#159367](https://github.com/pytorch/pytorch/pull/159367)) -- [Dynamo][Hierarchical Compile] Flatten tuple inputs for regions ([#158812](https://github.com/pytorch/pytorch/pull/158812)) -- [dynamo] Fix graph break on calling functions decorated with special context manager ([#160703](https://github.com/pytorch/pytorch/pull/160703)) -- [dynamo] Support builtin complex with constant args ([#160799](https://github.com/pytorch/pytorch/pull/160799)) -- [dynamo][dist] trace DeviceMesh's get_local_rank and get_rank as constants ([#160805](https://github.com/pytorch/pytorch/pull/160805)) -- Add support for tracing vmap in pre-dispatch export ([#154650](https://github.com/pytorch/pytorch/pull/154650)) -- [dynamo] propagate tensor metadata on Tensor.__setitem__(tensor) ([#161036](https://github.com/pytorch/pytorch/pull/161036)) -- [dynamo] Remove extra if statement in builder _wrap ([#161215](https://github.com/pytorch/pytorch/pull/161215)) -- [dynamo] Support method calls on complex ConstantVariables ([#161122](https://github.com/pytorch/pytorch/pull/161122)) -- [fx] Add is_fx_symbolic_tracing flag ([#161385](https://github.com/pytorch/pytorch/pull/161385)) -- [PGO] skip allowlist logging for empty graphs ([#161530](https://github.com/pytorch/pytorch/pull/161530)) -- Add option for TorchDispatchMode to ignore torch.compile internals ([#161648](https://github.com/pytorch/pytorch/pull/161648)) -- kill allow_complex_guards_as_runtime_asserts ([#161794](https://github.com/pytorch/pytorch/pull/161794)) -- [dynamo] rename set_fullgraph to error_on_graph_break ([#161739](https://github.com/pytorch/pytorch/pull/161739)) -- [dynamo] change error_on_graph_break/fullgraph semantics ([#161747](https://github.com/pytorch/pytorch/pull/161747)) -- shape guards ([#161178](https://github.com/pytorch/pytorch/pull/161178)) -### not user facing -- [dynamo] updated version of detecting any differences between PRs unimplemented_v2() callsites and graph_break_registry json file ([#156237](https://github.com/pytorch/pytorch/pull/156237)) -- Refactor DynamoStore into disk and in memory implementations ([#155818](https://github.com/pytorch/pytorch/pull/155818)) -- [dynamo] Add immutable pytree to trace_rules ([#156772](https://github.com/pytorch/pytorch/pull/156772)) -- [cond] preserve merged phs meta for subgraph ([#155644](https://github.com/pytorch/pytorch/pull/155644)) -- [dynamo] update base variable call_method hint with note on comprehensions ([#156769](https://github.com/pytorch/pytorch/pull/156769)) -- [dynamo] move error_on_graph_break out of config ([#156762](https://github.com/pytorch/pytorch/pull/156762)) -- Fix fake kernel for the `out=...` variant of `unbind_copy` ([#156643](https://github.com/pytorch/pytorch/pull/156643)) -- Optimize TorchHigherOrderOperatorVariable.make() with lookup table ([#157022](https://github.com/pytorch/pytorch/pull/157022)) -- [invoke_subgraph] turn on supports_input_mutation by default ([#157177](https://github.com/pytorch/pytorch/pull/157177)) -- [hop] support torch.func.functional_call in hop subgraph ([#155886](https://github.com/pytorch/pytorch/pull/155886)) -- [dynamo][callbacks] temporarily disable TRITON_AUTOTUNING ([#157186](https://github.com/pytorch/pytorch/pull/157186)) -- increment pending_callbacks_counter before initation the pt2 compile callbacks ([#157185](https://github.com/pytorch/pytorch/pull/157185)) -- [precompile] Detect source code changes for save/load. ([#156432](https://github.com/pytorch/pytorch/pull/156432)) -- [dynamo] show frame information when recompilation is triggered on fail_on_recompile ([#156433](https://github.com/pytorch/pytorch/pull/156433)) -- [dynamo] Ensure global state guard is preserved across serialization. ([#157285](https://github.com/pytorch/pytorch/pull/157285)) -- [dynamo][guards] Stash root guard manager pointer in the LeafGuard ([#157325](https://github.com/pytorch/pytorch/pull/157325)) -- [dynamo, nested graph breaks] remove recursive cell/freevar in instruction tx ([#154078](https://github.com/pytorch/pytorch/pull/154078)) -- [Precompile] [easy] Serialize requires_grad for tensors when serializing guards ([#157372](https://github.com/pytorch/pytorch/pull/157372)) -- [dynamo] Support BUILTIN_MATCH serialization. ([#157016](https://github.com/pytorch/pytorch/pull/157016)) -- [Set] Support sets in VariableBuilder ([#153150](https://github.com/pytorch/pytorch/pull/153150)) -- [FrozenSet] Fixes for FrozenSet ([#152991](https://github.com/pytorch/pytorch/pull/152991)) -- [Dynamo] [SetSubclass] Add support for user defined sets ([#153553](https://github.com/pytorch/pytorch/pull/153553)) -- [Dynamo] [Set] Implement some binop operators for dict/set/frozenset/dict_keys ([#154063](https://github.com/pytorch/pytorch/pull/154063)) -- [Dynamo] [Set] Raise TypeError if object is unhashable ([#154064](https://github.com/pytorch/pytorch/pull/154064)) -- [Dynamo] [Set] Raise TypeError in set.union(...) and "__or__" ([#154065](https://github.com/pytorch/pytorch/pull/154065)) -- [Dynamo] [Set] Add comparison for set subclass ([#154066](https://github.com/pytorch/pytorch/pull/154066)) -- [Dynamo] [FrozensetSubclass] Add support for user defined frozensets ([#154263](https://github.com/pytorch/pytorch/pull/154263)) -- Ensure Dynamo can trace through explicit dunder method call ([#154366](https://github.com/pytorch/pytorch/pull/154366)) -- Add dynamo_timed to bytecode hook ([#157587](https://github.com/pytorch/pytorch/pull/157587)) -- [dynamo] Relax DUPLICATED_INPUT to be serializable. ([#157492](https://github.com/pytorch/pytorch/pull/157492)) -- [list] Raise exception in invalid list method call ([#156148](https://github.com/pytorch/pytorch/pull/156148)) -- Fix typo: 'paramter' → 'parameter' in dynamo variable comment ([#157651](https://github.com/pytorch/pytorch/pull/157651)) -- [dynamo] Replace unimplemented with unimplemented_v2 in `torch/_dynamo/variables/torch.py` ([#157344](https://github.com/pytorch/pytorch/pull/157344)) -- [BE] Do not add `.` after troubleshooting_url ([#157753](https://github.com/pytorch/pytorch/pull/157753)) -- [dynamo] Avoid recompiling over unused objects ([#156891](https://github.com/pytorch/pytorch/pull/156891)) -- have dynamic sources only apply to sizes and not strides ([#157960](https://github.com/pytorch/pytorch/pull/157960)) -- Fix logging of config_suppress_errors and config_inline_inbuilt_nn_modules ([#157947](https://github.com/pytorch/pytorch/pull/157947)) -- Make guard collective logging less chatty ([#157995](https://github.com/pytorch/pytorch/pull/157995)) -- [dict] Raise TypeError in dict methods ([#154003](https://github.com/pytorch/pytorch/pull/154003)) -- [dict] Add dict.popitem ([#154793](https://github.com/pytorch/pytorch/pull/154793)) -- [dict] Allow Dynamo to trace through explicit dict dunder method call ([#154794](https://github.com/pytorch/pytorch/pull/154794)) -- [dict] Implement dict.__eq__ and dict.__ne__ ([#154942](https://github.com/pytorch/pytorch/pull/154942)) -- [OrderedDict] Implement explicit OrderedDict dunder method call ([#154943](https://github.com/pytorch/pytorch/pull/154943)) -- [Log] add a hook for recompile user context ([#157961](https://github.com/pytorch/pytorch/pull/157961)) -- [dynamo] expand_hints does exc() to expand graph_break_hints ([#158078](https://github.com/pytorch/pytorch/pull/158078)) -- [dynamo] trace through torch.get_device_module ([#157980](https://github.com/pytorch/pytorch/pull/157980)) -- feat(dynamo): raise UnsupportedError for ndarray.astype(object) ([#157810](https://github.com/pytorch/pytorch/pull/157810)) -- [dynamo] fix NamedTupleVariable cloning ([#158190](https://github.com/pytorch/pytorch/pull/158190)) -- [precompile] Increment frame and add compile ids when loading packages ([#158028](https://github.com/pytorch/pytorch/pull/158028)) -- [dynamo][tensor] Skip HASATTR attribute on tensor guards ([#158215](https://github.com/pytorch/pytorch/pull/158215)) -- [dynamo][guards] Instruction count for guard eval for development work ([#158214](https://github.com/pytorch/pytorch/pull/158214)) -- [hop][dynamo] track run-ahead sym variables in side effects ([#158273](https://github.com/pytorch/pytorch/pull/158273)) -- [Dynamo][Better Engineering] Add typing to bytecode analysis and transform ([#158293](https://github.com/pytorch/pytorch/pull/158293)) -- [Dynamo][Better Engineering] Support typing in codegen.py ([#158386](https://github.com/pytorch/pytorch/pull/158386)) -- [Dynamo][Better Engineering] Add enhanced typing support to `_dynamo/eval_frame.py` ([#158276](https://github.com/pytorch/pytorch/pull/158276)) -- [dynamo] Skip training flag check id already guarding on nn modules ([#158492](https://github.com/pytorch/pytorch/pull/158492)) -- [Dynamo][Better Engineering] Add type coverage to decorators ([#158509](https://github.com/pytorch/pytorch/pull/158509)) -- [Dynamo][Better Engineering] Add typing for comptime, cache, and convert_frame ([#158379](https://github.com/pytorch/pytorch/pull/158379)) -- [while_loop] fix constant tensor used as carried inputs ([#158381](https://github.com/pytorch/pytorch/pull/158381)) -- [precompile] Filter out ID_MATCH family of guards with caching_precompile. ([#158368](https://github.com/pytorch/pytorch/pull/158368)) -- [Dynamo][Better Engineering] Type devices, resume_execution and testing utils ([#158593](https://github.com/pytorch/pytorch/pull/158593)) -- [dynamo] Support more basic output types for `nonstrict_trace` ([#157969](https://github.com/pytorch/pytorch/pull/157969)) -- [Dynamo][BetterEngineering] Type side_effects.py ([#158605](https://github.com/pytorch/pytorch/pull/158605)) -- [pt2 event logging] add configurable prefix ([#157678](https://github.com/pytorch/pytorch/pull/157678)) -- [Dynamo][BetterEngineering] Type trace_rules.py ([#158679](https://github.com/pytorch/pytorch/pull/158679)) -- [dynamo] skip tracing functions registered in sys.monitoring ([#158171](https://github.com/pytorch/pytorch/pull/158171)) -- [dynamo] Move skipIf decorator to class level in test_fx_graph_runnable ([#157594](https://github.com/pytorch/pytorch/pull/157594)) -- [math] Raise exception in Dynamo if constant fold call fail ([#156975](https://github.com/pytorch/pytorch/pull/156975)) -- [struct] Add `struct.pack` and `struct.unpack` polyfills ([#156977](https://github.com/pytorch/pytorch/pull/156977)) -- [math] Trace `float.fromhex` ([#156976](https://github.com/pytorch/pytorch/pull/156976)) -- [dynamo][guards] Add type info of the guarded value in guard managers ([#158765](https://github.com/pytorch/pytorch/pull/158765)) -- [dynamo] lintrunner for gb_registry adds/updates ([#158460](https://github.com/pytorch/pytorch/pull/158460)) -- Correctly handle `OP_CONTAINS` ([#158660](https://github.com/pytorch/pytorch/pull/158660)) -- Raise exception in Dynamo if op fails in the interpreter ([#158661](https://github.com/pytorch/pytorch/pull/158661)) -- [precompile] Support user defined function calls from bytecode. ([#158947](https://github.com/pytorch/pytorch/pull/158947)) -- Update context in `unimplemented_v2` when exception bubbles up to the interpreter ([#158924](https://github.com/pytorch/pytorch/pull/158924)) -- [Bugfix] Fix circular import between export and dynamo from tensor fn map ([#158931](https://github.com/pytorch/pytorch/pull/158931)) -- [dynamo][guards] Expand is_immutable_object to have None ([#158995](https://github.com/pytorch/pytorch/pull/158995)) -- [dynamo][guards] Add some relational guard helpers ([#159077](https://github.com/pytorch/pytorch/pull/159077)) -- [dynamo] unimplemented -> unimplemented_v2 for user_defined.py ([#156652](https://github.com/pytorch/pytorch/pull/156652)) -- [while_loop] stop manually setting example inputs in dynamo ([#159063](https://github.com/pytorch/pytorch/pull/159063)) -- [scan] stop manually set example inputs in dynamo ([#159064](https://github.com/pytorch/pytorch/pull/159064)) -- [associative_scan] stop manually set example inputs in dynamo ([#159065](https://github.com/pytorch/pytorch/pull/159065)) -- [dynamo][guards] Skip guards on constant func.__defaults__ elements ([#159209](https://github.com/pytorch/pytorch/pull/159209)) -- [Precompile] [easy] API For Editable PrecompileCacheArtifacts ([#158586](https://github.com/pytorch/pytorch/pull/158586)) -- Track previous MetricsContext edits for ease of debugging. ([#159336](https://github.com/pytorch/pytorch/pull/159336)) -- [dynamo][guards] Use lambda guards for object aliasing to improve object aliasing guards ([#159288](https://github.com/pytorch/pytorch/pull/159288)) -- [dynamo][guards] More small guard optimizations ([#159345](https://github.com/pytorch/pytorch/pull/159345)) -- [iter] Wrap iter(..) call in a ObjectIteratorVariable ([#156460](https://github.com/pytorch/pytorch/pull/156460)) -- [iter] Raise TypeError if iter arg cannot be iterable ([#158410](https://github.com/pytorch/pytorch/pull/158410)) -- [dynamo] better way to skip tracing sys.monitoring callables ([#159369](https://github.com/pytorch/pytorch/pull/159369)) -- dynamo: handle AttributeErrors from nn_module when infer_paramaters throws. ([#158501](https://github.com/pytorch/pytorch/pull/158501)) -- [dynamo][guards] Recursive dict tag optimization ([#159183](https://github.com/pytorch/pytorch/pull/159183)) -- [dynamo][guards] Skip no tensor aliasing guard on inbuilt nn module buffers ([#159453](https://github.com/pytorch/pytorch/pull/159453)) -- Various bugfixes for running NanoGPT training ([#159166](https://github.com/pytorch/pytorch/pull/159166)) -- [dynamo] Turn on recursive dict tag optimization ([#159186](https://github.com/pytorch/pytorch/pull/159186)) -- [dynamo][guards] Always record user.stack for informative tlparse guards ([#159526](https://github.com/pytorch/pytorch/pull/159526)) -- [Dynamo] Frozen dataclass attr access test ([#159513](https://github.com/pytorch/pytorch/pull/159513)) -- Revert direct updates ([#159654](https://github.com/pytorch/pytorch/pull/159654)) -- [dynamo] Replace unimplemented with unimplemented_v2 in `torch/_dynamo/variables/script_object.py` ([#159343](https://github.com/pytorch/pytorch/pull/159343)) -- [Graph Breaks] Remove unsupported Additional Info field ([#159658](https://github.com/pytorch/pytorch/pull/159658)) -- [dynamo][source] Add special source for __code__ and __closure__ ([#159722](https://github.com/pytorch/pytorch/pull/159722)) -- [dynamo][guards][refactor] Simplify type extraction from GuardManager ([#159752](https://github.com/pytorch/pytorch/pull/159752)) -- [dynamo][guards] Read the attr name from GetAttrGuardAccessor ([#159754](https://github.com/pytorch/pytorch/pull/159754)) -- [Dynamo][Better Engineering] Type coverage for `torch/_dynamo/utils.py` ([#159580](https://github.com/pytorch/pytorch/pull/159580)) -- [dynamo][guards] Skip ID_MATCH guard on self.__class__.__closure__ ([#159888](https://github.com/pytorch/pytorch/pull/159888)) -- [AIDIR] Internal util function to insert MLHub debugging insight for dynamic shape ([#159391](https://github.com/pytorch/pytorch/pull/159391)) -- [precompile] Skip serializing unnecesssary objects for guards. ([#158926](https://github.com/pytorch/pytorch/pull/158926)) -- [dynamo] Trace nn.Module __delattr__ ([#159969](https://github.com/pytorch/pytorch/pull/159969)) -- Fix infinite loop when iterating over an empty zip ([#159673](https://github.com/pytorch/pytorch/pull/159673)) -- [dynamo][guards] Remove guards on stdlib modules ([#159913](https://github.com/pytorch/pytorch/pull/159913)) -- [dynamo] support itertools.permutations ([#159694](https://github.com/pytorch/pytorch/pull/159694)) -- [dynamo] Be consistent with UserMethodVariable source ([#160155](https://github.com/pytorch/pytorch/pull/160155)) -- [hop][exc] make UncapturedHigherOrderOpError print user code and avoid re-raise ([#159296](https://github.com/pytorch/pytorch/pull/159296)) -- [dynamo] fixes to propagate tag safeness ([#159807](https://github.com/pytorch/pytorch/pull/159807)) -- [retry-land][pytorch][dynamo_compile] Log stack_trace to dynamo_compile ([#160348](https://github.com/pytorch/pytorch/pull/160348)) -- [dynamo][guards] Install dict watchers for recrusive dict tag optimization ([#159796](https://github.com/pytorch/pytorch/pull/159796)) -- Fullgraph graph capture with dynamo. ([#159749](https://github.com/pytorch/pytorch/pull/159749)) -- Followup of #160002, gracefully fail if Triton functions don't contain attributes ([#160436](https://github.com/pytorch/pytorch/pull/160436)) -- [dynamo] fix EXTENDED_ARG starts_line dropping bug ([#160478](https://github.com/pytorch/pytorch/pull/160478)) -- Update nullcontext to return input args ([#158776](https://github.com/pytorch/pytorch/pull/158776)) -- [Dynamo] Fix MTIA dynamo backend by avoiding has_trition() at import time ([#160604](https://github.com/pytorch/pytorch/pull/160604)) -- [pytorch][dynamo_compile] Log graph_node_shape to dynamo_compile ([#160556](https://github.com/pytorch/pytorch/pull/160556)) -- [Dynamo] Add CPython default dict tests ([#155263](https://github.com/pytorch/pytorch/pull/155263)) -- [generator] Raise `StopIteration(value)` with value from the return stmt ([#157152](https://github.com/pytorch/pytorch/pull/157152)) -- Typing for common.py ([#160362](https://github.com/pytorch/pytorch/pull/160362)) -- Type cudagraphs.py ([#160363](https://github.com/pytorch/pytorch/pull/160363)) -- typing registry.py ([#160367](https://github.com/pytorch/pytorch/pull/160367)) -- Type backend torchxla ([#160368](https://github.com/pytorch/pytorch/pull/160368)) -- typing tvm.py ([#160369](https://github.com/pytorch/pytorch/pull/160369)) -- Add logging for when inbuilt_inline_nn_modules will help with ID_MATCH guard triggered recompiles ([#160592](https://github.com/pytorch/pytorch/pull/160592)) -- Enable trace through the collections module ([#159365](https://github.com/pytorch/pytorch/pull/159365)) -- Change mutation type of `MutableMappingVariable` to `AttributeMutationNew` ([#159366](https://github.com/pytorch/pytorch/pull/159366)) -- Implement `list(UserDefinedObject)` via `force_unpack_var_sequence` ([#159864](https://github.com/pytorch/pytorch/pull/159864)) -- [collections.abc] Ensure that binop calls works with UserDefinedObjects ([#159865](https://github.com/pytorch/pytorch/pull/159865)) -- [easy] [Precompile] Refactor guards, improve typing ([#160530](https://github.com/pytorch/pytorch/pull/160530)) -- [dynamo][guards] Remove long lines from TORCH_LOGS=guards ([#160863](https://github.com/pytorch/pytorch/pull/160863)) -- [dynamo][guards] Optimize module getattr access for inline flag ([#160864](https://github.com/pytorch/pytorch/pull/160864)) -- Replace guard_serialization_mode with save_guards, remove load cases ([#160531](https://github.com/pytorch/pytorch/pull/160531)) -- [dynamo] Support itertools.filterfalse ([#160596](https://github.com/pytorch/pytorch/pull/160596)) -- [dynamo] Fix crash and silent incorrectness issues in `attention.sdpa_kernel` calls with kwargs ([#160684](https://github.com/pytorch/pytorch/pull/160684)) -- [dynamo] Refactor tracer logic in convert_frame so that it doesn't leak to outer layer. [1/n] ([#160814](https://github.com/pytorch/pytorch/pull/160814)) -- Move save guard error throwing to separate phase ([#160662](https://github.com/pytorch/pytorch/pull/160662)) -- [AIDIR] Revise the insight content ([#160649](https://github.com/pytorch/pytorch/pull/160649)) -- [dynamo] Refactor transform() so that instruction translator can be used as a tracing function. [2/n] ([#160815](https://github.com/pytorch/pytorch/pull/160815)) -- [BE][Dynamo] Type coverage for symbolic_convert ([#160922](https://github.com/pytorch/pytorch/pull/160922)) -- [dynamo] Refactor convert_frame._compile_inner to return compiled bytecode + output graph. [3/n] ([#160855](https://github.com/pytorch/pytorch/pull/160855)) -- [dynamo] Refactor convert_frame to remove usage of nonlocal tracer output return. [4/n] ([#160899](https://github.com/pytorch/pytorch/pull/160899)) -- Fix filename showing up as ints in dynamo_compile stack_trace column. ([#160916](https://github.com/pytorch/pytorch/pull/160916)) -- Allow bypasses for Precompile when guards, etc. cannot be serialized ([#160902](https://github.com/pytorch/pytorch/pull/160902)) -- Log exception_stack_trace to dynamo_compile ([#161096](https://github.com/pytorch/pytorch/pull/161096)) -- [BE] [dynamo] Simplify two methods in ConstDictVariable ([#159361](https://github.com/pytorch/pytorch/pull/159361)) -- Optimize `dynamo` typing ([#147499](https://github.com/pytorch/pytorch/pull/147499)) -- [dynamo] Pass requires_grad to nn.Parameter construction ([#161364](https://github.com/pytorch/pytorch/pull/161364)) -- [dynamo, nested graph breaks] implement new resume frame stack/locals/cell layout convention ([#157971](https://github.com/pytorch/pytorch/pull/157971)) -- [dynamo, nested graph breaks] use CALL_FUNCTION_EX when calling resume function ([#159281](https://github.com/pytorch/pytorch/pull/159281)) -- [dynamo] lift backed symint output of item() ([#161198](https://github.com/pytorch/pytorch/pull/161198)) -- [dynamo] auto lift unbacked symbol in tensor's storage_offset ([#161199](https://github.com/pytorch/pytorch/pull/161199)) -- type misc init and tools for dynamo ([#161293](https://github.com/pytorch/pytorch/pull/161293)) -- [reland] [dynamo] Refactor convert_frame.compile_frame to be self contained function. [5/n] ([#161514](https://github.com/pytorch/pytorch/pull/161514)) -- [dynamo] allow resume functions to have name in both freevars and varnames ([#161544](https://github.com/pytorch/pytorch/pull/161544)) -- [dynamo][vllm] Support typing.get_type_hints ([#161362](https://github.com/pytorch/pytorch/pull/161362)) -- [dynamo][higher order ops] Refactor for out spec ([#161354](https://github.com/pytorch/pytorch/pull/161354)) -- [dict] Implement dict.__ior__ and fix return type in dict.__or__ ([#155072](https://github.com/pytorch/pytorch/pull/155072)) -- [OrderedDict] Implement `OrderedDict.move_to_end(key, last=False)` ([#155152](https://github.com/pytorch/pytorch/pull/155152)) -- [OrderedDict] Implement `OrderedDict.popitem(last=...)` ([#155153](https://github.com/pytorch/pytorch/pull/155153)) -- [dynamo] Fix graph break registry loading in fbcode ([#161550](https://github.com/pytorch/pytorch/pull/161550)) -- [rfc] aot precompile with custom backend api ([#161383](https://github.com/pytorch/pytorch/pull/161383)) -- Revert "Generalize torch._C._set_allocator_settings to be generic (#156175)" ([#161626](https://github.com/pytorch/pytorch/pull/161626)) -- [dynamo] Correctly track mutation class source for MutableMappingVariable ([#161568](https://github.com/pytorch/pytorch/pull/161568)) -- Guard config copy for pickle errors ([#161659](https://github.com/pytorch/pytorch/pull/161659)) -- [Dynamo] Fix weakref.proxy error when `torch.compile` ([#161508](https://github.com/pytorch/pytorch/pull/161508)) -- Skip compilation when FX graph has no calls and returns empty ([#160536](https://github.com/pytorch/pytorch/pull/160536)) -- [dynamo] Prevent unnecessary recompile on disabled functions in the compiled frame ([#161883](https://github.com/pytorch/pytorch/pull/161883)) -- [dynamo] Graph break on torch.cuda.sychronize ([#161925](https://github.com/pytorch/pytorch/pull/161925)) -- [aot precompile] Handle closure variables. ([#161990](https://github.com/pytorch/pytorch/pull/161990)) -- [dynamo, nested graph breaks] support nested graph breaks that cause skipped frames ([#160470](https://github.com/pytorch/pytorch/pull/160470)) -- Add `range_iterator` ([#161800](https://github.com/pytorch/pytorch/pull/161800)) -- Offload set method execution to CPython when possible ([#160763](https://github.com/pytorch/pytorch/pull/160763)) -- [aot-compile] strip internal tracebacks for non-verbose graph breaks + include user file/lineno ([#162005](https://github.com/pytorch/pytorch/pull/162005)) -- Add `range_equals` ([#161801](https://github.com/pytorch/pytorch/pull/161801)) -- Add `range_count` and `range.__contains__` ([#161802](https://github.com/pytorch/pytorch/pull/161802)) -- redirect `iter(range)` to `range.__iter__()` ([#161803](https://github.com/pytorch/pytorch/pull/161803)) -- Fix `range.__getitem__()` ([#161804](https://github.com/pytorch/pytorch/pull/161804)) -- Capture TypeError in `CONTAINS_OP` ([#161069](https://github.com/pytorch/pytorch/pull/161069)) -- [dynamo] Make the MRO walk more narrow ([#162105](https://github.com/pytorch/pytorch/pull/162105)) -- [dynamo][hops] Remove const outputs from the speculated subgraph ([#161355](https://github.com/pytorch/pytorch/pull/161355)) -- [PGO] log add_extra_remote PGO to tlparse ([#161751](https://github.com/pytorch/pytorch/pull/161751)) -- [dynamo] Add support for const prop on .item ([#162204](https://github.com/pytorch/pytorch/pull/162204)) -- [PGO] handle PGO profile merges ([#162097](https://github.com/pytorch/pytorch/pull/162097)) -- [aot-precompile] default-filter global guards ([#162090](https://github.com/pytorch/pytorch/pull/162090)) -- New export implementation with flat inp/out ([#162167](https://github.com/pytorch/pytorch/pull/162167)) -- [dynamo] Use relaxed CLOSURE_MATCH guard then ID_MATCH ([#162247](https://github.com/pytorch/pytorch/pull/162247)) -- [easy] [precompile] Convert CompileArtifacts to callable ([#162169](https://github.com/pytorch/pytorch/pull/162169)) -- [precompile] Fix inlined source tracking with generators. ([#162389](https://github.com/pytorch/pytorch/pull/162389)) -### security