P

PyTorch

P
PyTorch AI

trunk/45a8b7abd8d7db7dcb497f97e321bc32890b5664: Fix non-strict export of vmap tensor indexing (#186894)

Non-strict export rewrites scalar tensor indices in getitem through select/slice helpers, and the scalar-index path converted 0-d integer tensor indices with item(). Under vmap those logical scalar indices are BatchedTensor values, where item() is unsupported, so export failed before regular tensor indexing could lower the operation. Skip the scalar-index rewrite when the index is a functorch Batc…

P
PyTorch AI

trunk/80a802e49932d20c6b2539dc6cab6cc8d0dd04cc: Log multi-device backward passes via C10_LOG_API_USAGE_ONCE (#192081)

Add once-per-process API usage logs for backward passes, split by the set of devices they span, so we can assess how much real workloads rely on multithreaded autograd before changing its default. The check walks the graph roots in compute_dependencies and emits two independent signals that may both fire for the same pass: torch.autograd.multidevice_backward when two distinct non-CPU devices are o…

P
PyTorch AI

trunk/14f9b39fbe12c65090a383a8e5d50e22cb2307c9: [c10d][nccl2] Complete nonblocking communicator creation (#192273)

nccl2 treated ncclInProgress from split and shrink as an immediate failure, and NCCL 2.28 communicator hints were hidden behind an unreachable preprocessor branch. Poll the parent and returned child within one timeout budget, abort both communicators in NVIDIA-required order after a failed nonblocking split, and make the newer hints reachable. The parent is marked unusable after failed creation be…