PyTorch 2.12가 조용히 CUDA 독점에 균열을 냈다: linalg.eigh 100배 가속과 TorchTPU

PyTorch 2.12의 cuSolver 기반 linalg.eigh 100배 가속, torch.compile 컴파일러 파이프라인, Google-Meta TorchTPU 협력을 이기종 가속기 지원 아키텍처 관점에서 분석한다.

2026-08-14 · 최초 발행 2026-05-17

torch.compile이 지나가는 길

2026년 5월 13일 릴리스된 PyTorch 2.12는 배치 처리된 CUDA linalg.eigh 연산에서 최대 100배 속도 향상을 달성하며 ML 학습·추론 파이프라인에 실질적인 성능 도약을 제공한다. 동시에 Google과 Meta의 TorchTPU 협력 프로젝트가 PyTorch를 TPU에서도 네이티브에 가깝게 실행할 수 있도록 지원하며, NVIDIA CUDA 독점 생태계에 도전장을 내밀었다. 이 릴리스는 컴파일러 파이프라인 성숙, 이기종 가속기 지원 확대, 생태계 호환성 강화라는 축을 중심으로 PyTorch 생태계의 새로운 단계를 열고 있다.

PyTorch 2.x의 핵심 컴파일러 스택은 torch.compile → TorchDynamo → TorchInductor → 가속기별 커널 생성의 계층 구조로 구성된다. torch.compile은 Python 바이트코드를 추적해 연산 그래프를 캡처하고, TorchInductor가 이를 최적화된 C++/CUDA/Triton 커널로 변환한다.

Python 모델 코드torch.compileTorchDynamo(바이트코드 추적·그래프 캡처)중간 표현 IR(FX Graph)TorchInductor(연산 융합·최적화)가속기 백엔드 선택CUDA 백엔드(Triton 커널 생성)TPU 백엔드(TorchTPU / XLA)ROCm 백엔드(HIP 커널)CPU 백엔드(OpenMP / AVX)GPU 실행TPU 실행AMD GPU 실행CPU 실행

2.12에서 torch.compile은 옵티마이저 집약 학습 루프에서 수치 재현성을 유지하면서도 컴파일된 성능을 제공한다. 이는 NVIDIA와 Intel 하드웨어 모두에서 적용된다.

수 분에서 수 초로 줄어든 고유값 분해

torch.linalg.eigh는 대칭 또는 에르미트 행렬의 고유값과 고유벡터를 계산하는 연산으로, 주성분분석(PCA), 스펙트럼 군집화, 공분산 행렬 분해 등에서 광범위하게 사용된다. 기존에는 MAGMA 백엔드가 기본으로 사용되었는데, 배치 처리 성능에서 심각한 병목이 존재했다.

PyTorch 2.12는 MAGMA 백엔드를 레거시로 전환하고 cuSolver를 기본 백엔드로 채택하였다. cuSolver의 syevj_batched 커널은 다수의 소형·중형 행렬을 단일 GPU 연산으로 일괄 처리하도록 설계되어 있다. 이전에 수 분이 소요되던 배치 고유값 분해 워크로드가 이제 수 초 내에 완료된다.

배치 입력(N × M × M 행렬)PyTorch 2.12 이전PyTorch 2.12 이후MAGMA 백엔드순차 처리수분 소요(병목 존재)cuSolver syevj_batched병렬 일괄 처리수초 완료(최대 100× 가속)PCA / 스펙트럼 군집화학습 파이프라인

cuSolver 디스패치 휴리스틱을 syevj_batched를 무조건 사용하도록 업데이트한 결과, 이전 릴리스 대비 최대 100배 속도 향상이 달성되었다.

TorchInductor는 여러 개의 점별 연산(Elementwise Operation)을 단일 CUDA 커널로 융합해 메모리 대역폭 병목을 줄인다. 예를 들어 relu(linear(x) + bias) 패턴은 별도의 세 커널 대신 하나의 융합 커널로 실행된다. 2.12에서는 torch.cond 제어 흐름이 CUDA 그래프 내에서도 지원되어, 조건 분기를 포함한 모델에서도 CUDA 그래프 가속이 가능해졌다. 새로운 torch.accelerator.Graph API는 CUDA, XPU(Intel), 서드파티 백엔드 전반에 걸쳐 그래프 캡처와 재실행을 통합된 인터페이스로 제공한다. 이전에는 CUDA 그래프와 다른 가속기 그래프를 별도 API로 관리해야 했으나, 통합 API로 코드 이식성이 크게 향상되었다.

Google과 Meta가 함께 CUDA 벽에 균열을 내는 방식

TorchTPU 프로젝트는 Google의 TPU 하드웨어를 PyTorch에서 네이티브에 가깝게 실행할 수 있도록 지원하는 소프트웨어 레이어다. Google이 주도하고 Meta가 적극 협력하는 이 프로젝트의 전략적 목표는 NVIDIA CUDA 생태계의 소프트웨어 독점에 균열을 내는 것이다. Meta는 2026년부터 TPU 클라우드 임대를 탐색하고 있으며, 2027년에는 온프레미스 TPU 배포를 검토 중이다. PyTorch가 TPU에서 원활하게 동작한다면, Meta는 NVIDIA GPU 외 대안 가속기로 인프라 비용을 절감할 수 있다. Google 입장에서도 PyTorch 호환성을 확보하면 TPU 고객 기반을 ML 커뮤니티 전반으로 확장할 수 있다.

2.12에서 ROCm(AMD GPU) 사용자는 세 가지 개선을 얻었다. 확장 가능한 메모리 세그먼트(Expandable Memory Segments)로 GPU 메모리 단편화가 줄었고, rocSHMEM 대칭 메모리 집합 연산으로 다중 GPU 통신 대역폭이 향상되었으며, FlexAttention 파이프라이닝으로 어텐션 연산의 오버랩 실행이 가능해졌다.

PyTorch 2.12이기종 컴퓨팅 지원NVIDIA GPUCUDA 13.2 (CUDA 12.8deprecated)AMD GPUROCm 백엔드Google TPUTorchTPU / XLAIntel XPUtorch.accelerator.GraphcuSolver linalg.eigh 100×torch.cond CUDA GraphMX 양자화 저장expandable 메모리rocSHMEM 집합 통신FlexAttention 파이프라이닝네이티브 PyTorch 연산XLA JIT 컴파일Google Cloud TPU v5 최적화통합 그래프 캡처 API크로스 백엔드 이식성

torch.export.save가 Microscaling(MX) 양자화 형식을 지원하게 되었다. MX 형식은 MXFP8, MXFP6, MXFP4 등 서브바이트 정밀도를 활용해 모델 크기와 추론 지연을 대폭 줄이면서 허용 가능한 정확도 손실을 유지하는 방식이다. 이는 엣지 디바이스나 비용 민감한 추론 환경에서 특히 유용하다. 혼합 정밀도 학습(Mixed Precision Training) 측면에서 torch.amp 자동 캐스팅 로직도 개선되어 BFloat16과 FP8 혼용 시 수치 안정성이 향상되었고, Adagrad 옵티마이저의 fused=True 지원도 추가돼 옵티마이저 단계에서의 커널 융합이 가능해졌다. 대규모 분산 학습에서는 torch.distributed 스택의 안정성과 성능이 개선되었다. FSDP2(Fully Sharded Data Parallel 2)는 모델 파라미터를 여러 GPU에 샤딩해 수백억 파라미터 모델 학습을 단일 노드에서 가능하게 하며, Pipeline Parallelism과 Tensor Parallelism의 조합도 더욱 간결한 API로 설정할 수 있게 되었다.

PyTorch가 TensorFlow의 자리를 대신하는 속도

2020년대 초반부터 시작된 PyTorch의 연구 커뮤니티 장악은 2026년에 이르러 산업 현장에서도 완성 단계에 접어들었다. Hugging Face, Meta AI Research, Google DeepMind의 주요 모델 대부분이 PyTorch 기반으로 출시되며, TensorFlow 기반 프로젝트의 비중은 지속적으로 감소하고 있다. Google 내부에서도 Keras 3.x를 통해 PyTorch 백엔드를 지원하는 방향으로 전환이 진행 중이다.

PyTorch 2.12의 torch.export 기능은 훈련된 모델을 재현 가능한 형태로 직렬화해 다양한 런타임 환경에 배포할 수 있게 한다. ONNX 내보내기 경로도 FX Graph 기반으로 재작성돼 동적 제어 흐름을 포함한 복잡한 모델도 정확하게 변환된다. MLOps 파이프라인 통합 관점에서는 Kubeflow, MLflow, Ray Train과의 호환성이 강화되었다. torch.distributed.elastic은 학습 중 노드 장애 시 자동 재시작과 체크포인팅을 지원해 대규모 클러스터 학습의 안정성을 높인다.

기능 영향 범위 주요 수혜 워크로드
linalg.eigh 100× 가속 CUDA 배치 고유값 분해 PCA, 스펙트럼 군집화, GNN
TorchTPU 개선 Google TPU 호환성 대규모 LLM 학습·추론
ROCm FlexAttention AMD GPU 어텐션 트랜스포머 기반 모델
MX 양자화 저장 엣지 배포 LLM 추론 경량화
torch.cond CUDA Graph 조건 분기 모델 동적 라우팅 MoE 모델
torch.accelerator.Graph 멀티 가속기 이식성 크로스 플랫폼 배포

PyTorch 2.12는 CUDA linalg.eigh 100배 가속이라는 즉각적인 성능 향상과 함께, TorchTPU를 통한 이기종 가속기 생태계 확장이라는 장기 전략적 방향성을 동시에 제시하였다. MAGMA에서 cuSolver로의 백엔드 전환, MX 양자화 지원, torch.accelerator.Graph 통합 API는 프로덕션 ML 파이프라인의 이식성과 효율성을 한 단계 끌어올렸다. Google-Meta TorchTPU 협력은 NVIDIA CUDA 의존도를 낮추려는 산업계의 공동 움직임으로, PyTorch 생태계가 특정 하드웨어 벤더에 종속되지 않는 개방형 표준으로 진화하는 방향을 가속화하고 있다.

Sources

PyTorch212CUDA가속TorchTPUtorch.compile이기종컴퓨팅