DeepSeek V3 Einzelheiten zum Papier: Wie man das CUDA-Monopol umgeht!

Die beiden kürzlich veröffentlichten Modelle von DeepSeek, DeepSeek-V3 und DeepSeek-R1, erreichen eine Leistung, die mit ähnlichen Modellen von OpenAI vergleichbar ist, und das zu wesentlich geringeren Kosten.

Ausländischen Medienberichten zufolge haben sie in nur zwei Monaten ein MoE-Sprachmodell mit 671 Milliarden Parametern auf einem Cluster von 2.048 H800-GPUs trainiert, was zehnmal effizienter ist als die beste KI.

Dieser Durchbruch wurde nicht durch den Einsatz von CUDA erreicht, sondern durch eine große Anzahl feinkörniger Optimierungen und die Verwendung von NVIDIAs assemblerähnlicher PTX-Programmierung (Parallel Thread Execution).

DeepSeek war gezwungen, einen anderen Weg einzuschlagen als OpenAI und andere Unternehmen, die auf Brute-Force-Rechenleistung unter Hardware-Beschränkungen setzen. Es hat eine Reihe von technologischen Innovationen eingesetzt, um den Energiebedarf des Modells zu senken und gleichzeitig Leistungssteigerungen zu erzielen.

Einige begeisterte Kommentare von Internetnutzern:

"Wenn es in dieser Welt Gruppen von Menschen gibt, die so verrückt sind, Dinge zu sagen wie 'CUDA ist zu langsam!

Geniale Geeks optimieren PTX zur Maximierung der GPU-Leistung

NVIDIA PTX (Parallel Thread Execution) ist eine speziell für die NVIDIA-GPUs entwickelte Middle-Instruction-Set-Architektur, die zwischen den GPU-Hochsprachen (z. B. CUDA C/C++) oder anderen Front-End-Sprachen und dem Low-Level-Maschinencode (Streaming Assembly oder SASS) angesiedelt ist.

PTX ist eine Low-Level-Befehlssatzarchitektur, die die GPU als datenparalleles Rechengerät darstellt und feinkörnige Optimierungen wie Registerzuweisung und Thread/Thread-Bundle-Abstimmung ermöglicht, die mit Sprachen wie CUDA C/C++ nicht möglich sind.

Wenn PTX in SASS konvertiert wird, wird es für eine bestimmte Generation von NVIDIA-GPUs optimiert.

Beim Training des V3-Modells hat DeepSeek die NVIDIA H800 GPU neu konfiguriert:

Von den 132 Stream-Prozessorkernen wurden 20 für die Kommunikation zwischen Servern zugewiesen, hauptsächlich für die Datenkomprimierung und -dekomprimierung, um die Verbindungsgrenze des Prozessors zu durchbrechen und die Geschwindigkeit der Transaktionsverarbeitung zu erhöhen.

Um die Leistung zu maximieren, implementierte DeepSeek auch fortschrittliche Pipelining-Algorithmen durch zusätzliche feinkörnige Thread/Thread-Bundle-Anpassungen.

Diese Optimierungen gehen weit über das Niveau der konventionellen CUDA-Entwicklung hinaus, sind aber extrem schwierig zu pflegen. Doch gerade dieses Optimierungsniveau ist es, das die herausragenden technischen Fähigkeiten des DeepSeek-Teams voll zur Geltung bringt.

In dem V3-Papier wird ausdrücklich auf Details zu PTX hingewiesen

Das liegt daran, dass Unternehmen wie DeepSeek unter dem doppelten Druck des weltweiten GPU-Mangels und der US-Beschränkungen nach innovativen Lösungen suchen mussten.

Glücklicherweise haben sie in diesem Bereich bedeutende Durchbrüche erzielt.

Ein Entwickler glaubt, dass "Low-Level-GPU-Programmierung die richtige Richtung ist. Je mehr Optimierung, desto geringer die Kosten bzw. das Leistungsbudget, das ohne zusätzlichen Aufwand für andere Fortschritte genutzt werden kann."

Dieser Durchbruch hatte erhebliche Auswirkungen auf den Markt, und einige Investoren sind der Meinung, dass das neue Modell die Nachfrage nach Hochleistungshardware verringern wird, was sich auf die Verkaufszahlen von Unternehmen wie NVIDIA auswirken kann.

Branchenveteranen, darunter der ehemalige Intel-CEO Pat Gelsinger, sind jedoch der Meinung, dass KI-Anwendungen die gesamte verfügbare Rechenleistung voll ausschöpfen können.

Gelsinger sieht in diesem Durchbruch von DeepSeek eine neue Möglichkeit, KI-Funktionen in kostengünstige Geräte für den Massenmarkt einzubauen.

PTX und CUDA

Bedeutet die Einführung von DeepSeek also, dass für die Entwicklung modernster LLM keine großen GPU-Cluster mehr erforderlich sind?

Werden die enormen Investitionen in Computerressourcen von Google, OpenAIsind Meta und xAI letztendlich nutzlos? Der allgemeine Konsens unter KI-Entwicklern ist, dass dies nicht der Fall ist.

Es ist jedoch sicher, dass es noch ein riesiges Potenzial für die Datenverarbeitung und die Optimierung von Algorithmen gibt, und in Zukunft werden sicherlich weitere innovative Optimierungsmethoden entwickelt werden.

Da das V3-Modell von DeepSeek als Open Source verfügbar ist, werden die Details in seinem technischen Bericht ausführlich offengelegt.

Der Bericht dokumentiert die tiefgreifenden Optimierungen, die von DeepSeek durchgeführt wurden. Kurz gesagt, der Grad der Optimierung lässt sich so zusammenfassen: "Sie haben das gesamte System von Grund auf neu aufgebaut."

Wie bereits erwähnt, hat DeepSeek beim Training des V3 mit dem H800-Grafikprozessor die Recheneinheiten des Grafikprozessors (Streaming-Multiprozessor-Kerne oder SMs) an die jeweiligen Anforderungen angepasst.

Von den insgesamt 132 SMs wurden 20 speziell für die Kommunikation zwischen den Servern und nicht für Rechenaufgaben eingesetzt.

Diese Anpassung erfolgt auf der PTX-Ebene (Parallel Thread Execution), dem Low-Level-Befehlssatz der NVIDIA-GPU.

PTX läuft auf einer Ebene, die der Assemblersprache nahe kommt, und ermöglicht feinkörnige Optimierungen wie die Registerzuweisung und die Abstimmung auf Thread-/Thread-Bundle-Ebene. Diese Feinsteuerung ist jedoch komplex und schwer zu pflegen.

Aus diesem Grund bevorzugen Entwickler in der Regel High-Level-Programmiersprachen wie CUDA, die ausreichende Leistungsoptimierungen für die meisten parallelen Programmieraufgaben bieten und die Notwendigkeit von Optimierungen auf niedriger Ebene überflüssig machen.

Wenn es jedoch darum geht, die Effizienz der GPU-Ressourcen zu maximieren und bestimmte Optimierungsanforderungen zu erfüllen, müssen die Entwickler auf PTX zurückgreifen.

Die technischen Hindernisse bleiben jedoch bestehen

Diesbezüglich sagte der Internetnutzer Ian Cutress: "Deepseeks Verwendung von PTX beseitigt nicht die technischen Barrieren von CUDA."

CUDA ist eine Hochsprache. Sie erleichtert die Entwicklung von Bibliotheken und Schnittstellen mit NVIDIA-GPUs und unterstützt eine schnelle, iterative Entwicklung.

CUDA kann die Leistung durch Feinabstimmung des zugrunde liegenden Codes (d. h. PTX) optimieren, und die grundlegenden Bibliotheken sind bereits vollständig. Die meiste Software auf Produktionsebene wird derzeit auf CUDA aufgebaut.

PTX ähnelt eher einer direkt verständlichen Assemblersprache für die GPU. Es arbeitet auf einer niedrigen Ebene und ermöglicht eine Optimierung auf Mikroebene.

Wenn Sie sich für die Programmierung in PTX entscheiden, bedeutet dies, dass keine der oben erwähnten integrierten CUDA-Bibliotheken verwendet werden kann. Dies ist eine sehr mühsame Aufgabe, die fundiertes Fachwissen über Hardware- und Laufzeitfragen erfordert.

Wenn Entwickler jedoch genau wissen, was sie tun, können sie in der Tat eine bessere Leistung und Optimierung zur Laufzeit erreichen.

Derzeit wird im NVIDIA-Ökosystem hauptsächlich CUDA verwendet.

Entwickler, die eine zusätzliche 10-20% Leistung oder Energieeffizienz aus ihrer Rechenlast herausholen wollen, wie Unternehmen, die Modelle in der Cloud bereitstellen und Token-Dienste verkaufen, haben in der Tat von der CUDA-Ebene auf die PTX-Ebene optimiert. Sie sind bereit, Zeit zu investieren, weil es sich auf lange Sicht lohnt.

Es ist zu beachten, dass PTX in der Regel für ein bestimmtes Hardwaremodell optimiert ist und sich nur schwer zwischen verschiedenen Hardwaremodellen portieren lässt, es sei denn, es wird eine spezielle Anpassungslogik geschrieben.

Darüber hinaus erfordert die manuelle Abstimmung des Rechenkerns viel Ausdauer, Mut und eine besondere Fähigkeit, ruhig zu bleiben, da das Programm alle 5.000 Zyklen einen Speicherzugriffsfehler haben kann.

Natürlich haben wir für die Szenarien, in denen PTX wirklich benötigt wird, und für die Entwickler, die genug Geld haben, um sich mit diesen Problemen zu befassen, volles Verständnis und Respekt.

Für alle anderen Entwickler ist es ratsam, weiterhin CUDA oder andere fortgeschrittene Varianten auf der Grundlage von CUDA (oder MLIR) zu verwenden.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert