# PyTorch 2.6이 출시되었습니다🎉

**URL:** <https://discuss.pytorch.kr/t/pytorch-2-6/6005>\
**Category:** 읽을거리&정보공유\
**Tags:** pytorch, pytorch-release, pytorch-2-6, torch-compiler-set\_stance, torch-library-triton\_op, python-3-13, pt2-archive, dim-auto, flexattention\
**Created:** [1월 30, 2025, 8:29오전 UTC](https://discuss.pytorch.kr/t/pytorch-2-6/6005 "2025-01-30T08:29:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![9bow](https://discuss.pytorch.kr/user_avatar/discuss.pytorch.kr/9bow/32/16301_2.png) [@9bow](https://discuss.pytorch.kr/u/9bow)\
**Post date:** [1월 30, 2025, 8:29오전 UTC](https://discuss.pytorch.kr/t/pytorch-2-6/6005/1 "2025-01-30T08:29:59Z")

</div>

![PyTorch 2.6이 출시되었습니다🎉](https://discuss.pytorch.kr/uploads/default/original/2X/5/536bba39bcd609d1c2c13476207e030e88cb5e6d.jpeg)

## PyTorch 2.6 주요 변경 사항

이번 PyTorch 2.6 업데이트에서는 여러 가지 중요한 개선이 이루어졌습니다:

- torch.compile이 이제 Python 3.13에서 지원됩니다.
- 새로운 성능 최적화 옵션인 torch.compiler.set\_stance가 추가되었습니다.
- AOTInductor의 여러 가지 개선 사항이 포함되었습니다.
- 이 외에도 X86 CPU에서 FP16(Floating Point 16) 지원이 추가되었습니다.

### ⚠ **Conda 채널을 활용한 배포 중단** ⚠

**이번 PyTorch 2.6 릴리즈부터 Conda를 활용한 PyTorch 공식 배포가 중단** 되었습니다. 자세한 내용은 [PyTorch 공식 Anaconda 채널 지원 종료 공지(_Deprecating PyTorch’s official Anaconda channel_)](https://github.com/pytorch/pytorch/issues/138506)를 참고해주세요.

### 빌드 플랫폼 변경

이번 릴리즈에서는 실험적인 리눅스 바이너리(CUDA 12.6.3, Linux Aarch64, Linux ROCm 6.2.4, Linux XPU 포함)가 `CXX11_ABI=1`로 빌드되었으며, [manylinux 2.28 빌드 플랫폼](https://dev-discuss.pytorch.org/t/pytorch-linux-wheels-switching-to-new-wheel-build-platform-manylinux-2-28-on-november-12-2024/2581)을 사용합니다.

향후 PyTorch 2.7 릴리즈에서는 모든 리눅스 빌드를 `manylinux 2.28` 및 `CXX11_ABI=1`로 전환할 계획입니다. 자세한 내용 및 논의는 [[RFC] PyTorch 차기 wheel 빌드 플랫폼: Manylinux-2.28](https://github.com/pytorch/pytorch/issues/123649)을 참조하세요.

### ⚠`torch.load()`의 `weights_only` 매개변수 기본값 변경⚠

PyTorch 2.6부터 **중요한 보안 개선 조치** 로 인해 torch.load의 weights\_only 매개변수 기본값이 변경되었습니다. 이 변경 사항으로 인해 이전 버전과의 호환성이 깨질 수 있습니다.

자세한 내용은 [포럼 게시글](https://dev-discuss.pytorch.org/t/bc-breaking-change-torch-load-is-being-flipped-to-use-weights-only-true-by-default-in-the-nightlies-after-137602/2573)을 확인하세요.

### 추가 기능 목록

이번 PyTorch 2.6에 추가된 Beta 및 Prototype 기능들은 다음과 같습니다:

| Beta 기능 | Prototype 기능 |
| --- | --- |
| torch.compiler.set\_stance | Improved PyTorch user experience on Intel GPUs |
| torch.library.triton\_op | FlexAttention support on X86 CPU for LLMs |
| torch.compile support for Python 3.13 | Dim.AUTO |
| New packaging APIs for AOTInductor | CUTLASS and CK GEMM/CONV Backends for AOTInductor |
| AOTInductor: minifier | |
| AOTInductor: ABI-compatible mode code generation | |
| FP16 support for X86 CPUs | |

### (참고) PyTorch의 기능 구분: Stable / Beta / Prototype

PyTorch는 새로운 기능을 도입할 때 다음의 Stable / Beta / Prototype의 3가지 단계를 거쳐 도입됩니다:

- **Stable(안정적인 기능)**: 이러한 기능은 **장기적으로 유지** 되며, 일반적으로 주요한 성능 제한이나 문서화의 공백이 없어야 합니다. 또한, **이전 버전과의 호환성을 유지할 것으로 예상** 되지만, 호환성이 깨지는 변경 사항이 발생할 수 있으며, 이러한 경우 한 릴리스 전에 사전 공지가 제공됩니다.

- **Beta(베타 기능)**: 이러한 기능은 **사용자 피드백을 기반으로 API가 변경될 가능성** 이 있거나, 성능 개선이 필요하거나, 연산자(operator) 전반에 대한 지원이 아직 완전하지 않기 때문에 베타로 태그 지정됩니다. 베타 기능의 경우, 해당 기능이 안정적인(Stable) 분류로 이어질 수 있도록 지원할 것을 약속하지만, **이전 버전과의 호환성을 유지할 것을 보장하지는 않습니다**.

- **Prototype(프로토타입 기능)**: 이러한 기능은 일반적으로 PyPI 또는 Conda와 같은 **바이너리 배포판에 포함되지 않으며** (예외적으로 런타임 플래그 뒤에서 제공될 수 있음), **피드백 및 테스트를 위한 초기 단계** 에 있습니다.

## PyTorch 2.6의 Beta 기능 목록 :pytorch:

### `torch.compiler.set_stance`

이 기능을 사용하면 `torch.compile`이 컴파일된 함수 호출 간에 서로 다른 동작(“stance”)을 지정할 수 있습니다.  
예를 들어, `eager_on_recompile` 설정을 사용하면 PyTorch는 다시 컴파일이 필요할 때 즉시 실행 방식(eager execution)으로 코드를 실행하며, 가능하면 캐시된 컴파일된 코드를 재사용합니다.

자세한 내용은 [`set_stance` 문서](https://pytorch.org/docs/2.6/generated/torch.compiler.set_stance.html#torch.compiler.set_stance) 및 [`torch.compiler.set_stance` 를 활용한 동적 컴파일 제어 튜토리얼](https://pytorch.org/tutorials/recipes/torch_compiler_set_stance_tutorial.html)을 참조하세요.

### `torch.library.triton_op`

`torch.library.triton_op`은 사용자 정의 **Triton 커널** 을 기반으로 하는 **사용자 정의 연산자(custom operator)** 를 생성하는 표준 방법을 제공합니다.

사용자가 Triton 커널을 직접 정의하여 맞춤형 연산자로 변환할 경우, `torch.library.triton_op`을 사용하면 `torch.compile`이 내부 구현을 분석할 수 있어, Triton 커널을 최적화할 수 있습니다.

자세한 내용은 [`triton_op` 문서](https://pytorch.org/docs/2.6/library.html#torch.library.triton_op) 및 [`torch.compile` 을 활용한 사용자 정의 Triton 커널 튜토리얼](https://pytorch.org/tutorials/recipes/torch_compile_user_defined_triton_kernel_tutorial.html)을 참조하세요.

### **`torch.compile`의 Python 3.13 지원**

기존의 `torch.compile`은 Python 3.12까지 지원했지만, 이제 **Python 3.13에서도 최적화된 모델 실행이 가능** 합니다.

### **AOTInductor의 새로운 패키징 API**

새로운 패키지 형식인 **[PT2 아카이브(PT2 Archive)](https://docs.google.com/document/d/1RQ4cmywilnFUT1VE-4oTGxwXdc8vowCSZsrRgo3wFA8/edit?usp=sharing)** 가 도입되었습니다.  
이 패키지는 **AOTInductor 실행에 필요한 모든 파일을 포함한 ZIP 파일** 로, 사용자가 필요한 모든 항목을 쉽게 공유할 수 있도록 합니다.  
또한, **여러 개의 모델을 하나의 아티팩트(artifact)로 패키징**할 수 있으며, 패키지 내부에 **추가 메타데이터(metadata) 저장 기능**도 제공됩니다.

자세한 내용은 [torch.export AOTInductor 튜토리얼](https://pytorch.org/tutorials/recipes/torch_export_aoti_python.html)을 확인하세요.

### AOTInductor: Minifier

AOTInductor API 사용 중 오류가 발생할 경우, **AOTInductor Minifier** 를 활용하여 오류를 재현할 수 있는 최소한의 `nn.Module`을 생성할 수 있습니다.

자세한 내용은 [AOTInductor Minifier 문서](https://pytorch.org/docs/2.6/torch.compiler_aot_inductor_minifier.html)를 참조하세요.

### AOTInductor: ABI 호환 모드 코드 생성

AOTInductor가 생성한 모델 코드는 PyTorch C++ 라이브러리에 의존합니다.  
PyTorch는 빠르게 발전하는 프로젝트이므로, 기존 AOTInductor에서 컴파일된 모델이 새로운 PyTorch 버전에서도 실행 가능해야 합니다(AOTInductor의 하위 호환성 유지).

이를 위해, **PyTorch의 libtorch 내에서 안정적인 C 인터페이스를 정의** 하고, AOTInductor가 해당 API만 사용하도록 설정하여 응용 프로그램 바이너리 인터페이스(ABI) 호환성을 유지합니다.  
향후 PyTorch 버전에서도 AOTInductor로 컴파일된 모델이 안정적으로 실행될 수 있도록 보장할 예정입니다.

### x86 CPU에서 FP16 지원 (Eager 및 Inductor 모드)

Float16 데이터 타입(FP16)은 **메모리 사용량 감소 및 연산 속도 향상** 을 위해 AI 추론 및 학습에 널리 사용됩니다.  
최근 출시된 [Intel® Xeon® 6 프로세서(P-Cores 포함)](https://www.intel.com/content/www/us/en/products/details/processors/xeon/xeon6-p-cores.html)는 [AMX(Advanced Matrix Extensions)](https://www.intel.com/content/www/us/en/products/docs/accelerator-engines/advanced-matrix-extensions/overview.html) 기반으로 **Float16을 네이티브로 지원** 합니다.

PyTorch 2.5에서 FP16 지원이 **프로토타입 기능으로 도입** 되었으며, 이번 **PyTorch 2.6에서는 Eager 모드 및 `torch.compile` + Inductor 모드 모두에서 더욱 안정적으로 동작** 하도록 개선되었습니다.  
이제 다양한 워크로드에서 기능성과 성능이 검증된 **Beta 수준 기능** 으로 제공됩니다.

## PyTorch 2.6의 Prototytpe 기능 목록 :pytorch:

### Intel GPU에서 PyTorch 사용자 경험 향상

Intel GPU에서 PyTorch 실행이 더욱 **간소화** 되었습니다.

- **간편한 설치 지원:** `torch-xpu` pip wheel을 **원클릭 설치** 하여 딥러닝 워크로드를 실행할 수 있습니다. 또한, Intel GPU 개발 소프트웨어 번들을 설치하고 활성화하는 복잡한 과정이 **제거** 되었습니다.
- \*\*Windows 바이너리 배포 지원: \*\* 이제 Windows에서도 `torch-core`, `torchvision`, `torchaudio` 바이너리가 Intel GPU에서 실행 가능하도록 배포되었습니다.
- **지원되는 GPU 모델 확장:** 기존 Intel® Core™ Ultra 프로세서 및 Intel® Arc™ A-Series 그래픽 외에, 최신 Intel® Arc™ B-Series 그래픽도 지원됩니다.
- **SYCL 커널을 활용한 `Aten` 연산자 지원 강화:** Intel GPU에서 Eager 모드 실행을 더욱 원활하게 지원하도록 최적화되었습니다. 또한, `torch.compile`에서 Intel GPU를 위한 성능 최적화 및 버그 수정이 포함되었습니다.

자세한 내용은 [Intel GPU 지원 가이드](https://pytorch.org/docs/main/notes/get_start_xpu.html)를 참조하세요.

### x86 CPU에서 LLM을 위한 FlexAttention 지원

PyTorch 2.5에서 처음 도입된 **FlexAttention** 은 다양한 Attention 변형을 최적화할 수 있는 유연한 API를 제공합니다.  
이번 PyTorch 2.6에서는 **x86 CPU에서 FlexAttention이 지원** 되며, TorchInductor의 C++ 백엔드를 활용하여 동작합니다.

이 때, 기존 C++ 템플릿 기능을 확장하여 LLM 추론에서 중요한 PageAttention과 같은 다양한 Attention 변형을 지원합니다. 또한, CPU에서 최적화된 성능을 제공하며, FlexAttention API를 활용하여 간편하게 Attention 연산을 구성할 수 있습니다.

### `Dim.AUTO`

`Dim.AUTO`는 **`torch.export`와 함께 동적 크기(dynamic shape)를 자동으로 추론할 수 있는 기능**을 제공합니다. 이를 통해 최소/최대 범위, 차원 간 관계, 정적/동적 동작을 자동으로 감지할 수 있습니다.

이를 통해 기존 **named-Dims 접근 방식보다 더 직관적인 경험** 을 제공하며, 사용자는 모델의 동적 동작을 미리 완벽히 이해하지 않아도 됩니다. 또한, 모델 종속적이지 않은 일반적인 코드 작성이 가능하므로, 동적 크기 내보내기(export)가 더욱 쉬워집니다.

자세한 내용은 [`torch.export` 튜토리얼](https://pytorch.org/tutorials/intermediate/torch_export_tutorial.html#constraints-dynamic-shapes)을 참조하세요.

### AOTInductor에서 CUTLASS 및 CK GEMM/CONV 백엔드 지원

CUTLASS 및 CK 백엔드를 활용하면 **GEMM 연산을 자동으로 최적화** 할 수 있습니다. 이제 C++ 런타임 환경에서 실행되는 AOTInductor에서도 해당 백엔드를 사용할 수 있습니다. 불필요한 커널 바이너리 컴파일을 제거하여 컴파일 속도를 향상하고 동적 크기 지원을 강화합니다.

## :pytorch: PyTorch 2.6 출시 공지

> **[PyTorch 2.6 Release Blog – PyTorch](https://pytorch.org/blog/pytorch2-6/)**

## :github: PyTorch 2.6 릴리즈 노트

> **[Release PyTorch 2.6.0 Release · pytorch/pytorch](https://github.com/pytorch/pytorch/releases/tag/v2.6.0)**
>
> Highlights
> Tracked Regressions
> Backwards Incompatible Change
> Deprecations
> New Features
> Improvements
> Bug fixes
> Performance
> Documentation
> Developers
> 
> Highlights
> We are excited to announce the release...
