본문으로 건너뛰기
PyTorch조회 3

PyTorch 2.13 출시: MPS용 FlexAttention, CuTeDSL 백엔드, 메모리 최적화 기능 추가

PyTorch 2.13은 MPS용 FlexAttention과 CuTeDSL 백엔드, nn.LinearCrossEntropyLoss 등으로 학습과 추론 성능 및 메모리 효율을 개선했다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

PyTorch 2.13은 Transformer 계열의 희소 attention을 MPS로 이식한 FlexAttention과 CuTeDSL 네이티브 DSL 백엔드, 예측과 손실 계산을 결합해 피크 메모리를 낮추는 nn.LinearCrossEntropyLoss 등으로 학습·추론 성능과 메모리 효율을 개선했다. FlexAttention은 희소 패턴에서 SDPA 대비 최대 약 12배의 속도 향상을 보고했고 nn.LinearCrossEntropyLoss는 대형 어휘집 학습에서 피크 GPU 메모리를 최대 4배까지 줄이는 설계를 적용했다. torchcomms와 FSDP2의 통신 중첩 기능은 대규모 클러스터 훈련의 장애 허용성과 처리량을 높이는 방향으로 작동하며 ROCm의 AOTriton 0.12b, Armv9-A 타깃, Intel XPU 텔레메트리와 Python 3.15 휠 지원 등 플랫폼 호환성도 함께 확장되었다. 이러한 변화는 PyTorch가 다양한 하드웨어 환경에서 프로덕션급 훈련과 추론을 지원하도록 설계된 진화의 연장선이며 일부 고급 기능은 옵트인이나 환경별 튜닝을 필요로 한다.

섹션별 상세

01
Transformer 계열의 attention 연산은 계산량과 메모리 사용에서 병목이 되는 경우가 많았다. FlexAttention은 희소 패턴에 특화된 attention 연산으로 MPS에 이식되어 희소 패턴에서 기존 SDPA 대비 최대 약 12배의 속도 향상을 보였다. 또한 CUDA에서의 결정론적 backward 경로를 제공하여 기울기 재현성과 디버깅을 개선했다. 이러한 변화는 Apple Silicon 기반 환경에서 대규모 언어모델 추론과 개발 반복 속도를 크게 높일 수 있다.
02
Inductor는 PyTorch의 주요 컴파일러 백엔드로서 GPU 연산을 네이티브 코드로 변환하여 실행 성능을 끌어올리는 역할을 해왔다. 이번 릴리스에서는 CuTeDSL이라는 ‘네이티브 DSL’ 백엔드가 추가되어 Triton과 병행하는 두 번째 고성능 코드 경로를 제공하며 일부 핵심 GPU 연산에서 더 빠른 컴파일 시간을 확보했다. 이 백엔드는 특정 연산 패턴에서 컴파일 및 실행 지연을 줄여 개발자와 프로덕션 환경에서 전반적인 처리량을 개선할 수 있다. 결과적으로 다양한 하드웨어·연산 특성에 맞춘 백엔드 선택이 유연해졌다.
03
대형 어휘집을 가진 언어모델 학습에서는 예측 결과와 손실 계산을 별도로 처리하면 GPU 피크 메모리가 급증하는 문제가 있었다. nn.LinearCrossEntropyLoss는 최종 예측과 손실 계산 연산을 결합하여 메모리 사용 피크를 최대 4배까지 줄일 수 있도록 설계되었다. 이 접근법은 출력 층과 손실 함수의 중복 버퍼를 제거함으로써 실질적인 배치 크기 증가 또는 더 큰 어휘집 처리가 가능해진다는 근거를 제공한다. 따라서 대규모 언어모델 학습에서 GPU 자원 한계를 완화하는 데 직접적 이점이 있다.
04
대규모 클러스터 학습에서는 통신 장애와 확장성, 디버깅의 어려움이 학습 안정성과 처리량을 저해해왔다. torchcomms는 PyTorch Distributed를 위한 새로운 통신 백엔드로서 장애 허용성, 확장성 및 디버깅 용이성을 개선하도록 설계되었고, FSDP2는 전용 프로세스 그룹을 통해 reduce-scatter와 all-gather 통신을 중첩하는 옵트인 기능을 제공하여 분산 학습의 처리량을 증가시킨다. 통신과 계산의 중첩은 통신 대기 시간을 줄여 클러스터 자원을 더 효율적으로 활용하게 하며, 결과적으로 대규모 훈련 작업의 완주 시간을 단축시킬 가능성이 있다. 다만 FSDP2의 중첩 기능은 옵트인 형태로 제공되므로 환경별 테스트와 튜닝이 필요하다.
05
플랫폼 및 언어 지원 측면에서는 다양한 하드웨어 타깃과 최신 파이썬 버전 호환성이 강화되었다. ROCm에는 AOTriton 0.12b와 native HIP CMake가 추가되었고 Arm은 Armv9-A를 대상으로 한 torch.compile 타깃을 추가했으며 Intel XPU는 새로운 디바이스 텔레메트리 API를 노출했다. 또한 리눅스용 Torch 휠이 Python 3.15를 지원하고 빌드는 free-threaded 3.15t와 호환된다는 점이 명시되었다. 이번 릴리스는 2.12 이후 3,328개의 커밋과 526명의 기여로 구성되어 PyTorch의 연구 중심에서 생산·하드웨어 중립 플랫폼으로의 진화를 이어가고 있음을 보여준다.

용어 해설

Apple MPS(MPS)
Apple의 Metal Performance Shaders(MPS)는 GPU 가속 계산을 위한 라이브러리로, PyTorch에서는 Apple Silicon에서의 고성능 연산 엔진으로 동작하여 모델 추론과 학습을 가속화한다. MPS는 Metal API 위에서 동작하며 CPU-유사 연산 패턴을 GPU로 효율적으로 매핑하는 최적화와 메모리 관리가 중요하다. PyTorch 2.13에서는 FlexAttention이 MPS에 이식되어 Transformer 계열의 희소 패턴에서 성능 향상을 목표로 한다.
Inductor
Inductor는 PyTorch의 컴파일러/백엔드 중 하나로, 모델 연산을 GPU 네이티브 코드로 변환하여 실행 성능과 컴파일 효율을 개선하는 역할을 한다. Inductor는 기존 Triton 기반 경로 외에 CuTeDSL 같은 추가 네이티브 DSL 백엔드를 통해 중요한 GPU 연산에 대해 서로 다른 최적화 경로를 제공한다. 이러한 다중 백엔드는 특정 연산에 대해 더 빠른 컴파일 시간이나 실행 성능을 확보하는 데 유용하다.
Fully Sharded Data Parallel (FSDP2)(FSDP2)
FSDP2는 모델 파라미터를 샤딩하여 대규모 분산 학습 시 메모리 사용을 낮추고 통신을 최적화하는 기법으로, PyTorch의 분산 학습 스택에서 통신-계산 중첩과 프로세스 그룹 관리를 통해 처리량을 높이는 것이 핵심이다. 2.13에서는 전용 프로세스 그룹을 통해 reduce-scatter와 all-gather 통신을 중첩하는 opt-in 기능으로 분산 처리의 유휴 시간을 줄인다. 이로 인해 대규모 클러스터에서 학습 처리량이 증가할 수 있다.
AOTriton
AOTriton은 Triton을 이용한 Ahead-Of-Time 컴파일 기법으로, GPU용 커널을 사전에 생성하여 런타임 오버헤드를 줄이는 목적을 가진다. ROCm 환경에서 AOTriton 0.12b와 native HIP CMake 지원이 추가되면 AMD 기반 시스템에서 Triton 커널의 빌드와 통합이 더 원활해진다. 이는 다양한 하드웨어 타깃에서 동일한 커널을 보다 안정적으로 배포하려는 노력의 일부이다.

기술

  • MPS
  • CUDA
  • Inductor
  • Triton
  • CuTeDSL
  • FSDP2
  • Python 3.15
  • ROCm
  • AOTriton
  • Intel XPU

활용 사례

  • 대규모 분산 학습 처리량 향상
  • 대용량 어휘집 언어모델의 메모리 최적화 학습
  • Apple Silicon에서 Transformer 추론 가속
  • GPU 백엔드별 컴파일·실행 최적화 비교
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 07. 09.수집 2026. 07. 09.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.