NVIDIA/apex

A PyTorch Extension: Tools for easy mixed precision and distributed training in Pytorch

해결하는 문제

Apex는 PyTorch에서 혼합 정밀도 및 분산 학습을 더 효율적이고 원활하게 만들기 위한 유틸리티 세트를 제공합니다. 이는 공식적으로 상류 PyTorch 코드베이스에 통합되기 전에 사용자에게 업데이트된 유틸리티를 신속하게 제공하는 빠른 경로로 기능합니다.

작동 방식

다양한 커스텀 C++/CUDA 확장 기능을 구현하여 일반적인 딥러닝 연산을 최적화합니다. 이러한 확장 기능에는 최적화기(FusedAdam 등)를 위한 융합 커널, 정규화 레이어(FusedLayerNorm 및 FusedRMSNorm 등) 및 분산 학습을 위한 통신 원시 기능(DistributedDataParallel 및 SyncBatchNorm 등)이 포함됩니다. 사용자는 Python 전용 패키지로 설치하거나 특정 CUDA 확장을 빌드하여 최대 성능과 수치적 안정성을 얻을 수 있습니다.

대상 사용자

NVIDIA GPU에서 모델 학습의 성능, 메모리 사용량 및 확장성을 최적화해야 하는 PyTorch를 사용하는 딥러닝 실무자 및 연구자.

주요 특징

  • 혼합 정밀도 학습: 혼합 정밀도 사용을 간편하게 만들어 학습 속도를 높입니다.
  • 분산 학습: 여러 GPU에 걸쳐 학습을 확장하기 위한 유틸리티.
  • 융합 커널: 최적화기 및 정규화 레이어의 고성능 CUDA 구현으로 오버헤드를 줄입니다.
  • 유연한 설치: 단순한 Python 전용 설치부터 C++/CUDA 확장의 완전한 세트까지 다양한 빌드 구성 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트