Heim > Artikel > Technologie-Peripheriegeräte > Leitfaden zur Auswahl einer Deep-Learning-GPU: Welche Grafikkarte ist für meinen Alchemieofen würdig?
Wie wir alle wissen, ist es bei Deep-Learning- und neuronalen Netzwerkaufgaben besser, eine GPU anstelle einer CPU zu verwenden, da bei neuronalen Netzwerken selbst eine relativ preisgünstige GPU die CPU übertrifft.
Deep Learning ist ein Bereich, der viel Rechenleistung erfordert. Bis zu einem gewissen Grad bestimmt die Wahl der GPU grundlegend das Deep-Learning-Erlebnis.
Aber hier kommt das Problem: Die Auswahl der richtigen GPU bereitet ebenfalls Kopfschmerzen und ist eine nervenaufreibende Sache.
Wie vermeide ich es, in die Falle zu tappen und wie treffe ich eine kosteneffektive Entscheidung?
Tim Dettmers, ein bekannter Rezensionsblogger, der Doktorandenangebote von Stanford, UCL, CMU, NYU und UW erhalten hat und derzeit an der University of Washington promoviert, hat einen Artikel mit 10.000 Wörtern geschrieben über seine eigenen Erfahrungen, welche Art von GPU im Bereich Deep Learning benötigt wird. Der Artikel gibt schließlich empfohlene GPUs im DL-Bereich.
Die Forschungsrichtung von Tim Dettmers ist Deep Learning im Bereich Repräsentationslernen und Hardwareoptimierung. Die von ihm erstellte Website ist auch in den Bereichen Deep Learning und Computerhardware bekannt.
Die von Tim Dettmers in diesem Artikel empfohlenen GPUs stammen alle von N Factory. Er ist offensichtlich auch der Meinung, dass AMD keinen Namen verdient, wenn es um maschinelles Lernen geht.
Der Herausgeber hat auch den Originallink unten gepostet.
Originallink: https://timdettmers.com/2023/01/16/which-gpu-for-deep-learning/#GPU_Deep_Learning_Performance_per_Dollar
Im Vergleich zur RTX 20-Serie mit NVIDIA Turing-Architektur bietet die neue RTX 30-Serie mit NVIDIA Ampere-Architektur weitere Vorteile, wie z. B. spärliches Netzwerktraining und Inferenz. Andere Funktionen, wie zum Beispiel neue Datentypen, sollten eher als benutzerfreundliche Funktionen betrachtet werden, da sie die gleichen Leistungsverbesserungen wie die Turing-Architektur bieten, aber keine zusätzlichen Programmieranforderungen erfordern.
Die Ada RTX 40-Serie verfügt über noch mehr Fortschritte, wie den oben vorgestellten Tensor Memory Accelerator (TMA) und 8-Bit-Gleitkommaoperationen (FP8). Die RTX 40-Serie weist ähnliche Leistungs- und Temperaturprobleme auf wie die RTX 30. Das Problem mit dem geschmolzenen Stromanschlusskabel der RTX 40 lässt sich leicht vermeiden, indem man das Stromkabel richtig anschließt.
Ampere ermöglicht die automatische Sparse-Matrix-Multiplikation feinkörniger Strukturen mit hoher Geschwindigkeit. Wie wird das gemacht? Nehmen Sie als Beispiel eine Gewichtsmatrix und schneiden Sie sie in Stücke mit 4 Elementen. Stellen Sie sich nun vor, dass zwei dieser vier Elemente Null sind. Abbildung 1 zeigt, wie diese Situation aussieht. Abbildung 1: Von der Sparse-Matrix-Multiplikationsfunktion in GPUs mit Ampere-Architektur unterstützte Struktur spärliche Matrix in eine dichte Darstellung um, die halb so groß ist wie in Abbildung 2.
Nach der Komprimierung werden die dicht komprimierten Matrixkacheln in den Tensorkern eingespeist, der Matrixmultiplikationen berechnet, die doppelt so groß sind wie üblich. Dies führt effektiv zu einer Geschwindigkeitssteigerung um das Zweifache, da die Bandbreitenanforderungen während der Matrixmultiplikation im gemeinsam genutzten Speicher halbiert werden.
Abbildung 2: Sparse-Matrizen werden vor der Matrixmultiplikation in eine dichte Darstellung komprimiert. Ich beschäftige mich in meiner Forschung mit spärlichem Netzwerktraining und habe auch einen Blogbeitrag über spärliches Training geschrieben. Ein Kritikpunkt an meiner Arbeit war: „Sie reduzieren die vom Netzwerk benötigten FLOPS, bewirken aber keine Beschleunigung, weil GPUs keine schnellen Multiplikationen mit dünn besetzten Matrizen durchführen können.“ Mit der Hinzufügung von Sparse-Matrix-Multiplikationsfunktionen in Tensor Cores sorgt mein Algorithmus oder andere Sparse-Trainingsalgorithmen jetzt tatsächlich für eine bis zu zweifache Beschleunigung während des Trainings. Der entwickelte Sparse-Trainingsalgorithmus besteht aus drei Phasen: (1) Bestimmen Sie die Wichtigkeit jeder Schicht. (2) Entfernen Sie die unwichtigsten Gewichte. (3) Fördern Sie neue Gewichte proportional zur Bedeutung jeder Schicht. Während diese Funktion noch experimentell ist und das Training von spärlichen Netzwerken noch nicht alltäglich ist, bedeutet diese Funktion auf Ihrer GPU, dass Sie für die Zukunft des spärlichen Trainings gerüstet sind. In meiner Arbeit habe ich zuvor gezeigt, dass neue Datentypen die Stabilität bei Backpropagation mit geringer Genauigkeit verbessern können. Abbildung 4: Deep-Learning-8-Bit-Datentyp mit geringer Präzision. Deep-Learning-Training profitiert von hochspezialisierten Datentypen Wenn Sie derzeit eine stabile Backpropagation mit 16-Bit-Gleitkommazahlen (FP16) durchführen möchten, besteht das größte Problem darin, dass gewöhnliche FP16-Datentypen nur [-65.504, 65.504 unterstützen ]. Wenn Ihr Farbverlauf diesen Bereich überschreitet, explodiert Ihr Farbverlauf in NaN-Werte. Um dies im FP16-Training zu verhindern, führen wir normalerweise eine Verlustskalierung durch, d. h. multiplizieren den Verlust mit einer kleinen Zahl vor der Backpropagation, um diese Gradientenexplosion zu verhindern. Das Brain Float 16-Format (BF16) verwendet mehr Bits für den Exponenten, sodass der Bereich der möglichen Zahlen mit FP32 übereinstimmt. BF16 hat eine geringere Präzision, d. h. signifikante Ziffern, aber die Gradientengenauigkeit ist für das Lernen nicht so wichtig . Was BF16 also bewirkt, ist, dass Sie keine Verlustskalierung mehr durchführen müssen und sich keine Sorgen machen müssen, dass Farbverläufe schnell explodieren. Daher sollten wir durch die Verwendung des BF16-Formats eine Verbesserung der Stabilität des Trainings feststellen, da es zu einem leichten Verlust an Genauigkeit kommt. Was bedeutet das für dich? Mit der BF16-Präzision ist das Training bei gleicher Geschwindigkeitssteigerung wahrscheinlich stabiler als mit der FP16-Präzision. Mit der TF32-Präzision erreichen Sie eine Stabilität nahe FP32 und gleichzeitig Geschwindigkeitsverbesserungen nahe FP16. Das Gute daran ist, dass Sie zur Verwendung dieser Datentypen einfach FP32 durch TF32 und FP16 durch BF16 ersetzen müssen – keine Codeänderungen erforderlich. Im Allgemeinen können diese neuen Datentypen jedoch als Lazy-Datentypen betrachtet werden, da Sie die alten mit etwas zusätzlichem Programmieraufwand (richtige Verlustskalierung, Initialisierung, Normalisierung, Verwendung von Apex) erhalten können. Alle Vorteile von Datentypen. Diese Datentypen sorgen also nicht für Geschwindigkeit, sondern verbessern die Benutzerfreundlichkeit bei geringer Präzision im Training. Während das neue Lüfterdesign der RTX 30-Serie die GPU sehr gut kühlt, können bei unterschiedlichen Lüfterdesigns von Nicht-Founder-Edition-GPUs weitere Probleme auftreten. Wenn Ihre GPU heißer als 80 °C wird, drosselt sie sich selbst und verlangsamt dadurch ihre Rechengeschwindigkeit/-leistung. Die Lösung für dieses Problem besteht darin, einen PCIe-Extender zu verwenden, um Platz zwischen den GPUs zu schaffen. Das Verteilen der GPU mit PCIe-Extendern ist für die Kühlung sehr effektiv. Andere Doktoranden der University of Washington und ich haben dieses Setup mit großem Erfolg verwendet. Es sieht nicht schön aus, aber es hält Ihre GPU kühl Das untenstehende System läuft seit 4 Jahren ohne Probleme. Dies kann auch verwendet werden, wenn Sie nicht genügend Platz haben, um alle GPUs in den PCIe-Steckplätzen unterzubringen. Abbildung 5: 4-Grafikkartensystem mit PCIE-Erweiterungsport, es sieht nach Chaos aus, aber die Wärmeableitungseffizienz ist sehr hoch. Es ist möglich, eine Leistungsbegrenzung für Ihre GPU festzulegen. Dadurch können Sie die Leistungsgrenze der RTX 3090 programmgesteuert auf 300 W statt der standardmäßigen 350 W einstellen. In einem 4-GPU-System entspricht dies einer Einsparung von 200 W, was möglicherweise gerade ausreicht, um ein 4x RTX 3090-System mit einem 1600-W-Netzteil machbar zu machen. Dies trägt auch dazu bei, die GPU kühl zu halten. Daher löst das Festlegen eines Leistungslimits beide Hauptprobleme eines 4x RTX 3080- oder 4x RTX 3090-Setups, nämlich Kühlung und Stromversorgung. Für ein 4x-Setup benötigen Sie immer noch einen effizienten Lüfter für die GPU, aber das löst das Energieproblem. Abbildung 6: Eine Reduzierung der Leistungsgrenze hat einen leichten Kühleffekt. Senken Sie die Leistungsgrenze der RTX 2080 Ti um 50-60 W, die Temperatur sinkt leicht und der Lüfter läuft leiser Sie fragen sich vielleicht: „Wird die GPU dadurch nicht langsamer, aber?“ Die Frage ist, um wie viel. Ich habe das in Abbildung 5 gezeigte 4x RTX 2080 Ti-System bei verschiedenen Leistungsgrenzen getestet. Ich habe die Zeit für 500 Mini-Batches von BERT Large während der Inferenz verglichen (ohne Softmax-Schicht). Die Auswahl von BERT Large Inference übt den größten Druck auf die GPU aus. Abbildung 7: Gemessener Geschwindigkeitsabfall bei einem bestimmten Leistungslimit auf der RTX 2080 Ti Wir können sehen, dass das Setzen eines Leistungslimits die Leistung nicht gravierend beeinträchtigt. Die Begrenzung der Leistung auf 50 W reduziert die Leistung nur um 7 %. Es besteht ein Missverständnis, dass das RTX 4090-Netzkabel Feuer fängt, weil es zu stark gebogen ist. Dies ist tatsächlich nur bei 0,1 % der Nutzer der Fall und das Hauptproblem besteht darin, dass das Kabel nicht richtig eingesteckt ist. Wenn Sie also die folgenden Installationsanweisungen befolgen, ist die Verwendung der RTX 4090 absolut sicher. 1. Wenn Sie ein altes Kabel oder eine alte GPU verwenden, stellen Sie sicher, dass die Kontakte frei von Schmutz/Staub sind. 2. Benutzen Sie den Netzstecker und stecken Sie ihn in die Steckdose, bis Sie ein Klicken hören – das ist der wichtigste Teil. 3. Testen Sie die Passform, indem Sie die Kordel von links nach rechts drehen. Das Kabel darf sich nicht bewegen. 4. Überprüfen Sie visuell den Kontakt mit der Steckdose und prüfen Sie, ob zwischen Kabel und Steckdose ein Spalt vorhanden ist. Die Unterstützung von 8-Bit-Gleitkomma (FP8) ist ein großer Vorteil für die RTX 40-Serie und H100-GPUs. Mit der 8-Bit-Eingabe können Sie Daten für die Matrixmultiplikation doppelt so schnell laden und doppelt so viele Matrixelemente im Cache speichern, während in Ada- und Hopper-Architekturen der Cache jetzt sehr groß ist Mit FP8-Tensorkernen können Sie für die RTX 4090 eine Rechenleistung von 0,66 PFLOPS erzielen. Das ist mehr als die gesamte Rechenleistung des schnellsten Supercomputers der Welt im Jahr 2007. Der RTX 4090 hat die vierfache FP8-Berechnung und ist vergleichbar mit dem schnellsten Supercomputer der Welt im Jahr 2010. Wie man sieht, konnte die beste 8-Bit-Basislinie keine gute Nullpunktleistung liefern. Die von mir entwickelte Methode LLM.int8() kann eine Int8-Matrixmultiplikation mit den gleichen Ergebnissen wie die 16-Bit-Basislinie durchführen. Aber Int8 wird bereits von GPUs der RTX 30/A100/Ampere-Generation unterstützt. Warum ist FP8 ein weiteres großes Upgrade in RTX 40? Der FP8-Datentyp ist viel stabiler als der Int8-Datentyp und lässt sich problemlos in Layer-Spezifikationen oder nichtlinearen Funktionen verwenden, was mit dem Integer-Datentyp schwierig ist. Dadurch wird die Verwendung beim Training und bei der Inferenz sehr einfach und unkompliziert. Ich denke, dass dies in ein paar Monaten dazu führen wird, dass FP8-Schulungen und -Schlussfolgerungen relativ alltäglich werden. Unten sehen Sie ein relevantes Hauptergebnis aus diesem Artikel über den Datentyp Float vs. Integer. Wir können sehen, dass der FP4-Datentyp Stück für Stück mehr Informationen behält als der Int4-Datentyp, wodurch die durchschnittliche LLM-Nullpunktgenauigkeit über die 4 Aufgaben hinweg verbessert wird. Werfen wir zunächst einen Blick auf die GPU. Rohe Leistungsrankings, um zu sehen, wer die Besten schlagen kann. Wir können eine große Lücke zwischen der 8-Bit-Leistung der H100-GPU und älteren, für 16 optimierten Karten erkennen -Bit-Leistung. Die obige Abbildung zeigt die relative Rohleistung der GPU. Für die 8-Bit-Inferenz beträgt die Leistung des RTX 4090 beispielsweise etwa das 0,33-fache der H100 SMX. Mit anderen Worten: Im Vergleich zur RTX 4090 ist die H100 SMX bei 8-Bit-Inferenz dreimal schneller. Für diese Daten hat er keine 8-Bit-Berechnung für ältere GPUs modelliert. Weil 8-Bit-Inferenz und -Training auf Ada/Hopper-GPUs effizienter sind und der Tensor Memory Accelerator (TMA) viele Register einspart, die in gespeichert werden 8-Bit-Matrizen Sehr präzise in der Multiplikation. Ada/Hopper verfügt auch über FP8-Unterstützung, was insbesondere das 8-Bit-Training effizienter macht. Auf Hopper/Ada beträgt die 8-Bit-Trainingsleistung wahrscheinlich 16-. Bit-Trainingsleistung 3-4 mal. Bei alten GPUs liegt die Int8-Inferenzleistung alter GPUs nahe an der 16-Bit-Inferenzleistung. Für diejenigen, die nicht genug Budget haben , das folgende Diagramm ist seine Leistung-pro-Dollar-Rangliste basierend auf den Preis- und Leistungsstatistiken jeder GPU, die die GPU-Kosteneffizienz widerspiegelt.
Die Auswahl einer GPU, die Deep-Learning-Aufgaben erledigt und zum Budget passt, kann in die folgenden Schritte unterteilt werden: #🎜 🎜# Ermitteln Sie zunächst, wie viel Videospeicher Sie benötigen (mindestens 12 GB für die Bilderzeugung, mindestens 24 GB für die Verarbeitung von Transformer); # 🎜🎜# Aber es könnte eine ideale GPU für Anfänger sein, die noch keine Erfahrung mit Deep Learning haben. Einige dieser GPUs eignen sich hervorragend für Kaggle-Wettbewerbe. Um bei Kaggle-Wettbewerben gut abzuschneiden, ist die Arbeitsweise wichtiger als die Modellgröße, daher sind viele kleinere GPUs gut geeignet. Kaggle ist als weltweit größte Sammelplattform für Datenwissenschaftler bekannt, auf der sich Experten versammeln, und ist auch für Neulinge geeignet. Die beste GPU für akademische Forschung und Serverbetrieb scheint die A6000 Ada GPU zu sein. Gleichzeitig ist H100 SXM auch sehr kostengünstig, mit großem Speicher und starker Leistung. Wenn ich aus persönlicher Erfahrung einen kleinen Cluster für ein Unternehmens-/akademisches Labor aufbauen würde, würde ich 66-80 % A6000-GPU und 20-33 % H100-SXM-GPU empfehlen. Nachdem wir so viel gesagt haben, kommen wir endlich zur GPU-Komfortstufe. Tim Dettmers hat speziell ein „GPU-Kaufablaufdiagramm“ erstellt. Wenn Sie über genügend Budget verfügen, können Sie sich für eine höhere Konfiguration entscheiden. Wenn Sie nicht über genügend Budget verfügen, wenden Sie sich bitte an die kostengünstige Option. Zunächst möchte ich einen Punkt hervorheben: Egal für welche GPU Sie sich entscheiden, Sie müssen zunächst sicherstellen, dass der Speicher Ihren Anforderungen gerecht wird. Dazu muss man sich ein paar Fragen stellen: Was möchte ich mit der GPU machen? Sollte ich es verwenden, um an Kaggle-Wettbewerben teilzunehmen, Deep Learning zu erlernen, Lebenslauf-/NLP-Recherchen durchzuführen oder kleine Projekte zu spielen? Wenn Sie über genügend Budget verfügen, können Sie sich die Benchmarks oben ansehen und die beste GPU für Sie auswählen. Sie können den benötigten GPU-Speicher auch abschätzen, indem Sie Ihr Problem für einen bestimmten Zeitraum in Vast.ai oder Lambda Cloud ausführen, um zu verstehen, ob es Ihren Anforderungen entspricht. Wenn Sie nur gelegentlich (für ein paar Stunden alle paar Tage) eine GPU benötigen und keine großen Datensätze herunterladen und verarbeiten müssen, funktionieren auch Vast.ai oder Lambda Cloud gut. Wenn die GPU jedoch einen Monat lang jeden Tag verwendet wird und die Nutzungshäufigkeit hoch ist (12 Stunden am Tag), ist die Cloud-GPU normalerweise keine gute Wahl. Berechnungen mit geringer Genauigkeit
Lüfterdesign und GPU-Temperatur
Elegante Lösung von Problemen mit der Leistungsbegrenzung
Problem mit dem Brand des RTX 4090-Anschlusses
8-Bit-Gleitkomma-Unterstützung in H100 und RTX40
GPU-Deep-Learning-Leistungsranking
Wie viel Rechenleistung kann man pro Dollar kaufen? ...
Umfassende Empfehlung
Das obige ist der detaillierte Inhalt vonLeitfaden zur Auswahl einer Deep-Learning-GPU: Welche Grafikkarte ist für meinen Alchemieofen würdig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!