1 Punkte von GN⁺ 2024-06-14 | 1 Kommentare | Auf WhatsApp teilen
  • Im Inferenzvergleich von TensorWave und MK1 mit Mixtral 8x7B zeigte die Kombination MI300X+MK1 Flywheel in realen Chat-Use-Cases einen um 33 % höheren Durchsatz als H100 SXM+vLLM
  • Im Mittelpunkt des Tests stand ein MoE-Modell: Mixtral 8x7B passt auf eine einzelne MI300X mit 192 GB VRAM, während die H100 mit 80 GB VRAM zwei Karten und Tensor Parallelism 2 benötigt
  • Bei Offline-Batch-Inferenz lag die MI300X-Kombination bei allen Batch-Größen vorn; der Leistungsunterschied lag im Bereich von 1,22x bis 2,94x
  • Der Test mit Online-Chat-Verteilung nutzte Anfragen mit durchschnittlich 573 Eingabe-Tokens und 50 Ausgabe-Tokens; bei einem Zielwert von 5 Sekunden mittlerer Latenz verarbeiteten 2 MI300X 33 % mehr Anfragen pro Sekunde als 2 H100
  • TensorWave sieht die MI300X unter Berücksichtigung nicht nur des Durchsatzes, sondern auch der Kostenwettbewerbsfähigkeit und Hardware-Verfügbarkeit als starke Option für großskalige Cloud-Inferenz

Kern des Vergleichs: Kann MI300X H100 bei MoE-Inferenz übertreffen?

  • Im Zentrum des Tests steht die Frage, ob AMDs Flaggschiff-Beschleuniger MI300X die NVIDIA-Hopper-Architektur in realen AI-Workloads übertreffen kann
  • TensorWave und MK1 arbeiteten einen Monat lang zusammen, um AI-Inferenzleistung aus AMD-Hardware herauszuholen
  • Der anfängliche Fokus lag auf der Mixture-of-Experts(MoE)-Architektur
    • MoE wurde wegen seiner Recheneffizienz und Popularität ausgewählt
    • Die Struktur wird als Grundlage leistungsstarker Open-Source-LLMs von Mistral, Meta, Databricks und X.ai vorgestellt
  • Die MI300X mit MK1-Inferenzsoftware erreichte in einem realen Chat-Use-Case auf Basis von Mixtral 8x7B einen um 33 % höheren Durchsatz als die Kombination aus H100 SXM und vLLM
  • TensorWave erkennt an, dass das Software-Ökosystem von NVIDIA reifer ist, bewertet AMD aber bereits als starken Wettbewerber im AI-Markt

Benchmark-Konfiguration

  • Alle Benchmarks wurden mit dem Modell Mixtral 8x7B durchgeführt
  • Alle Inferenz-Frameworks wurden so konfiguriert, dass sie den FP16-Rechenpfad verwenden
    • Die Aktivierung von FP8-Berechnungen bleibt zukünftiger Arbeit vorbehalten
  • Um unterschiedliche Tensor-Parallelism-Konfigurationen zu vergleichen, wurde der Durchsatz der MI300X auf das Doppelte extrapoliert
  • AMD-System

    • Der TensorWave-Knoten wurde mit 8 MI300X-Beschleunigern, 2 AMD-EPYC-CPU-Prozessoren, insgesamt 192 Kernen und 2,3 TB DDR5-RAM getestet
    • Die Spezifikationen der MI300X-Beschleuniger lauten wie folgt
      • 192 GB VRAM
      • 5,3 TB/s
      • FP16 ca. 1300 TFLOPS
    • Die Software-Konfiguration lautet wie folgt
      • ROCm 6.1.2
      • MK1-Inferenz-Engine Flywheel v0.9.2
      • AMD-ROCm-optimierter vLLM-Fork rocm/vllm v0.4.0
    • Da das gesamte Mixtral-8x7B-Modell in die 192 GB VRAM einer einzelnen MI300X passt, wurde Tensor Parallelism auf 1 (tp=1) gesetzt
  • NVIDIA-System

    • Das H100-System wurde mit 8 H100 SXM5-Beschleunigern mit NVLink, 160 CPU-Kernen und 1,2 TB DDR5-RAM getestet
    • Die Spezifikationen der H100-SXM5-Beschleuniger lauten wie folgt
      • 80 GB VRAM
      • 3,35 TB/s
      • FP16 ca. 986 TFLOPS
    • Die Software-Konfiguration lautet wie folgt
      • CUDA 12.2
      • vLLM v4.3
        • Um Mixtral 8x7B auf zwei H100 mit 80 GB VRAM unterzubringen, wurde Tensor Parallelism auf 2 (tp=2) gesetzt

Ergebnisse der Offline-Inferenz

  • Der Offline-Test erzeugt Prompts fester Größe, übergibt sie direkt an das Modell und misst den maximalen Durchsatz der jeweiligen Inferenzlösung
  • Offline-Batching verarbeitet mehrere Prompts gleichzeitig, um die Hardware-Effizienz zu erhöhen
    • Mit größerer Batch-Größe steigt der Durchsatz
    • Da gleichzeitig mehr Anfragen verarbeitet werden, steigt auch die Latenz
  • Gemäß Standardpraxis wurden die Anfragen innerhalb eines Batches auf gleiche Eingabegröße und gleiche Ausgabegröße beschränkt
  • Der Test wurde mit einer modifizierten Version von benchmark_throughput.py aus dem vLLM-Repository durchgeführt
    • Sie wurde refaktoriert, um Flywheel als Backend einzubeziehen
    • Um Caching-Mechanismen auszuschließen, wurden die Prompts innerhalb eines Batches zufällig erzeugt
  • Die Kombination aus MI300X und MK1 Flywheel zeigte bei allen Batch-Größen eine höhere Leistung als die Kombination aus H100 und vLLM
    • Die Leistungssteigerung lag im Bereich von 1,22x bis 2,94x

Test mit Online-Chat-Verteilung

  • Der Online-Benchmark wurde so gestaltet, dass er eine realistische allgemeine Chat-Anwendung simuliert
  • Der Test erzeugt unabhängige Worker, die Anfragen an einen Endpoint senden, und erhöht die Zahl der Worker, um die Anzahl gleichzeitiger Anfragen zu steigern
  • Die Anfragen wurden anhand einer Standardverteilung für Text-Chat erzeugt
    • Die durchschnittliche Eingabe betrug 573 Tokens
    • Die durchschnittliche Ausgabe betrug 50 Tokens
  • Das Benchmark-Tool unterstützt beliebige Datenverteilungen
  • Es gibt drei Messgrößen
    • Durchsatz: Anzahl der Anfragen pro Sekunde, die bei einem gegebenen Workload verarbeitet werden können
    • Mittlere Latenz: durchschnittliche Zeit bis zur vollständigen Antwortgenerierung pro Anfrage
    • TPOT (Time Per Output Token): durchschnittliche Zeit zur Erzeugung jedes nachfolgenden Tokens nach dem ersten Token; beeinflusst die Geschwindigkeit bei der Generierung langer Antworten
  • Ergebnisse ohne Streaming

    • Der erste Online-Benchmark testet einen Nicht-Streaming-Use-Case
    • Er misst Durchsatz und Latenz, die für die Bereitstellung der vollständigen Antwort erforderlich sind
    • Bei einem Zielwert von 5 Sekunden mittlerer Latenz verarbeiteten 2 MI300X (tp=1) 33 % mehr Anfragen pro Sekunde als 2 H100 (tp=2)
    • Bei gleicher Servicequalität können weniger Beschleuniger eingesetzt werden, um die gleiche Nutzerzahl zu bedienen
  • Streaming-Ergebnisse

    • Der zweite Online-Benchmark aktiviert Streaming und misst Durchsatz sowie TPOT, während Tokens gestreamt werden
    • Die MI300X zeigt bei allen TPOT-Werten einen höheren Durchsatz als die H100
    • Auch bei höherem Traffic-Volumen kann die MI300X Text schneller generieren

Fazit und Deployment-Vorschlag

  • In den Benchmark-Ergebnissen zeigt die AMD MI300X bei Offline- und Online-Inferenzaufgaben für MoE-Architekturen wie Mixtral 8x7B eine höhere Leistung als die NVIDIA H100
  • Auch in realen Szenarien, die nicht nur hohen Durchsatz, sondern auch schnelle Antwortzeiten erfordern, liefert die MI300X starke Ergebnisse
  • TensorWave schlägt vor, dass die MI300X zusammen mit MK1-Software unter Berücksichtigung von Leistung, Kostenwettbewerbsfähigkeit und Hardware-Verfügbarkeit gut geeignet ist, um AI-Inferenz in Unternehmen zu skalieren
  • TensorWave bietet die MI300X zusammen mit MK1-Inferenzsoftware an und weist darauf hin, dass Nutzer sie selbst testen können

1 Kommentare

 
GN⁺ 2024-06-14
Meinungen auf Hacker News
  • Wenn man bedenkt, dass TensorWave ein auf AI-Workloads spezialisierter Cloud-Anbieter ist und AMD Instinct MI300X einsetzt, sollte man diesen Bericht mit einer gewissen Vorsicht lesen

    • Es wird ein typischer AMD-Vergleich angestellt: 8x AMD MI300X (192 GB, 750 W) werden mit 8x H100 SXM5 (80 GB, 700 W) verglichen
      Ein fairerer Vergleich wäre 8x H100 NVL (188 GB, <800 W)
      Auch der Preis sagt viel aus. Wenn AMDs Leistung auf Nvidia-Niveau läge, gäbe es keinen Grund, die Karten für ein Viertel des Preises zu verkaufen
    • Positiv ist, dass genau angegeben wird, wie die Benchmarks gelaufen sind. Wenn man nur die Hardware hat, ist es einfach, sie zu reproduzieren und zu widerlegen oder zu bestätigen
    • Ich bin mir nicht sicher, ob dieser Blogbeitrag besser gewesen wäre, wenn Nvidia-Chips verwendet worden wären
  • Ich verstehe nicht, warum man 2024 immer noch Benchmarks mit 128 Eingabe-Tokens macht. Das repräsentiert die meisten Workloads nicht, und die Prefill-Leistung ist sehr wichtig

    • Mich würde interessieren, welche Eingabelänge als angemessen gilt
      Je nachdem, ob reale Queries kürzer oder länger sind, fällt auch anders aus, warum 128 ungeeignet ist
      Wenn man ein Wort als ein Token betrachtet, sind in meinem Fall die meisten Queries kürzer als 128 Wörter
  • Ich versuche, diesen Punkt optimistisch zu sehen. Dieser Bereich braucht unbedingt Wettbewerb, und die derzeitige Marktkapitalisierung von $NVDA ist abnormal hoch. Sie liegt etwa 0,6 Billionen Dollar über der gesamten Frankfurter Wertpapierbörse

    • Der Wert der Frankfurter Wertpapierbörse ist eher viel zu niedrig. Europäische Entwickler fragen sich ständig, warum sie für die gleiche Arbeit weniger verdienen als in den USA, und genau das ist der Grund
    • Die Frankfurter Wertpapierbörse oder der DAX haben im Allgemeinen eher wenig Aussagekraft. In Deutschland gibt es viele starke, familiengeführte Mittelstand-Unternehmen, die nicht börsennotiert sind
      Außerdem gibt es große nicht börsennotierte Unternehmen im Besitz reicher Deutscher, etwa Discount-Riesen wie Lidl und Aldi oder den Autozulieferer Bosch
    • Wir befinden uns gerade mitten in einer LLM-Blase
      Das Nvidia-Problem wird sich in den nächsten Monaten bis Jahren wahrscheinlich von selbst bereinigen
  • Als AI-Wissenschaftler trainiere ich viele Modelle, und persönlich halte ich AMD im Vergleich zu Nvidia für unterbewertet
    Die Chips sind nicht so schnell wie Nvidias neueste Produkte, und es gibt auch Hürden, die man überwinden muss, damit sie laufen
    Aber für die meisten Workloads in den meisten Branchen ist AMD, wenn man die Frage ausklammert, ob AI selbst ein sinnvoller Kapitaleinsatz ist, deutlich kosteneffizienter und kann fast die gleichen Ergebnisse liefern

  • Markt- und Verkaufspreise spiegeln den wahrgenommenen Wert von Nvidia- und AMD-Lösungen wider. Das umfasst Tools, Software, Gesamtbetriebskosten und Administrierbarkeit
    Außerdem frage ich mich, wie viele Unternehmen solche Beschleuniger so teuer kaufen, um acht 7B-Parameter-Modelle parallel laufen zu lassen
    Es heißt auch, man könne ein 14B-Modell auf einem einzelnen Beschleuniger trainieren; ich würde gern Workloads sehen, die „den gesamten Beschleuniger für Training und Inferenz nutzen“, etwa welchen Inferenzdurchsatz man nach dem Training eines 14B-Modells bei einem 4x14B-Workload bekommt
    AMD und bisher die meisten Anbieter mit Behauptungen zur Inferenzleistung, insbesondere Intel und Apple, haben sich nur Benchmarks herausgesucht, die sie gewinnen konnten, und den Rest ignoriert, bei dem Nvidia vorn liegt. Wie mehrere Kommentare auch bei diesem Beitrag anmerken, wird hier ein Vergleichsmodell aus einer Zwischengeneration verwendet

    • MI300X gewinnt bei einigen Inferenz-Workloads, H100 gewinnt beim Training und bei einigen anderen Inferenz-Workloads. Bei FP8-Inferenz mit TensorRT-LLM ist zum Beispiel die H100 stark, und ROCm ist noch jung, wächst aber schnell
      In einem einzelnen System, also einer Konfiguration mit acht Beschleunigern für LLMs, ist die MI300X bei den Gesamtbetriebskosten der Inferenz gegenüber der H100 sehr wettbewerbsfähig
      Laut Microsoft bietet AMD Instinct MI300X bei GPT-4 das beste Preis-Leistungs-Verhältnis, und AMD arbeitet darauf hin, die Leistung pro Watt bis 2027 um das 100-Fache zu steigern
      https://wccftech.com/amd-instinct-mi300x-best-price-performa...
    • In Markt- und Verkaufspreise fließt auch die Vertriebsstrategie ein. Wenn man in einen Bereich eintritt, der von einem starken Player dominiert wird und in dem dieser eine gewisse „clevere“ Vertriebsstrategie nutzt, braucht ein weniger ausgereiftes Produkt, insbesondere eines mit weniger ausgereifter Software, eine entsprechend passende Preis- und Zuteilungsstrategie
      https://www.techspot.com/news/102056-nvidia-allegedly-punish...
    • Die MI300X-Produktion wird hochgefahren. In der jüngsten Telefonkonferenz zu den Geschäftszahlen sagte Lisa Su, dass es in der ersten Hälfte 2024 Produktionsengpässe gab, die Produktion in der zweiten Hälfte aber steigt und es noch verfügbare Verkaufsvolumina gibt. Das liegt wahrscheinlich an Verbesserungen bei der Versorgung mit CoWoS und HBM3/HBM3E
      Großbestellungen für solche Beschleuniger werden Monate im Voraus aufgegeben
      Microsofts MI300X sind unterdessen bereits vollständig reserviert
      https://techcommunity.microsoft.com/t5/azure-high-performanc...
      „Diese VMs und die Software, die sie antreibt, wurden zweckgerichtet für reale Produktions-Workloads von Azure AI Services entwickelt. Auch GPT-4 Turbo, das leistungsstärkste Natural-Language-Modell der Welt, haben wir bereits für diese VMs optimiert. Die ND MI300X v5 VM bietet führende Kosteneffizienz bei beliebten OpenAI- und Open-Source-Modellen.“
  • Ich frage mich, ob die Tensor-Parallel-Konfiguration die Leistung beeinflusst. Meine naive Vermutung wäre: ja, aber sicher bin ich mir nicht.
    Dem Artikel zufolge kann die AMD-Konfiguration Mixtral 8x7B vollständig in die 192 GB VRAM einer einzelnen MI300X laden, sodass die Tensor-Parallelität tp=1 beträgt; die NVIDIA-Konfiguration muss es dagegen auf zwei H100 mit je 80 GB VRAM verteilen und braucht daher tp=2.

    • Solche Vergleiche halte ich persönlich nicht für fair. Ein guter Vergleich sollte auf die jeweilige Gerätekonfiguration optimiert sein.
      Also ein Modell verwenden, das in die VRAM-Grenzen passt, und etwa 8-Bit-Quantisierung einsetzen, wenn das die Leistung verbessert, statt die Nachteile beider Geräte unnötig offenzulegen.
  • AMD scheint die bessere Hardware zu haben, hat aber noch nicht die Produktionskapazität, um mit Nvidia zu konkurrieren. Wenn echte Konkurrenz aufholt, wird interessant zu sehen sein, wie die Margen schrumpfen.
    Alle glauben, CUDA sei der Grund für Nvidias Dominanz, aber das stimmt nicht. Fast 40 % des diesjährigen Umsatzes stammen von Hyperscalern, die ihre eigenen maßgeschneiderten Stacks zur Interaktion mit GPUs verwenden.
    Es ist nur eine Frage der Zeit, bis Konkurrenten aufholen und günstigere GPUs anbieten.

    • Die Formulierung „eigene maßgeschneiderte Stacks zur Interaktion mit GPUs“ ist nahezu frei erfunden.
      Offenbar wird die CUDA-Plattform mit der C/C++-ähnlichen Sprache verwechselt, die Leute in .cu-Dateien schreiben.
      Es stimmt zwar, dass manche keine .cu-Dateien direkt schreiben, aber niemand umgeht den restlichen CUDA-Stack wie nvcc, PTX, SASS, Runtime und Treiber.
      Ich arbeite selbst bei einem dieser „Hyperscaler“. Wer das nicht glaubt, kann sich ansehen, wie viele CUDA-Kernel es in PyTorch gibt: https://github.com/pytorch/pytorch/tree/main/aten/src/ATen/n...
      Was Nvidia dominant macht, ist zu 100 % CUDA.
    • Ich würde gern genauer erklärt bekommen oder eine Quelle dafür sehen, wie ein Stack ohne CUDA aussehen soll.
    • Produktionskapazität ist letztlich eine Frage der Verhandlungen mit TSMC oder den wenigen Wettbewerbern.
      Ich meine, TSMC hat auch in den USA oder der EU mit der Produktion in einigen Fabriken begonnen.
      Nvidia nutzt TSMC, und AMD nutzt ebenfalls TSMC.
  • Ein guter Start für AMD. Ich interessiere mich auch für Groq als weitere Inferenzoption abseits von Nvidia und nutze es gelegentlich.
    Nvidia ist bei der Fertigung auf TSMC angewiesen. Dass Samsung eine konkurrierende Fertigungsinfrastruktur aufbaut, ist ebenfalls gut, weil Taiwan damit nicht zum Single Point of Failure wird.

  • Ohne geeignete statistische Kennzahlen, insbesondere wenn statt des weit verbreiteten 95. Perzentils nur der Durchschnitt verwendet wird und außerdem Performance pro Watt fehlt, ist der Vergleich nutzlos.

    • Und Performance pro Preis braucht man auch. Das ist letztlich der Kernpunkt.
    • Ich denke, der Durchschnitt ist vielleicht eine Kennzahl, die den Durchsatz besser beschreibt.
      Das 95. Perzentil wäre zusätzlich auch gut.
  • INT8/FP8-Benchmarks wären ebenfalls schön gewesen. Beide Karten hätten das Modell wohl mit etwa 60 GB VRAM laden können, ohne bei der H100 tp=2 verwenden zu müssen.