$ the-wire · showcase
Helion autotunes Metal, TorchRL stops cacheing constructor device
By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology
Helion brought real autotuning to Metal kernels while TorchRL landed a cluster of correctness fixes to planners, transforms, and TD3 trainer construction.
[metal] Enable autotuning pytorch/helion
Metal previously always used ``config_spec.default_config()``; it now runs the normal search for elementwise, reduction and matmul kernels, which the PR says matters most for matmul since the default 16x16x16 tile barely uses MPP. A Metal-specific benchmarker was needed in ``metal/autotune.py`` because the shared ``do_bench`` is Triton's CUDA-event timer and Triton isn't installed on macOS.
[BugFix] Stop caching constructor device on ModuleTransform and KL transforms pytorch/rl
``ModuleTransform``, ``KLRewardTransform``, and ``RetrieveLogProb`` used to store the constructor ``device`` and recast tensordicts to it at call time, so ``.to("meta")`` moved parameters while ``self.device`` stayed CPU; a later ``.to(device)`` now updates that placement policy, and a dtype-only ``.to()`` leaves it unchanged.
[BugFix] Mask post-done rewards in CEM and MPPI planners pytorch/rl
CEM summed the whole imagined horizon and MPPI rolled out the same way, letting post-``done`` rewards (including auto-reset) leak into the plan score. Both now roll out with ``break_when_any_done=False`` and zero rewards after the first effective environment ``done``, with an ancestor done group taking precedence over its descendants.
[Feature] Promote DoneTransform for group-level done expansion pytorch/rl
VMAS still writes only root done, and this PR does not change that: it promotes the sota ``DoneTransform`` into ``torchrl.envs.transforms`` with NestedKey in/out keys, uses it from the multi-agent PPO tutorial instead of the hand expand, and re-exports it from the sota helper.
[inductor][cpu] Fix the bias device check in _is_packable_linear (#195833) pytorch/pytorch
``_is_packable_linear`` gates CPU weight packing for ``aten.mm``/``aten.addmm`` in the freezing graph patterns, and its ``addmm`` branch checked the bias device against the loop variable ``meta_value`` instead of ``bias_meta_value``. The bias now goes through its own meta value check.
[Testcase Refactoring] Classify sparse qlinear packed params tests as generic (#193177) pytorch/pytorch
On the long tail: ExecuTorch's Arm backend dropped ``--evaluate`` and ``--evaluate_config``, which have been nonfunctional since their deprecation in ExecuTorch 1.2, and Qualcomm's etdump buffer is now freed with ``flatcc_builder_aligned_free`` instead of plain ``free()`` after the flatcc aligned allocator corrupted the CRT heap and segfaulted on Windows.