PyTorch 2.15 has shipped with a rewritten backend for Nvidia's NCCL communication library, built so that a single misbehaving GPU does not force a large training job to start over from scratch.
Tristan Rice, a PyTorch core developer and Meta engineer, said during a livestream on November 5 that the old networking interface had piled up technical debt. The legacy ProcessGroupNCCL could create dozens of communicators per process group, which led to occasional deadlocks and erratic performance.
The new backend creates one communicator per process group at initialization, removing interference between communicators. Teams that want more parallelism need to create more process groups. If a GPU crashes or slows down, an outside orchestrator can drop it and assign a replacement worker.
A flight recorder logs every operation as a series of snapshots that administrators can inspect after a failure. Before, stalls caused by timeouts or deadlocks often left only a generic error.