$ cat pytorch/week/2026-11-02.log
the week in review · Nov 2 – Nov 8, 2026
Inductor gains a flag to turn off FMA contraction
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
ExecuTorch fixes a two-thread deadlock, mixed-dtype cat, and host thread oversubscription, while mem-efficient SDPA moves to int64 key/value offsets.
[inductor] Add triton.enable_fp_fusion flag to turn off FMA contraction (#202218) (#202218) pytorch/pytorch
With triton.autotune_pointwise=True, a 1D pointwise kernel gets two autotune candidates, and the one autotuning picks changes the bits. The new triton.enable_fp_fusion flag lets you disable FMA contraction so the same kernel reproduces the same numerics regardless of config, which matters when you are chasing a bit-level diff between two runs.
Python runtime: stop a backend's log from deadlocking 2 threads pytorch/executorch
Two threads could hang forever when a backend logs while holding a lock, which XNNPACK does when a load fails: the log write releases the GIL and lets the other thread in. If you run ExecuTorch with a XNNPACK backend from Python, this is the failure mode that showed up as a wedge with no traceback.
[SDPA] Fix 32-bit key/value offset overflow in mem-efficient attention (#203345) pytorch/pytorch
Per-key-block offsets in mem_eff_attention/kernel_forward.h were int32, so attention over long sequences produced wrong results past the 32-bit key/value offset boundary. The fix removes the int32s from the memory-efficient kernel; long-context workloads on that backend were silently wrong before it.
Limit the default thread pool to the allowed CPUs on Linux (not Android) pytorch/executorch
The default ExecuTorch thread pool started one thread per CPU on the machine even when the process was restricted by taskset or a container CPU set, and the contention made a small XNNPACK model 1.4x slower. The pool is now bounded to allowed CPUs on Linux (Android excluded), which changes thread counts for anyone running under a CPU set.
Fix mixed-dtype cat and stack in to_edge and the edge check pytorch/executorch
torch.cat promotes mixed dtypes, but to_edge raised SpecViolationError on the same program. Export now handles the promotion in to_edge and the edge check, so graphs that combined bfloat16 and float32 tensors no longer fail at the edge boundary.
[Feature] export_onnx_policy: export TensorDict policies to ONNX with torch.onnx.export pytorch/rl
torchrl.modules.export_onnx_policy(policy, path, example, *, out_keys=None, opset_version=18) exports TensorDict policies through torch.onnx.export. It follows the ExecuTorch fix below in timing but stands on its own as the path to getting a trained policy out of Python.
[Loss] Preserve caller FSDP policies across chunked backward (#5563) pytorch/torchtitan
ChunkedLossWrapper restores head sync unconditionally on the final chunk, overwriting the FSDP and HSDP accumulation policies the caller set. Torchtitan now preserves them across chunked backward, which matters to anyone combining chunked loss with FSDP2 sharding.
[mobile] Bounds-check operator index in applyUpgrader (#202626) pytorch/pytorch
applyUpgrader() in parse_bytecode.cpp indexed the operator table without a bounds check. The patch closes that and is the period's only security-adjacent change; the author's own note calls it one that "shouldn't really matter for anything."
$ ls pytorch/week/ # the briefings behind this review
Keep up with PyTorch in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.
Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.