> 기술 주변기기 > 일체 포함 > PyTorch 1.12 출시, 공식적으로 Apple M1 칩 GPU 가속 지원 및 많은 버그 수정

PyTorch 1.12 출시, 공식적으로 Apple M1 칩 GPU 가속 지원 및 많은 버그 수정

WBOY
풀어 주다: 2023-04-12 21:31:03
앞으로
1046명이 탐색했습니다.

PyTorch 1.12 출시, 공식적으로 Apple M1 칩 GPU 가속 지원 및 많은 버그 수정

PyTorch 1.12가 정식 출시되었습니다. 아직 업데이트하지 않은 친구도 업데이트할 수 있습니다.

PyTorch 1.11이 출시된 지 불과 몇 달 만에 PyTorch 1.12가 출시되었습니다! 이 버전은 버전 1.11 이후 3124개 이상의 커밋으로 구성되어 있으며 433명의 기여자가 완료했습니다. 버전 1.12에는 주요 개선 사항과 많은 버그 수정 사항이 포함되어 있습니다.

새 버전이 출시되면서 가장 많이 논의되는 점은 PyTorch 1.12가 Apple M1 칩을 지원한다는 점일 것입니다. ​

PyTorch 1.12 출시, 공식적으로 Apple M1 칩 GPU 가속 지원 및 많은 버그 수정

사실 PyTorch는 올해 5월 초 Mac M1 버전에서 GPU 가속 PyTorch 머신러닝 모델 훈련을 공식 지원한다고 공식 발표했습니다. 이전에는 Mac에서의 PyTorch 훈련에서는 CPU만 활용할 수 있었지만 PyTorch 버전 1.12가 출시되면서 개발자와 연구원은 Apple GPU를 활용하여 모델 훈련 속도를 크게 높일 수 있습니다.

Mac에서 가속화된 PyTorch 교육 소개​

PyTorch GPU 교육 가속화는 Apple Metal Performance Shaders(MPS)를 백엔드로 사용하여 구현됩니다. MPS 백엔드는 PyTorch 프레임워크를 확장하여 Mac에서 작업을 설정하고 실행하기 위한 스크립트와 기능을 제공합니다. MPS는 각 Metal GPU 제품군의 고유한 특성에 맞게 미세 조정된 코어 전력을 사용하여 컴퓨팅 성능을 최적화합니다. 새로운 장치는 기계 학습 계산 그래프 및 기본 요소를 MPS 그래프 프레임워크 및 MPS 제공 튜닝 커널에 매핑합니다.

Apple이 자체 개발한 칩이 탑재된 모든 Mac에는 통합 메모리 아키텍처가 있어 GPU가 전체 메모리 저장 장치에 직접 액세스할 수 있습니다. PyTorch 관계자는 이것이 Mac을 기계 학습을 위한 탁월한 플랫폼으로 만들어 사용자가 로컬에서 더 큰 네트워크나 배치 크기를 훈련할 수 있게 해준다고 말합니다. 이를 통해 클라우드 기반 개발과 관련된 비용이나 추가 로컬 GPU 컴퓨팅 성능에 대한 필요성이 줄어듭니다. 통합 메모리 아키텍처는 또한 데이터 검색 대기 시간을 줄이고 엔드투엔드 성능을 향상시킵니다.

CPU 기준과 비교하여 GPU 가속이 훈련 성능에서 기하급수적인 향상을 달성한 것을 볼 수 있습니다.

PyTorch 1.12 출시, 공식적으로 Apple M1 칩 GPU 가속 지원 및 많은 버그 수정PyTorch 1.12 출시, 공식적으로 Apple M1 칩 GPU 가속 지원 및 많은 버그 수정

GPU 지원으로 훈련 및 평가 속도가 CPU 속도를 초과합니다

위 사진은 Apple M1 Ultra(20코어 CPU, 64코어 GPU), 128GB 메모리, 2TB SSD를 탑재한 Mac Studio 시스템을 사용하여 2022년 4월 Apple에서 실시한 테스트 결과입니다. 테스트 모델은 ResNet50(배치 크기 = 128), HuggingFace BERT(배치 크기 = 64) 및 VGG16(배치 크기 = 64)입니다. 성능 테스트는 특정 컴퓨터 시스템을 사용하여 수행되며 Mac Studio의 대략적인 성능을 반영합니다.

PyTorch 1.12의 다른 새로운 기능

프런트 엔드 API: TorchArrow

PyTorch 관계자는 사용자가 사용해 볼 수 있는 새로운 베타 버전인 TorchArrow를 출시했습니다. 일괄 데이터 처리를 위한 머신러닝 전처리 라이브러리입니다. 고성능 Pandas 스타일이며 사용하기 쉬운 API를 갖추고 있어 사용자 사전 처리 워크플로 및 개발 속도를 높입니다.

(베타) PyTorch의 Complex32 및 복소 컨볼루션

현재 PyTorch는 기본적으로 복소수, 복소 자동 그라데이션, 복소 모듈 및 수많은 복소 연산(선형 대수 및 고속 푸리에 변환)을 지원합니다. 복소수는 이미 torchaudio 및 ESPNet을 포함한 많은 라이브러리에서 사용되고 있으며, PyTorch 1.12는 복소 컨볼루션 및 반정밀도 FFT 연산을 지원하는 실험적인 complex32 데이터 유형을 통해 복소수 기능을 더욱 확장합니다. CUDA 11.3 패키지의 버그로 인해 사용자가 복수형을 사용하고 싶다면 CUDA 11.6 패키지를 사용하는 것이 공식적으로 권장됩니다.

(베타)순방향 자동 미분

순방향 AD를 사용하면 순방향 패스에서 방향 도함수(또는 동등한 야코비안 벡터 곱)를 계산할 수 있습니다. PyTorch 1.12는 순방향 모드 AD 적용 범위를 크게 향상시킵니다.

BetterTransformer

PyTorch는 이제 TransformerEncoder, TransformerEncoderLayer 및 MultiHeadAttention(MHA) 구현을 포함하여 Transformer 인코더 모듈인 다중 CPU 및 GPU 빠른 경로 구현(BetterTransformer)을 지원합니다. 새 버전에서 BetterTransformer는 모델 및 입력 기능에 따라 다양한 일반적인 시나리오에서 2배 더 빠릅니다. 새로운 버전의 API는 이전 PyTorch Transformer API와의 호환성을 지원합니다. 이는 빠른 경로 실행 요구 사항을 충족하는 경우 기존 모델을 가속화하고 이전 버전의 PyTorch로 훈련된 모델을 읽습니다. PyTorch 1.12 출시, 공식적으로 Apple M1 칩 GPU 가속 지원 및 많은 버그 수정또한 새 버전에는 몇 가지 업데이트가 있습니다.

  • 모듈: 모듈 계산을 위한 새로운 베타 기능은 함수형 API입니다. 이 새로운 function_call() API는 사용자에게 모듈 계산에 사용되는 매개변수를 완벽하게 제어할 수 있게 해줍니다.
  • TorchData: DataPipe는 DataLoader와의 호환성을 향상했습니다. PyTorch는 이제 AWSSDK 기반 DataPipes를 지원합니다. DataLoader2는 DataPipes와 기타 API 및 백엔드 간의 상호 작용을 관리하는 방법으로 도입되었습니다.
  • nvFuser: nvFuser는 CUDA 장치로 컴파일하기 위한 새롭고 빠른 기본 퓨저입니다.
  • 행렬 곱셈 정밀도: 기본적으로 float32 데이터 유형의 행렬 곱셈은 이제 완전 정밀도 모드에서 작동합니다. 이는 느리지만 보다 일관된 결과를 생성합니다.
  • Bfloat16: 1.12에서는 Bfloat16 데이터 유형이 새롭게 개선되어 덜 정확한 데이터 유형에 대해 더 빠른 계산 시간을 제공합니다.
  • FSDP API: 버전 1.11에서 프로토타입으로 출시된 FSDP API는 몇 가지 개선 사항이 추가된 버전 1.12 출시와 함께 베타 버전에 도달했습니다.

자세한 내용은 https://pytorch.org/blog/pytorch-1.12-released/를 참조하세요.

위 내용은 PyTorch 1.12 출시, 공식적으로 Apple M1 칩 GPU 가속 지원 및 많은 버그 수정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿