Eine Kette ist so stark wie ihr schwächstes Glied – und Ihre KI/ML-Infrastruktur ist nur so schnell wie Ihre langsamste Komponente. Wenn Sie Modelle für maschinelles Lernen mit GPUs trainieren, ist Ihre Speicherlösung möglicherweise Ihr schwaches Glied. Das Ergebnis ist das, was ich das „Hunger-GPU-Problem“ nenne. Das Problem „hungernde GPU“ tritt auf, wenn Ihr Netzwerk oder Ihre Speicherlösung Trainingsdaten nicht schnell genug an Ihre Trainingslogik weitergeben kann, um Ihre GPUs vollständig auszunutzen. Die Symptome sind ziemlich offensichtlich. Wenn Sie Ihre GPUs überwachen, werden Sie feststellen, dass sie nie annähernd voll ausgelastet sind. Wenn Sie Ihren Trainingscode instrumentiert haben, werden Sie feststellen, dass die gesamte Trainingszeit von IO dominiert wird.
Leider gibt es für diejenigen, die mit diesem Problem ringen, schlechte Nachrichten. Schauen wir uns einige Fortschritte bei GPUs an, um zu verstehen, warum sich dieses Problem in den kommenden Jahren nur verschlimmern wird.
GPUs werden schneller. Nicht nur die Rohleistung wird besser, sondern auch der Speicher und die Bandbreite nehmen zu. Werfen wir einen Blick auf diese drei Eigenschaften der neuesten GPUs von Nvidia
GPU | LEISTUNG | ERINNERUNG | SPEICHERBANDBREITE |
---|---|---|---|
A100 | 624 TFLOPS | 40 GB | 1.555 GB/s |
H100 | 1.979 TFLOPS | 80 GB | 3,35 TB/s |
H200 | 1.979 TFLOPS | 141 GB | 4,8 TB/s |
Die obige Tabelle verwendet die Statistiken, die mit einer PCIe-Sockellösung (Peripheral Component Interconnect Express) für den A100 und der SXM-Sockellösung (Server PCI Express Module) für den H100 und den H200 übereinstimmen. Für den A100 liegen keine SXM-Statistiken vor. Bezüglich der Leistung wird für den Vergleich die Floating Point 16 Tensor Core-Statistik herangezogen.
Es lohnt sich, einige Beobachtungen zu den oben genannten Statistiken hervorzuheben. Erstens haben der H100 und der H200 die gleiche Leistung (1.979 TFLOPS), was 3,17-mal höher ist als der A100. Der H100 hat doppelt so viel Speicher wie der A100 und die Speicherbandbreite ist um den gleichen Betrag gestiegen – was Sinn macht, sonst würde die GPU verhungern. Der H200 kann satte 141 GB Speicher verarbeiten und auch seine Speicherbandbreite hat sich im Vergleich zu den anderen GPUs proportional erhöht.
Schauen wir uns jede dieser Statistiken genauer an und diskutieren, was sie für maschinelles Lernen bedeutet.
Leistung – Ein Teraflop (TFLOP) entspricht einer Billion (10^12) Gleitkommaoperationen pro Sekunde. Das ist eine 1 mit 12 Nullen dahinter (1.000.000.000.000). Es ist schwierig, TFLOPs mit dem E/A-Bedarf in Gigabyte gleichzusetzen, da die Gleitkommaoperationen, die während des Modelltrainings auftreten, einfache Tensorberechnungen sowie erste Ableitungen gegen die Verlustfunktion (auch Gradienten genannt) umfassen. Relative Vergleiche sind jedoch möglich. Wenn wir uns die Statistiken oben ansehen, sehen wir, dass der H100 und der H200, die beide mit 1.979 TFLOPS arbeiten, dreimal schneller sind – und möglicherweise dreimal schneller Daten verbrauchen, wenn alles andere mithalten kann.
GPU-Speicher – Auch bekannt als Video-RAM oder Grafik-RAM. Der GPU-Speicher ist vom Hauptspeicher (RAM) des Systems getrennt und speziell für die Bewältigung der intensiven grafischen Verarbeitungsaufgaben der Grafikkarte konzipiert. Der GPU-Speicher bestimmt die Stapelgröße beim Training von Modellen. In der Vergangenheit wurde die Batchgröße verringert, wenn die Trainingslogik von einer CPU auf eine GPU verschoben wurde. Da der GPU-Speicher jedoch hinsichtlich der Kapazität zum CPU-Speicher aufschließt, erhöht sich die für das GPU-Training verwendete Batchgröße. Wenn Leistung und Speicherkapazität gleichzeitig steigen, führt dies zu größeren Anfragen, bei denen jedes Gigabyte an Trainingsdaten schneller verarbeitet wird.
Speicherbandbreite – Stellen Sie sich die GPU-Speicherbandbreite als die „Autobahn“ vor, die den Speicher und die Rechenkerne verbindet. Sie bestimmt, wie viele Daten pro Zeiteinheit übertragen werden können. So wie auf einer breiteren Autobahn mehr Autos in einer bestimmten Zeit vorbeifahren können, ermöglicht eine höhere Speicherbandbreite, dass mehr Daten zwischen Speicher und GPU verschoben werden können. Wie Sie sehen können, haben die Entwickler dieser GPUs die Speicherbandbreite für jede neue Version proportional zum Speicher erhöht; Daher stellt der interne Datenbus des Chips nicht den Engpass dar.
Im August 2023, Nvidia
Während alle Spezifikationen des Grace Hopper Superchip eine Verbesserung gegenüber früheren Chips darstellen, ist die wichtigste Innovation für KI/ML-Ingenieure sein einheitlicher Speicher. Grace Hopper gewährt der GPU vollen Zugriff auf den Speicher der CPU. Dies ist wichtig, da Ingenieure, die GPUs für Schulungen verwenden wollten, in der Vergangenheit zunächst Daten in den Systemspeicher ziehen und sie dann von dort in den GPU-Speicher verschieben mussten. Grace Hopper macht es überflüssig, den Speicher der CPU als Bounce-Puffer zu verwenden, um Daten an die GPU zu übertragen.
Der einfache Vergleich einiger wichtiger GPU-Statistiken sowie der Fähigkeiten von Grace Hopper muss für jeden, der für die Aktualisierung von GPUs verantwortlich ist und dafür sorgt, dass alles andere mithalten kann, ein wenig beängstigend sein. Eine Speicherlösung muss Daten unbedingt schneller bereitstellen, um mit diesen GPU-Verbesserungen Schritt zu halten. Schauen wir uns eine gängige Lösung für das Problem der hungrigen GPU an.
Es gibt eine allgemeine und offensichtliche Lösung für dieses Problem, bei der Unternehmen ihre bestehende Speicherlösung nicht ersetzen oder aktualisieren müssen. Sie können Ihre bestehende Speicherlösung beibehalten, sodass Sie alle Unternehmensfunktionen nutzen können, die Ihr Unternehmen benötigt. Bei dieser Speicherlösung handelt es sich höchstwahrscheinlich um einen Data Lake, der alle unstrukturierten Daten Ihres Unternehmens enthält. Daher kann sie recht groß sein und die Gesamtbetriebskosten sind eine Überlegung wert. Darüber hinaus sind viele Funktionen für Redundanz, Zuverlässigkeit und Sicherheit aktiviert, die sich alle auf die Leistung auswirken.
Was jedoch möglich ist, besteht darin, eine Speicherlösung einzurichten, die sich im selben Rechenzentrum wie Ihre Recheninfrastruktur befindet – idealerweise wäre diese im selben Cluster wie Ihre Recheninfrastruktur. Stellen Sie sicher, dass Sie über ein Hochgeschwindigkeitsnetzwerk mit den besten verfügbaren Speichergeräten verfügen. Kopieren Sie von dort nur die Daten, die für das ML-Training benötigt werden.
Das hat Amazon kürzlich angekündigt
Die von mir oben beschriebene allgemeine Lösung erforderte, dass AWS seine S3-Speicherlösung anpassen musste, indem es Spezial-Buckets zu höheren Kosten anbot. Darüber hinaus kaufen einige Organisationen (die keine MinIO-Kunden sind) spezielle Speicherlösungen, die die einfachen Dinge tun, die ich oben beschrieben habe. Leider erhöht dies die Komplexität einer bestehenden Infrastruktur, da zur Lösung eines relativ einfachen Problems ein neues Produkt benötigt wird.
Die Ironie dabei ist, dass MinIO-Kunden diese Option schon immer hatten. Mit einer Neuinstallation von MinIO in einem Hochgeschwindigkeitsnetzwerk mit NVMe-Laufwerken können Sie genau das tun, was ich oben beschrieben habe. MinIO ist eine softwaredefinierte Speicherlösung – das gleiche Produkt läuft auf Bare-Metal oder dem Cluster Ihrer Wahl mit einer Vielzahl von Speichergeräten. Wenn Ihr Unternehmens-Data Lake MinIO auf Bare-Metal mit Festplatten verwendet und es für alle Ihre Nicht-ML-Daten einwandfrei funktioniert, gibt es keinen Grund, es zu ersetzen. Wenn die für ML verwendeten Datensätze jedoch eine schnellere E/A erfordern, weil Sie GPUs verwenden, sollten Sie den in diesem Beitrag beschriebenen Ansatz in Betracht ziehen. Stellen Sie sicher, dass Sie eine Kopie Ihrer ML-Daten zur Verwendung in Ihrer Hochgeschwindigkeitsinstanz von MinIO erstellen – eine Goldkopie sollte in einer gehärteten Installation von MinIO immer vorhanden sein. Dadurch können Sie Funktionen wie Replikation und Verschlüsselung in Ihrer Hochgeschwindigkeitsinstanz von MinIO deaktivieren und so die Leistung weiter steigern. Das Kopieren von Daten ist mit MinIOs einfach
MinIO ist in der Lage, die erforderliche Leistung zu erbringen, um Ihre hungrigen GPUs zu versorgen – a
Herunterladen
Erscheint auch hier .