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 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.
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.
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:
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.
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.
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.
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.
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. Außerdem enthält die neue Version einige Updates:
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!