Warum Grafikkarten
Weshalb KI auf Grafikkarten läuft und nicht auf Prozessoren: der Unterschied zwischen wenigen schnellen und vielen langsamen Rechenwerken, mit Zahlen.
Die Idee
Ein Prozessor hat vielleicht 16 Rechenkerne, jeder sehr schnell und sehr flexibel. Eine Grafikkarte hat mehrere tausend Rechenwerke, jedes einfacher und langsamer, die aber alle gleichzeitig dieselbe Rechnung auf verschiedenen Zahlen ausführen.
Wenn eine Aufgabe aus einer Million voneinander unabhängiger, gleichartiger Multiplikationen besteht, gewinnt die zweite Bauart um zwei Größenordnungen. Genau so eine Aufgabe ist eine Matrixmultiplikation, und genau daraus besteht ein neuronales Netz.
Der Vergleich in Zahlen
| Prozessor (Server-CPU) | Grafikkarte (Rechenzentrum) | |
|---|---|---|
| Rechenkerne | 32 bis 128 | mehrere tausend |
Rechenleistung float16 | 2 bis 5 TFLOP/s | 300 bis 2.000 TFLOP/s |
| Speicherbandbreite | 200 bis 500 GB/s | 2.000 bis 8.000 GB/s |
| Speicher | 128 GB bis 2 TB | 24 bis 192 GB |
| Stärke | Verzweigungen, Nacheinander | Gleiche Rechnung auf vielen Daten |
Die Rechnung, die den Bedarf bestimmt
Für ein Sprachmodell gilt in guter Näherung: je erzeugtem Token werden alle Gewichte einmal aus dem Speicher gelesen. Damit ist die Bandbreite und nicht die Rechenleistung die Grenze.
Durchgerechnet für ein Modell mit 7 Milliarden Parametern in float16, also
14 GB, auf einer Karte mit 1.000 GB/s Bandbreite: 1.000/14 ≈ 71 Token je
Sekunde. In int8 sind es 7 GB und damit rund 142 Token je Sekunde. Diese
Verdopplung durch Quantisierung entsteht ohne jede zusätzliche Rechenleistung.
Welche Karte wofür
| Vorhaben | Speicherbedarf | Anmerkung |
|---|---|---|
| Modell mit 7 Mrd. Parametern, int4 | ~5 GB | Läuft auf einer Karte für Endanwender |
| Modell mit 7 Mrd., float16 | ~15 GB | 16 GB reicht knapp, 24 GB komfortabel |
| Modell mit 70 Mrd., int4 | ~40 GB | Eine große Karte oder zwei kleinere |
| Modell mit 70 Mrd., float16 | ~145 GB | Mehrere Karten zwingend |
| Feinabstimmung mit LoRA, 7 Mrd. | ~20 GB | Siehe LoRA und PEFT |
| Volles Training, 7 Mrd. | ~120 GB | Siehe Optimierung |
Warum die Rechenleistung selten die Grenze ist
Eine Karte mit 1.000 TFLOP/s und 3.000 GB/s hat ein Verhältnis von rund 333 Operationen je Byte. Bei der Erzeugung eines einzelnen Tokens liegt die arithmetische Intensität nahe bei 2, also um mehr als zwei Größenordnungen darunter. Das Rechenwerk ist dabei zu über 99 Prozent unbeschäftigt.
Die Gegenmaßnahme ist Stapelverarbeitung: Werden 64 Anfragen gemeinsam bearbeitet, werden die Gewichte einmal gelesen und 64 Mal benutzt, und die Intensität steigt auf rund 128. Deshalb ist der Durchsatz je Karte bei vielen gleichzeitigen Anfragen zehn- bis fünfzigmal höher als bei einer einzelnen. Siehe Inferenz schneller machen.
Kosten, durchgerechnet
Eine Beispielrechnung für den Betrieb eines Modells mit 7 Milliarden Parametern:
| Posten | Annahme | Ergebnis |
|---|---|---|
| Karte | 300 W unter Last | |
| Auslastung | 60 % über den Tag | 4,3 kWh je Tag |
| Strom | 0,25 EUR je kWh | 1,08 EUR je Tag |
| Kühlung, PUE 1,3 | Zuschlag 30 % | 1,40 EUR je Tag |
| Abschreibung Karte | 8.000 EUR auf 3 Jahre | 7,30 EUR je Tag |
| Summe | rund 8,70 EUR je Tag |
Bei 142 Token je Sekunde und 60 Prozent Auslastung sind das etwa 7,4 Millionen Token je Tag, also rund 1,18 EUR je Million Token. Diese Zahl ist der Vergleichsmaßstab gegen eine Schnittstelle nach Verbrauch und beantwortet die Frage nach dem Eigenbetrieb sachlich statt grundsätzlich. Siehe Was KI kostet.
Alternativen zu Grafikkarten
| Bauart | Stärke | Schwäche |
|---|---|---|
| GPU | Universell, ausgereifte Software | Preis, Verfügbarkeit |
| TPU und ähnliche | Sehr effizient bei großen Matrizen | An eine Plattform gebunden |
| NPU in Endgeräten | Sehr sparsam | Kleine Modelle, begrenzter Speicher |
| CPU mit Erweiterungen | Vorhanden, kein Zusatzkauf | Um Faktor 10 bis 50 langsamer |
| FPGA | Anpassbar, niedrige Latenz | Hoher Entwicklungsaufwand |