$ the-wire · showcase
Quantize hoisting fixed in ExecuTorch, torchrl raises its torch floor to 2.11
By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology
ExecuTorch's branch quantize pass no longer assumes one set of qparams can represent every branch, and torchrl drops support for torch 2.1 through 2.10 in favor of a 2.11 floor.
Only advance branch quantizes that share qparams pytorch/executorch
AdvanceQuantizeOpAboveDefInBranchPass used to hoist a shared quantize using the qparams with the largest zero-point without checking they could represent the other branches, which broke end-to-end model compiles where slices of one tensor each carry their own quantize. The pass now only advances branch quantizes whose qparams actually match.
[Versioning] Require torch 2.11 or later and deprecate torch<2.13 pytorch/rl
pyproject.toml now requires torch>=2.11.0a0, up from 2.1, and importing torchrl on torch older than 2.13 raises a one-time DeprecationWarning naming v0.17 as the release that will require torch>=2.13. The warning comes from _warn_if_torch_deprecated in torchrl/_utils.py and is emitted by the main process, so spawned ParallelEnv workers stay quiet.
[Versioning] Require tensordict 0.15.2 and test PRs against tensordict main pytorch/rl
torchrl now pins tensordict>=0.15.2,<0.16.0, the first 0.15 release that supports torch 2.11, after 0.15.0 and 0.15.1 required torch 2.13. The PR also reverts the CI tensordict commit pin, so PRs build against tensordict main again.
[module-level kernels] inductor: scan each subgraph for its own preamble uses (#200519) pytorch/pytorch
The inductor root python wrapper had been deciding which conditional preamble lines to keep by scanning its whole finished module, so module-level kernels inside subgraph code spliced in through define_subgraph_launcher_fn counted as wrapper uses and kept a root import alive. Each subgraph now gets scanned for its own preamble uses.
[module-level kernels] inductor: drop async_compile from a module that compiles nothing (#200520) pytorch/pytorch
Every generated wrapper imported AsyncCompile and closed with async_compile.wait(globals()) plus del async_compile, even for modules that compile nothing; those lines now go through write_if_used keyed on async_compile and disappear when unused. Paired with the subgraph scan fix, this is cleanup of generated output rather than a behavior change.
Action items