3 Punkte von xguru 2025-02-26 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Eine Bibliothek zur effizienten Ausführung von FP8-Matrixmultiplikation (GEMM), die die in DeepSeek-V3 vorgeschlagene Methode des feingranularen Skalierens (fine-grained scaling) unterstützt
  • Unterstützt sowohl allgemeines GEMM als auch gruppiertes GEMM für Mix-of-Experts (MoE)
  • Auf CUDA basierend implementiert; bei der Installation ist keine separate Kompilierung erforderlich, da ein leichtgewichtiges Just-In-Time-(JIT)-Modul verwendet wird, das die Kernel zur Laufzeit kompiliert
  • Derzeit ausschließlich für NVIDIA-Hopper-Tensor-Cores unterstützt
  • Verwendet CUDA-Core-basiertes doppeltes Akkumulieren (promotion), um ungenaue Akkumulationsoperationen der FP8-Tensor-Cores auszugleichen
  • Nutzt einige Konzepte aus CUTLASS und CuTe, reduziert jedoch die Abhängigkeit von komplexen Templates und verfolgt ein einfaches Design mit nur etwa 300 Zeilen Kernel-Code
  • Gut geeignet, um Hopper-FP8-Matrixoperationen und Optimierungstechniken zu erlernen
  • Trotz des leichtgewichtigen Designs zeigt es bei verschiedenen Matrixgrößen eine Leistung auf dem Niveau von professionell getunten Bibliotheken oder sogar darüber

Leistungsbewertung

Allgemeine GEMM-Leistung (Dense-Modelle)

  • Für verschiedene Matrixgrößen wurde eine Leistungsbewertung in der DeepSeek-V3/R1-Inferenzumgebung durchgeführt
  • Getestet in einer NVIDIA-H800-GPU-(NVCC-12.8)-Umgebung
  • Der Speedup-Wert wurde im Vergleich zu einer intern optimierten Version auf Basis von CUTLASS 3.6 berechnet
  • Wichtigste Leistungsübersicht
    • Bei kleinen Matrixgrößen bis zu 2,7-fache Beschleunigung
    • Bei einigen großen Matrixgrößen konstante Leistung auf dem Niveau von 1,0x bis 1,2x
    • Durch Optimierung von Speicherbandbreite und Rechenleistung auf die Hopper-Architektur abgestimmte Performance

Gruppierte GEMM-Leistung für MoE-Modelle

  • Gruppiertes GEMM mit zusammenhängendem (contiguous) Layout
    • Gruppierung entlang der M-Achse, während N und K unverändert bleiben
    • Zeigt bis zu 1,2-fache Beschleunigung und hält in bestimmten Konfigurationen etwa 1,1x
  • Gruppiertes GEMM mit maskiertem (masked) Layout
    • Entworfen für Fälle bei Verwendung von CUDA Graphs, in denen die CPU die Token-Anzahl je Experte nicht kennen kann
    • Übergibt einen Mask-Tensor als Eingabe, um nur die erforderlichen Berechnungen auszuführen
    • Leistungsverbesserung im Bereich von 1,1x bis 1,2x

Der 3. Beitrag von 5 Open-Source-Projekten, die unter DeepSeek Open Infra veröffentlicht werden

Noch keine Kommentare.

Noch keine Kommentare.