$ the-wire · showcase
AOTI fallback fixes, Vulkan reductions stop clamping, Dist-MoE gets a TorchTitan adapter
By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology
Inductor's lite-mode AOTI path picked up two codegen fixes for cond/while_loop models, Executorch's Vulkan backend stopped saturating fp32 reductions at 65504, and TorchTitan's Dist-MoE integration landed as a three-part stack.
[Vulkan] Stop clamping per-row reductions and propagate NaN pytorch/executorch
A preprocessor guard written as `#if T == float16_t` compared two undeclared names, so the preprocessor evaluated 0 against 0 and the clamp never turned off. Per-row buffer sum, mean, amax and amin were therefore saturating fp32 results at 65504, including generated int32 shader variants; with the clamp removed, single-dimension texture and per-row buffer amax and amin now propagate NaN instead...
[1/2][test] Extract cuda-specific tests from `TestCppExtensionJIT` into `TestCppExtensionJITCUDA` in `test_cpp_extensions_jit.py`. (#196222) pytorch/pytorch
The refactor splits device-specific cases out of `TestCppExtensionJIT` into a new `TestCppExtensionJITCUDA` class in `test_cpp_extensions_jit.py`, following the current test refactoring guidelines. It is split into two commits, the first of which reorders functions without changing behavior, so the actual extraction is reviewable on its own.
[inductor] Register subgraph constants in root allocated_constant_name (#199188) pytorch/pytorch
Under TORCHINDUCTOR_LITE_MODE=1, AOTI compilation of cond/while_loop models with tensor constants in subgraphs failed with `AssertionError: Can not find the original value for while_loop_body_graph_0_constant0`. The fix registers those subgraph constants in the root graph's `allocated_constant_name`, connecting them to the machinery that attaches constants to the output.
[inductor] AOTI: pass symbolic scalars in Tensor args to proxy-executor fallbacks (#199204) pytorch/pytorch
`test_while_loop_with_sym_expr_cond` had been failing AOTI codegen in the inductor_aoti_fallback config since that config was added, with `AssertionError: got <class 'torch.SymInt'>`. The model adds an unbacked SymInt to an int64 tensor, lowering to `aten.add.Tensor(tensor, u0)`, and symbolic scalars inside Tensor args now reach proxy-executor fallbacks; the test is removed from LITE_MODE_TEST_...
[dist_moe] Add the TorchTitan backend adapter pytorch/torchtitan
The adapter wires the standalone dist-moe package into TorchTitan against its current model-transform and FSDP contracts, eager pipeline execution, and GraphPP tracing. It is the bottom of a three-PR stack alongside DeepSeek V3 recipes and a user-facing integration guide under `torchtitan/models/common/dist_moe/README.md`.