PyTorch 2.9 개요
지난 주(2025년 10월 15일), PyTorch 팀은 PyTorch 2.9를 중심으로 한 대규모 생태계 업데이트를 공식 발표했습니다. 이번 릴리스는 단순한 버전 업그레이드가 아니라, PyTorch가 오픈소스 딥러닝 프레임워크로서 구축해온 기반 위에 성능, 호환성, 멀티플랫폼 통합, 그리고 멀티모달 지원을 본격적으로 강화한 중요한 이정표입니다.
이번 PyTorch 2.9 릴리즈에는 코어(PyTorch Core) 외에도 Domain API인 TorchAudio 2.9 및 TorchVision 0.24가 함께 구성되어 있으며, 각각의 모듈이 독립적이면서도 유기적으로 연결되어 PyTorch 생태계를 완성합니다.
PyTorch 2.9는 총 452명의 기여자(Contributor) 의 3216개의 커밋(Commit) 이 반영된 대규모 릴리스입니다. 이번 버전의 개발 방향은 다음 네 가지로 요약할 수 있습니다:
첫째, 멀티 하드웨어 및 플랫폼 간의 호환성 강화입니다. NVIDIA CUDA, AMD ROCm, Intel XPU, ARM 아키텍처 등 다양한 환경에서 동일한 PyTorch 코드가 안정적으로 동작하도록 WheelNext 기반의 변형 휠(variant wheel)을 지원합니다.
둘째, 컴파일러(torch.compile)의 안정화 및 세밀한 제어 기능 추가입니다. 그래프 기반 실행의 안정성을 확보하고, 디버깅 및 성능 조정이 가능한 구조로 개선되었습니다.
셋째, 분산 학습 및 대규모 모델 추론(LLM) 최적화입니다. Symmetric Memory 기능을 통해 GPU 간 초저지연 메모리 통신이 가능해졌으며, Flash Decoding과 FlexAttention이 CPU와 Intel GPU로 확대되어 멀티 하드웨어 환경에서도 고성능 추론이 가능합니다.
넷째, TorchAudio, TorchVision, TorchCodec과의 생태계 통합 강화입니다. 오디오, 이미지, 비디오, 텍스트 등 다양한 입력 데이터를 공통 인코딩 파이프라인에서 처리할 수 있는 기반이 마련되었습니다.
이러한 방향성은 PyTorch가 단순한 딥러닝 프레임워크를 넘어, 범용 AI 플랫폼으로의 확장을 목표로 하고 있음을 보여줍니다.
PyTorch 2.9의 주요 기능
아래 기능들은 아직 안정적이지 않은 API들(API-Unstable)로, 향후 버전에서 변경될 수 있습니다.
안정적 libtorch ABI 확립
이번 릴리스의 핵심 중 하나는 libtorch ABI(Application Binary Interface) 의 안정화입니다. PyTorch는 오랫동안 C++과 CUDA 기반의 확장 모듈 개발자들이 버전 간 호환성 문제로 어려움을 겪어왔습니다. 2.9에서는 이러한 문제를 해결하기 위해 torch::stable::Tensor API가 대폭 확장되었습니다.
새로운 ABI는 C++ 및 CUDA 확장 모듈을 특정 PyTorch 버전에서 빌드하더라도, ABI가 유지되는 한 이후 버전에서도 동일하게 동작할 수 있도록 보장합니다. 예를 들어 Flash-Attention 3 라이브러리는 이번에 새롭게 공개된 안정적 ABI를 기반으로 PyTorch 2.9 버전에서 공식 지원되며, 향후 버전에서도 재빌드 없이 그대로 사용할 수 있습니다.
API 측면에서 보면, is_cpu, scalar_type, get_device_index 등 텐서 속성을 안전하게 확인할 수 있는 기능들이 추가되었고, amax, narrow, pad 같은 ATen 연산들도 안정적인 ABI 인터페이스로 포함되었습니다. 이러한 변화는 연구 환경뿐만 아니라 산업용 시스템에서 PyTorch를 내장형 C++ 런타임으로 사용하는 경우에도 큰 이점을 제공할 것으로 보입니다.
Symmetric Memory: 다중 GPU 메모리 접근 혁신
Symmetric Memory는 PyTorch 2.9의 가장 기술적으로 주목할 만한 기능 중 하나로, 여러 GPU들이 서로 **직접적인 메모리 접근(Direct Memory Access)**을 가능하게 합니다. 기존에는 GPU 간 통신이 드라이버 계층을 통해 비동기적으로 이루어졌지만, Symmetric Memory는 이를 GPU 커널 내부로 통합함으로써 통신과 연산을 하나의 커널에서 융합할 수 있게 합니다.
이러한 직접적인 메모리 접근 기능은 NVLink나 RDMA 네트워크 같은 고속 통신 채널 위에서 작동하며, GPU가 다른 GPU의 메모리를 직접 접근할 수 있도록 허용합니다. 즉, 하나의 GPU에서 연산 중인 커널이 다른 GPU의 메모리에 접근하거나 결과를 기록할 수 있으며, 이를 통해 기존의 all_reduce, all_to_all 등과 같은 집단 통신 연산을 훨씬 더 효율적으로 수행할 수 있습니다.
PyTorch는 이번 릴리스에서 torch.ops.symm_mem 네임스페이스 아래에 여러 Symmetric Memory 기반 연산을 추가했습니다. 예를 들어, one_shot_all_reduce, all_to_all_vdev, all_to_all_vdev_2d 같은 연산은 분산 모델 학습에서 토큰 분배나 결과 결합을 위한 통신을 가속화합니다. 특히 MoE(Mixture of Experts) 모델처럼 토큰을 GPU 간 교환해야 하는 구조에서 이 기능은 성능을 극적으로 개선할 수 있습니다.
Symmetric Memory는 단순한 기능 추가가 아니라, PyTorch가 GPU 간 병렬성의 경계를 넘어 **“GPU 클러스터를 하나의 거대한 메모리 공간처럼 활용할 수 있는 기반”**을 제공했다는 점에서 의미가 큽니다.
torch.compile()의 세밀한 제어 기능 추가
PyTorch 2.9에서는 컴파일러(torch.compile)의 제어 수준 또한 대폭 향상시켰습니다. 특히 torch._dynamo.error_on_graph_break() API의 도입은 컴파일된 코드 내에서 그래프 브레이크 발생 시 동작 방식을 유연하게 조정할 수 있도록 합니다.
기존에는 fullgraph 모드로 전체 그래프를 컴파일할지, 혹은 일부를 제외할지를 전역적으로 결정해야 했지만, 이제는 코드의 특정 구간별로 “그래프 브레이크 시 에러 발생” 혹은 “자동 재개”를 선택적으로 지정할 수 있습니다. 이 기능은 복잡한 모델의 부분적인 컴파일 최적화를 시도할 때 매우 유용하며, 디버깅 단계에서도 오류를 보다 명확하게 추적할 수 있게 합니다.
결과적으로, 이 변경은 컴파일 기반 실행의 안정성과 제어력을 높이는 동시에, 사용자에게 **“PyTorch를 완전한 동적-정적 하이브리드 프레임워크로 활용할 수 있는 자유도”**를 제공합니다. 더 자세한 내용은 관련 튜토리얼을 참고해주세요.
Wheel Variant 지원 확대: ROCm, XPU, CUDA 13
PyTorch 2.9는 WheelNext 이니셔티브를 통해 하드웨어별 최적화 빌드 시스템을 도입하여, 이전 버전인 2.8에서 도입되었던 Wheel Variant 기능의 지원을 확대하였습니다. 이제 동일한 pip install torch 명령어를 실행하면, 사용자의 시스템의 설정을 자동 인식하여, 적합한 환경에서 빌드된 바이너리를 다운로드 및 설치할 수 있습니다.
이번 버전에서는 NVIDIA CUDA 13, AMD ROCm, Intel XPU 환경에 대한 공식적인 Wheel Variant가 추가되었으며, 각 플랫폼의 드라이버 및 장치 정보를 감지해 최적의 바이너리를 자동으로 선택합니다. 이러한 통합된 배포 방식은 개발자가 하드웨어별로 복잡한 빌드 절차를 거칠 필요 없이 동일한 PyTorch API를 사용할 수 있게 해줍니다. WheelNext는 아직 실험적인 기능으로, 현재는 Linux 환경에서 가장 안정적으로 작동합니다. 하지만 이 기술이 성숙되면, PyTorch는 Python 패키징 생태계에서 가장 하드웨어 친화적인 배포 모델을 갖게 될 것으로 예상됩니다.
이 기능에 대해서는 PyTorch Conference 2025에서 진행될 Jonathan Dekhtiar(NVIDIA) 및 Eli Uriegas(Meta)의 발표를 참고해주세요. 현재 이 기능은 실험적인 기능으로, (현재 작업 중인) wheel variants proposal에 기반하고 있습니다.
FlexAttention 및 Flash Decoding 확장
LLM(대규모 언어 모델) 추론의 효율성을 높이기 위해 도입된 FlexAttention 기능은 이번 버전에서 Intel GPU까지 지원이 확대되었습니다. 이로써 CUDA 전용 최적화로 제한되었던 어텐션(Attention) 연산이, Intel GPU를 포함한 다양한 가속기 환경에서 동일한 방식으로 동작할 수 있게 되었습니다.
또한, CPU 기반 추론 환경에서도 Flash Decoding 기능이 추가되어, X86 아키텍처에서 긴 시퀀스를 처리할 때 병렬 처리가 더욱 효율적으로 이루어집니다. 특히, 배치 크기나 헤드 수가 작고, KV 시퀀스 길이가 긴 경우에 이 최적화의 효과가 두드러지며, CPU 자원 활용률을 크게 향상시킵니다.
이러한 개선 사항들은 PyTorch가 GPU 중심의 프레임워크에서 벗어나, CPU와 GPU가 모두 효율적으로 작동하는 균형 잡힌 연산 생태계를 지향하고 있음을 보여줍니다.
ARM 플랫폼 최적화
지금까지 살펴본 기능들 외에도, PyTorch 2.9에서는 ARM 아키텍처에서의 성능 향상을 위해 상당한 노력을 기울였습니다. 특히 AWS Graviton4와 같은 Arm Neoverse V2 기반 인스턴스에서 PyTorch의 빌드와 테스트 자동화(CI)가 완전하게 지원되기 시작했습니다.
torch.compile 모드의 성능이 기존 Eager 모드보다 빠른 결과를 보였으며, 컨볼루션(convolution), 활성화(activation), 정규화(quantized) 연산 등 주요 연산들이 AArch64 환경에서 최적화되었습니다. 이에 대한 결과는 PyTorch HUD Dashboard를 참고해주세요.
PyTorch Domain APIs
TorchAudio 2.9: TorchCodec 통합 기반 오디오 파이프라인
PyTorch 2.9와 함께 릴리즈된 TorchAudio 2.9는 PyTorch 생태계의 멀티미디어 통합 전략의 핵심을 보여주고 있습니다. 이번 버전에서는 torchaudio.load() 및 torchaudio.save() 가 동일한 인터페이스를 유지하면서도, 내부적으로 TorchCodec이라는 새로운 모듈을 기반으로 동작하도록 변경되었습니다.
TorchCodec은 PyTorch 내부에서 오디오, 비디오, 이미지 데이터를 동일한 방식으로 디코딩하고 인코딩할 수 있도록 하는 프로젝트로, 향후 TorchVision과 PyTorch Core에도 통합될 예정입니다. 이로써 오디오 입출력의 성능이 향상되었을 뿐 아니라, 앞으로 비디오 및 이미지 처리도 동일한 구조로 통합되어 멀티모달 데이터 처리 시의 일관성이 확보됩니다.
또한 이번 버전에서는 오래된 API들이 정리되었고, C++ 및 CUDA 기반 오디오 확장 모듈(lfilter, RNNT, CUCTC, forced_align, overdrive 등)이 점진적으로 libtorch ABI 기반으로 이관되고 있습니다.
TorchVision 0.24: KeyPoint & Rotated Box 정밀도 향상
TorchVision 0.24에서는 데이터 변환(transform)과 시각화 기능이 대폭 강화되었습니다. 특히 객체 탐지 및 포즈 인식 모델에서 중요한 역할을 하는 KeyPoint 변환 및 회전 박스(Rotated Box) 처리가 정밀해졌습니다.
또한 AVX512를 활용한 resize 변환 가속화(#9190), uint8 이미지 포맷을 지원하는 GaussianNoise(#9169), 라벨 텍스트 박스의 배경색 지정(#9204) 등 세부적인 품질 개선이 다수 이루어졌습니다. 비디오 처리 영역에서는 구식 video_reader 백엔드가 제거되고, 향후 TorchCodec 기반의 비디오 입출력 시스템으로 완전히 전환될 예정입니다.
PyTorch 2.9 공개 블로그
PyTorch 2.9 릴리즈 페이지
TorchAudio 2.9 릴리즈 페이지
TorchVision 0.24 릴리즈 페이지
TorchCodec 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()
