Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  PyTorch 1.12 veröffentlicht, unterstützt offiziell die GPU-Beschleunigung des Apple M1-Chips und behebt viele Fehler

PyTorch 1.12 veröffentlicht, unterstützt offiziell die GPU-Beschleunigung des Apple M1-Chips und behebt viele Fehler

WBOY
WBOYnach vorne
2023-04-12 21:31:03984Durchsuche

PyTorch 1.12 veröffentlicht, unterstützt offiziell die GPU-Beschleunigung des Apple M1-Chips und behebt viele Fehler

​PyTorch 1.12 ist offiziell veröffentlicht. Freunde, die noch kein Update durchgeführt haben, können ein Update durchführen.

Nur wenige Monate nach dem Start von PyTorch 1.11 ist PyTorch 1.12 da! Diese Version besteht aus mehr als 3124 Commits seit Version 1.11, abgeschlossen von 433 Mitwirkenden. Version 1.12 enthält wesentliche Verbesserungen und viele Fehlerbehebungen.

Mit der Veröffentlichung der neuen Version wird möglicherweise am meisten diskutiert, dass PyTorch 1.12 den Apple M1-Chip unterstützt. ​

PyTorch 1.12 veröffentlicht, unterstützt offiziell die GPU-Beschleunigung des Apple M1-Chips und behebt viele Fehler

Tatsächlich gab PyTorch bereits im Mai dieses Jahres offiziell bekannt, dass es das GPU-beschleunigte PyTorch-Modelltraining für maschinelles Lernen auf der M1-Version des Mac offiziell unterstützt. Bisher konnte das PyTorch-Training auf dem Mac nur die CPU nutzen, aber mit der Veröffentlichung der PyTorch-Version 1.12 können Entwickler und Forscher die Vorteile von Apple-GPUs nutzen, um das Modelltraining deutlich zu beschleunigen.

Einführung des beschleunigten PyTorch-Trainings auf dem Mac​

Die Beschleunigung des PyTorch-GPU-Trainings wird mithilfe von Apple Metal Performance Shaders (MPS) als Backend implementiert. Das MPS-Backend erweitert das PyTorch-Framework, um Skripte und Funktionen zum Einrichten und Ausführen von Vorgängen auf dem Mac bereitzustellen. MPS optimiert die Rechenleistung mithilfe der Kernleistung, die genau auf die einzigartigen Eigenschaften jeder Metal-GPU-Familie abgestimmt ist. Das neue Gerät ordnet rechnerische Graphen und Grundelemente des maschinellen Lernens dem MPS Graph-Framework und den von MPS bereitgestellten Tuning-Kerneln zu.

Jeder Mac, der mit Apples selbst entwickelten Chips ausgestattet ist, verfügt über eine einheitliche Speicherarchitektur, die es der GPU ermöglicht, direkt auf den gesamten Speicher zuzugreifen. PyTorch-Beamte sagen, dass dies den Mac zu einer hervorragenden Plattform für maschinelles Lernen macht und es Benutzern ermöglicht, größere Netzwerke oder Batch-Größen lokal zu trainieren. Dies reduziert die mit der cloudbasierten Entwicklung verbundenen Kosten oder den Bedarf an zusätzlicher lokaler GPU-Rechenleistung. Die einheitliche Speicherarchitektur reduziert außerdem die Latenz beim Datenabruf und verbessert die End-to-End-Leistung.

Es ist ersichtlich, dass die GPU-Beschleunigung im Vergleich zur CPU-Basislinie eine exponentielle Verbesserung der Trainingsleistung erzielt hat:

PyTorch 1.12 veröffentlicht, unterstützt offiziell die GPU-Beschleunigung des Apple M1-Chips und behebt viele FehlerPyTorch 1.12 veröffentlicht, unterstützt offiziell die GPU-Beschleunigung des Apple M1-Chips und behebt viele Fehler

Mit der Unterstützung der GPU übertrifft die Trainings- und Auswertungsgeschwindigkeit die der CPU

Das Bild oben ist das Ergebnis von Tests, die Apple im April 2022 mit einem Mac Studio-System durchgeführt hat, das mit Apple M1 Ultra (20-Core-CPU, 64-Core-GPU), 128 GB Speicher und 2 TB SSD ausgestattet ist. Die Testmodelle sind ResNet50 (Chargengröße = 128), HuggingFace BERT (Chargengröße = 64) und VGG16 (Chargengröße = 64). Leistungstests werden mit bestimmten Computersystemen durchgeführt und spiegeln die ungefähre Leistung von Mac Studio wider.

Weitere neue Funktionen von PyTorch 1.12

Front-End-API: TorchArrow

PyTorch-Verantwortliche haben eine neue Betaversion veröffentlicht, die Benutzer ausprobieren können: TorchArrow. Dies ist eine Vorverarbeitungsbibliothek für maschinelles Lernen für die Stapeldatenverarbeitung. Es ist leistungsstark, im Pandas-Stil und verfügt über eine benutzerfreundliche API, um die Vorverarbeitungs-Workflows und die Entwicklung der Benutzer zu beschleunigen.

(Beta) Complex32 und komplexe Faltungen in PyTorch

Derzeit unterstützt PyTorch nativ komplexe Zahlen, komplexe Autograd, das komplexe Modul und eine große Anzahl komplexer Operationen (lineare Algebra und schnelle Fourier-Transformation). Komplexe Zahlen werden bereits in vielen Bibliotheken verwendet, darunter Torchaudio und ESPNet, und PyTorch 1.12 erweitert die Funktionalität komplexer Zahlen um komplexe Faltung und den experimentellen Datentyp complex32, der FFT-Operationen mit halber Genauigkeit unterstützt. Aufgrund eines Fehlers im CUDA 11.3-Paket wird offiziell empfohlen, das CUDA 11.6-Paket zu verwenden, wenn Benutzer Pluralzahlen verwenden möchten.

(Beta)Automatische Differenzierung im Vorwärtsmodus

AD im Vorwärtsmodus ermöglicht die Berechnung von Richtungsableitungen (oder äquivalenten Jacobi-Vektorprodukten) im Vorwärtsdurchlauf. PyTorch 1.12 verbessert die AD-Abdeckung im Vorwärtsmodus erheblich.

BetterTransformer

PyTorch unterstützt jetzt mehrere CPU- und GPU-Fastpath-Implementierungen (BetterTransformer), das Transformer-Encoder-Modul, einschließlich Implementierungen von TransformerEncoder, TransformerEncoderLayer und MultiHeadAttention (MHA). In der neuen Version ist BetterTransformer in vielen gängigen Szenarien je nach Modell und Eingabefunktionen doppelt so schnell. Die neue Version der API unterstützt die Kompatibilität mit der vorherigen PyTorch Transformer API, die bestehende Modelle beschleunigt, wenn sie die Anforderungen an die Fastpath-Ausführung erfüllen, und auch Modelle liest, die mit früheren Versionen von PyTorch trainiert wurden. PyTorch 1.12 veröffentlicht, unterstützt offiziell die GPU-Beschleunigung des Apple M1-Chips und behebt viele FehlerAußerdem enthält die neue Version einige Updates:

  • Module: Eine neue Beta-Funktion für Modulberechnungen ist die funktionale API. Diese neue API „function_call()“ gibt Benutzern die volle Kontrolle über die in Modulberechnungen verwendeten Parameter.
  • TorchData: DataPipe verbesserte Kompatibilität mit DataLoader. PyTorch unterstützt jetzt AWSSDK-basierte DataPipes. DataLoader2 wurde eingeführt, um die Interaktion zwischen DataPipes und anderen APIs und Backends zu verwalten.
  • nvFuser: nvFuser ist der neue, schnellere Standard-Fuser zum Kompilieren auf CUDA-Geräten.
  • Präzision der Matrixmultiplikation: Standardmäßig funktioniert die Matrixmultiplikation auf dem Datentyp float32 jetzt im Modus mit voller Präzision, der langsamer ist, aber konsistentere Ergebnisse liefert.
  • Bfloat16: Neue Verbesserungen am Datentyp Bfloat16 in 1.12, um schnellere Berechnungszeiten für weniger präzise Datentypen zu ermöglichen.
  • FSDP-API: Die FSDP-API wurde als Prototyp in Version 1.11 veröffentlicht und erreichte mit der Veröffentlichung von Version 1.12 die Beta-Phase, wobei einige Verbesserungen hinzugefügt wurden.

Weitere Informationen finden Sie unter: https://pytorch.org/blog/pytorch-1.12-released/.

Das obige ist der detaillierte Inhalt vonPyTorch 1.12 veröffentlicht, unterstützt offiziell die GPU-Beschleunigung des Apple M1-Chips und behebt viele Fehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen