PyTorch 2.15는 재작성한 NCCL 백엔드를 기본값으로 바꾸고, 분산 학습의 멈춤을 기록하는 기능과 FSDP2·파이프라인 병렬 처리의 메모리·통신 제어 기능을 추가했다. Apple Silicon, AMD·Intel GPU 지원도 확장했으며 Python 3.11~3.15를 지원한다. 릴리스 노트

분산 학습과 추론

nccl 프로세스 그룹은 이제 재작성된 NCCL 백엔드를 사용한다. 이전 백엔드로 되돌리려면 TORCH_DIST_USE_NCCL2=0을 설정하거나 nccl-legacy를 선택할 수 있다. 집단 통신이 멈추면 각 랭크의 상태를 디스크에 기록하는 플라이트 레코더도 제공한다. ROCm에서는 RCCL 2.30.7부터 장애 대응을 위한 재구성을 지원한다.

torch.distributed에는 NIXL을 첫 백엔드로 하는 단방향 데이터 전송 API가 추가됐다. 프로세스 그룹이나 집단 통신 없이 저장소를 통해 피어에 연결하며, 전송을 CUDA 스트림에 등록해 torch.cuda.graph로 캡처할 수 있다.

FSDP2는 일부 정밀도 민감 매개변수를 fp32로 유지하면서 나머지를 bf16으로 학습하는 설정을 제공한다. 그래디언트 누적 단계 전체를 CUDA 그래프로 캡처할 수 있고, 그래디언트 정밀도도 매개변수별로 설정할 수 있다. 파이프라인 병렬 처리는 수신 버퍼를 필요한 시점에 할당하고, 전송이 끝난 순전파 출력을 해제하며, 계산과 그래디언트 축소를 겹쳐 실행하도록 개선됐다. 관련 API는 불안정 상태로 표시돼 있다.

하드웨어와 성능 변경

Apple Silicon의 MPS는 torch.float8_e4m3fn, _scaled_mm와 공개 스트림 API를 지원한다. MPS용 grouped_mm의 디코드 경로는 M3 Ultra에서 MoE 디코드 처리량이 1.32~1.34배 높았다고 PyTorch는 밝혔다. F.linear는 기하평균 기준 1.23배 빨라졌으며, 512 × 512 행렬 QR 계산은 약 7초에서 1.5ms로 단축됐다고 릴리스 글은 설명한다. 이 수치는 해당 글에 제시된 측정 결과다.

NVIDIA Blackwell에서는 NVGEMM이 NVFP4 디코드 과정의 별도 연산을 줄이고 커널 실행을 겹치도록 개선됐다. AMD gfx950에서는 FlyDSL 커널을 사용할 수 있으며 FlyDSL 0.3.x가 필요하다. gfx1250(MI450)에는 Tensor Data Mover 지원이 추가됐고, 이는 야간 빌드의 지원 아키텍처 목록에 포함됐다.

Intel GPU용 XPU 백엔드는 SYCL 자유 함수 커널을 지원한다. 이벤트를 프로세스 간 공유하는 기능과 메모리 할당 정책도 추가됐으며, 다중 GPU 작업에서 커널별 하드웨어 카운터를 수집하고 XCCL 집단 통신을 교차 랭크로 분석할 수 있다.

설치·호환성

기본 PyTorch 휠은 CUDA 13.2(툴킷 13.2.2)를 사용한다. CUDA 13.4 정식 휠도 Linux x86_64·Linux aarch64·Windows용으로 제공되며, NVIDIA Rubin GPU 지원은 실험 단계다. ROCm 10.0 휠은 기존 ROCm 7.14 휠과 함께 제공된다. ROCm 휠은 AMD TheRock 패키지로 빌드되며 ROCm 라이브러리를 포함하는 대신 해당 ROCm 패키지를 pip 의존성으로 설치한다.

PyTorch 2.15는 Python 3.11~3.15를 지원하고, 자유 스레드 빌드인 3.14t·3.15t도 포함한다. torch.compile은 Python 3.15를 지원한다. Python 3.10은 지원 대상에서 제외돼 휠을 빌드하지 않고 CI 테스트도 하지 않는다. MPS 가속에는 macOS 15 이상이 필요하다. macOS 14에서도 실행될 수 있지만 테스트하지 않으며, 해당 환경의 문제는 수정하지 않는다고 PyTorch는 밝혔다.

이번 릴리스에는 PyTorch 2.14 이후 583명의 기여자가 참여한 3,117개 커밋이 포함됐다. 로컬 설치 시작 안내에서 시작 방법을 확인할 수 있다.