Wie die Schätzungen entstehen
Diese Seite wurde automatisch von einer KI geschrieben und übersetzt und von Software anhand ihrer Quellen geprüft, ohne menschliche Bearbeitung. Die Spezifikationen stammen aus den angegebenen Quellen; Speicherbedarf und Geschwindigkeiten sind Schätzungen, die mit veröffentlichten Formeln berechnet wurden. Wie wir KI nutzen
Jede Zahl auf dieser Website ist entweder eine Spezifikation, in der zwei unabhängige offene Quellen übereinstimmen, oder das Ergebnis des unten beschriebenen deterministischen Codes. Derselbe Code läuft beim Erstellen der Seiten und in Ihrem Browser.
Was modelliert wird
Modelliert wird: llama.cpp lädt eine GGUF-Datei, nur Text, alle Schichten auf der GPU, Flash Attention aktiviert, Micro-Batch 512, ein Nutzer. Bei mehreren Karten: identische Karten in einem Rechner mit der Standard-Schichtaufteilung von llama.cpp. Multimodale Modelle werden ohne ihren Vision-Projektor und ohne Bildverarbeitung berechnet.
Ollama und LM Studio verwenden llama.cpp, können aber andere Standardwerte nutzen. vLLM, MLX und Transformers belegen Speicher anders und werden nicht modelliert. Ein Ergebnis „Passt“ bedeutet nicht, dass ein bestimmter Treiber oder Back-End die Architektur oder Quantisierung des Modells unterstützt.
Formel, Term für Term
Für jede Karte d ist die Schätzung Q_d dieselbe Größe, die llama.cpp pro Gerät als Modell- + KV- + RS- + Compute-Puffer ausgibt. Die Schichten werden mit der Standardaufteilung von llama.cpp auf die Karten verteilt; das Eingabe-Embedding bleibt im Systemspeicher.
Q_d = W_d + KV_d + S_d + C_d
W_d = Σ_{il ∈ d} layer_bytes[il] + [d = N] × out_bytes
KV_d = Σ_{il ∈ d} (k_il + v_il) × b_kv × cells_il; b_kv: F16 = 2, Q8_0 = 34/32, Q4_0 = 18/32
cells_full = ⌈ctx / 256⌉ × 256
cells_window = ⌈min(ctx, window × n_seq + 512) / 256⌉ × 256
S_d = Σ_{il ∈ d} state_il × 4 B × n_seq
M = (cells_full + cells_window) × 512 × 4 B
L = max(0,25 GiB, n_vocab × 512 × 4 B)
P = M + n_embd × 512 × 4 B
C_d = L + M (N = 1)
C_d = L + 3 × P (N > 1, d = N)
C_d = 0,25 GiB + 4 × P (N > 1, d < N)
X = max_d (Q⁺_d ÷ 0,95 + 1 GiB)
Passt: ∀ d: Q⁺_d ÷ 0,95 + 1 GiB ≤ C_low
Passt nicht: Q⁻ ÷ 1,10 > C_high (N = 1); Σ_d Q⁻_d ÷ 1,10 > N × C_high (N > 1)
Grenzwertig: sonst
C_low = G − D_card − U; C_high = G
tok/s ≤ B ÷ (R + R_KV) W_d- Gewichte auf Karte d: die Bytes der darauf platzierten Schichten, gelesen aus der GGUF-Tensortabelle, plus die Ausgabeschicht auf der letzten Karte.
KV_d- KV-Cache auf Karte d: K- und V-Elemente pro Token jeder Attention-Schicht auf der Karte, mal Bytes pro Element, mal Anzahl der zwischengespeicherten Zellen. Multi-head Latent Attention speichert nur K.
S_d- Rekurrenter Zustand: Zustand fester Größe von rekurrenten Schichten und Linear-Attention-Schichten (32 Bit), einer pro paralleler Sequenz.
C_d, L, M, P- Compute-Puffer: L ist der Logits-Puffer, M die Attention-Maske, P die Eingaben pro Kopie, die Pipeline-Parallelität bei mehreren Karten auf jeder Karte hält.
Q⁺- Q⁺: die Schätzung pro Karte, die für „Passt“ verwendet wird – 4 parallele Sequenzen (Standard von llama-server, -np auto), Schichten genau an einer Kartengrenze werden auf beiden Karten gezählt.
Q⁻- Q⁻: die Schätzung, die für „Passt nicht“ verwendet wird – 1 Sequenz, jede Schicht einmal gezählt, so wie der Quellcode sie zuweist.
X- X: der verfügbare Speicher pro Karte, der für „Passt“ benötigt wird. Die Seiten zeigen ihn als „Benötigter verfügbarer Speicher für Passt“ an.
G, N- G: der Nennspeicher einer Karte (die „24 GB“ des Herstellers werden als 24 GiB gerechnet); N: die Anzahl identischer Karten.
C_low- C_low: als verfügbar für „Passt“ gezählter Speicher — nomineller Speicher abzüglich der Differenz der Karte zwischen nominal und gemeldet (D_card) und der größten Start- und Laufzeitbelegung in den öffentlichen Logs des Profils (U), abgerundet auf ein Vielfaches von 64 MiB.
C_high- C_high: der gesamte Nennspeicher, verwendet für „Passt nicht“.
B, R, R_KV- B: Speicherbandbreite (Bytes pro Sekunde); R: pro erzeugtem Token gelesene Gewichts-Bytes (Nicht-Experten-Tensoren plus der Anteil der verwendeten Experten); R_KV: pro Token gelesene Bytes des KV-Cache.
Konstanten
| Konstante | Wert | Bedeutung |
|---|---|---|
ubatch | 512 | Standardgröße des Micro-Batches in llama.cpp (-ub). |
ctxPad | 256 | KV-Cache-Zellen werden auf ein Vielfaches dieser Zahl aufgefüllt. |
computeFloorBytes | 0,25 GiB | Kleinster Compute-Puffer pro Karte. |
maskBytesPerCell | 4 B | Bytes pro Zelle und Micro-Batch-Token der Attention-Maske (32 Bit). |
fitReservePerDeviceBytes | 1,00 GiB | Reserve, die das Standard-Verhalten von --fit in llama.cpp auf jeder Karte frei hält (-fitt 1024 MiB). |
underestimateTolerance | 5% | Größte Unterschätzung, die die Gold-Standard-Tests zulassen; „Passt“ teilt die Schätzung durch eins minus diesen Wert. |
overestimateTolerance | 10% | Größte Überschätzung, die die Gold-Standard-Tests zulassen; „Passt nicht“ teilt die Schätzung durch eins plus diesen Wert. |
stateBytesPerElem | 4 B | Bytes pro Element des rekurrenten Zustands. |
defaultCtx | 8.192 | Standard-Kontextlänge für Tabellen: so viele Token oder, falls kürzer, das Maximum des Modells. |
defaultSeqs | 4 | Für „Passt“ angenommene parallele Sequenzen (llama-server -np auto, vereinheitlichter KV-Cache). |
goldCoveredCtx | 262.144 | Längste Kontextlänge (Zellen) auf einer Karte, die von den Gold-Standard-Logs abgedeckt wird; die Suche nach der längsten Kontextlänge endet hier. |
maxCards | 8 | Höchste Anzahl berücksichtigter identischer Karten. |
minUsefulCapacityBytes | 2,00 GiB | Kleinster Speicher, der für eine Einstufung als auf einer Karte verfügbar gezählt wird; darunter lautet das Ergebnis „Unbekannt“ (außer „Passt auch auf 8 Karten nicht“). |
pipelineCopies | 4 | Kopien der Layer-Eingaben pro Karte bei Pipeline-Parallelität auf mehreren Karten (GGML_SCHED_MAX_COPIES). |
goldCoveredCtxMulti | 131.072 | Längste Kontextlänge (Zellen) auf mehreren Karten, die von den Gold-Standard-Logs abgedeckt wird. |
cLowStepBytes | 64 MiB | C_low einer diskreten GPU (nominal − D_card − U) wird auf ein Vielfaches dieses Wertes abgerundet. |
Passt, grenzwertig oder passt nicht
„Passt“ bedeutet nur Folgendes: Die standardmäßige --fit-Ladeprüfung von llama.cpp würde alle Layer auf die GPU legen. llama.cpp führt diese Prüfung beim Laden eines Modells durch (geschätzte Puffer plus eine Reserve von 1 GiB pro Karte dürfen den beim Start freien Speicher nicht überschreiten); diese Website berechnet sie mit denselben Pufferregeln neu und lässt Spielraum für Schätzfehler. Sie verspricht nicht, dass der Spitzenspeicher während der Inferenz (Speicherpools, lange Prompts und andere Laufzeitallokationen) hineinpasst.
Die Gold-Standard-Tests erlauben, dass die Schätzung bis zu 5% zu niedrig und bis zu 10% zu hoch ist; daher verwendet jede Seite der Entscheidung ihre eigene Grenze:
- Passt wenn auf jeder Karte Q⁺ ÷ 0,95 + 1 GiB höchstens C_low beträgt. Q⁺ geht von 4 parallelen Sequenzen aus.
- Passt nicht wenn Q⁻ ÷ 1,10 größer ist als der gesamte Speicher C_high (bei mehreren Karten: die Summe über alle Karten gegenüber N × C_high, weil das Standard-Verhalten von --fit die Aufteilung selbst anpasst).
- Grenzwertig dazwischen: Es kann passen oder nicht. Verkürzen Sie die Kontextlänge oder verwenden Sie eine niedrigere Quantisierung.
- Unbekannt wenn kein Laufprofil das Gerät abdeckt, bei Workstation- und Rechenzentrums-GPUs (ihre Speicherkonfiguration ist durch öffentliche Logs nicht belegt) oder wenn der als verfügbar gezählte Speicher unter 2 GiB liegt: Es wird nur X angezeigt, außerdem „Passt nicht“, wenn das Modell selbst für den gesamten Speicher zu groß ist.
X = das größte Q⁺ pro Karte ÷ 0,95 + 1 GiB ist der verfügbare Speicher, der für „Passt“ nötig ist. Die Seiten schreiben „Für Passt benötigter verfügbarer Speicher“ und nicht „mindestens“, weil ein grenzwertiges Ergebnis dieselbe Menge benötigt.
Tabellen prüfen die Quantisierungen von der höchsten zur niedrigsten bei der Standard-Kontextlänge. Eine Zeile zeigt entweder die höchste Quantisierung, die passt (mit X, der längsten Kontextlänge und der Obergrenze der Geschwindigkeit), oder – wenn keine passt – die höchste grenzwertige (mit X), oder – wenn alle zu groß sind – die niedrigste Quantisierung mit ihrem X.
Die längste Kontextlänge wird zwischen der Standard-Kontextlänge und dem Kleineren aus dem Maximum des Modells und der längsten durch gemessene Logs abgedeckten Kontextlänge gesucht (262.144 Zellen auf einer Karte, 131.072 auf mehreren). Wenn es dort immer noch passt, zeigen die Seiten „≥“ diesen Wert: Längere Kontextlängen wurden nicht geprüft.
Mehrere identische Karten werden nur berücksichtigt, wenn eine Karte nicht ausreicht, nur für Desktop-, Workstation- und Rechenzentrums-GPUs mit Laufprofil, und jede Anzahl von 2 bis 8 wird einzeln geprüft (eine zusätzliche Karte senkt die Last der am stärksten belasteten Karte nicht immer, und Pipeline-Parallelität fügt 4 Kopien der Layer-Eingaben hinzu). Die Seite nennt die kleinste Anzahl, die bei der standardmäßigen gleichmäßigen Aufteilung passt; sie ist kein Minimum, weil das Standard-Verhalten von --fit die Aufteilung anpassen kann und eventuell mit weniger Karten auskommt. Für Workstation- und Rechenzentrums-GPUs sowie für GPUs mit weniger als 2 GiB als verfügbar gezähltem Speicher gibt es nur „Passt auch auf 8 Karten nicht“ (oder keine Anzahl).
Laufprofile
Wie viel Speicher als verfügbar zählt, stammt ausschließlich aus öffentlichen llama.cpp-Logs: dem von jedem Gerät gemeldeten Gesamtspeicher, dem freien Speicher bei der --fit-Prüfung von llama.cpp und, sofern ausgegeben, dem nach einem Lauf nicht zugeordneten Speicher. D_card = Nennspeicher − gemeldeter Gesamtspeicher dieses GPU-Modells (der größte Wert, falls mehrere Logs vorliegen); U = der größte Wert aus Gesamt − frei bei der --fit-Prüfung und positivem nicht zugeordnetem Speicher nach einem Lauf, über alle gültigen Beobachtungen des Profils. Enthält ein Log nur eine Messung aus der Geräteliste, wird die größte im Profil beobachtete Differenz zwischen Geräteliste und Prüfung addiert. Beobachtungen werden ausgeschlossen, wenn ein Display angeschlossen ist, andere Programme die GPU bereits belegt haben, der freie Speicher den Gesamtspeicher übersteigt oder ein gemeinsam genutzter Server fremde Belegung hinzufügt. Ein Profil ohne genügend Beobachtungen liefert keine Bewertungen.
| Profil | U (MiB) | D für Desktop-GPUs ohne eigene Daten (MiB) | Beobachtungen | Bewertungen |
|---|---|---|---|---|
| CUDA (NVIDIA) | 2.112 | 1.054 | 17 | Vorhanden |
| Vulkan (Intel) | 832 | 0 | 1 | Nicht angegeben: zu wenige Beobachtungen |
| ROCm unter Linux (AMD) | 1.216 | 144 | 11 | Vorhanden |
CUDA (NVIDIA)
llama.cpp, CUDA-Backend (dedizierte NVIDIA-GPU), alle Layer auf der GPU, Flash Attention an, Micro-Batch (-ub) 512, F16-KV-cache, Kontextlänge (-c) wie angezeigt; „Passt“ wird mit den 4 parallelen Sequenzen beurteilt, die llama-server standardmäßig nutzt (-np auto, einheitlicher KV-Cache), „Passt nicht“ mit 1 Sequenz; unbelastete GPU, ohne andere Programme, die ihren Speicher nutzen.
| GPU | D_card (MiB) |
|---|---|
| NVIDIA GeForce RTX 3060 12GB | 251 |
| NVIDIA GeForce RTX 3090 | 453 |
| NVIDIA GeForce RTX 4060 Ti 16GB | 5 |
| NVIDIA GeForce RTX 4090 | 496 |
| NVIDIA GeForce RTX 5060 | 484 |
| NVIDIA GeForce RTX 5090 | 659 |
| NVIDIA L4 | 2.098 |
| NVIDIA RTX A4000 | 410 |
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 1.054 |
| Gerät | Backend | Build | Nennwert | Gemeldete Gesamtmenge (MiB) | Frei beim Start (MiB) | Belegt vor dem Laden (MiB) | Nicht zugeordnet nach dem Lauf (MiB) | Quelle |
|---|---|---|---|---|---|---|---|---|
| NVIDIA GeForce RTX 3090 (x2, CUDA0) | CUDA | b11415 | 24 GB | 24.575 | 23.054 | 1.522 | — | llama.cpp issues/29811 Logzeilen
|
| NVIDIA GeForce RTX 4090 | CUDA | b10567 (d7fa69b7d) | 24 GB | 24.563 | 23.040 | 1.575 | — | llama.cpp issues/27680 Logzeilen
|
| NVIDIA GeForce RTX 4090 (x2, CUDA0) | CUDA | 9293 (1acee6bf8) | 24 GB | 24.080 | 23.672 | 460 | — | llama.cpp issues/23679 Logzeilen
|
| NVIDIA GeForce RTX 3090 (x8) | CUDA | build 1 (0f7fada) ≈ b9557 | 24 GB | 24.123 | 23.858 | 317 | — | llama.cpp issues/24608 Logzeilen
|
| NVIDIA GeForce RTX 3090 | CUDA | 9274 (52fb93a) | 24 GB | 24.126 | 23.403 | 775 | — | llama.cpp issues/23472 Logzeilen
|
| NVIDIA GeForce RTX 3060 | CUDA | b7342 | 12 GB | 12.037 | — | 270 | 270 | llama.cpp issues/17931 Logzeilen
|
| NVIDIA GeForce RTX 4090 | CUDA | 7474 (f9ec8858e) | 24 GB | 24.082 | 23.687 | 447 | — | llama.cpp issues/18181 Logzeilen
|
| NVIDIA GeForce RTX 5090 | CUDA | 8241 (62b8143ad) | 32 GB | 32.606 | 30.927 | 2.050 | 2.050 | llama.cpp issues/20308 Logzeilen
|
| NVIDIA GeForce RTX 4090 | CUDA | 8241 (62b8143ad) | 24 GB | 24.563 | 22.988 | 1.910 | 1.910 | llama.cpp issues/20308 Logzeilen
|
| NVIDIA GeForce RTX 5090 | CUDA | 9692 (f3e182816) | 32 GB | 32.109 | 31.585 | 576 | — | llama.cpp issues/24758 Logzeilen
|
| NVIDIA GeForce RTX 5060 | CUDA | build 1 (fae3a28) | 8 GB | 7.708 | 7.573 | 187 | — | llama.cpp issues/21984 Logzeilen
|
| NVIDIA GeForce RTX 4060 Ti | CUDA | 0.3.0-dev build 10672 (511f9c1) | 16 GB | 16.379 | 15.233 | 1.198 | — | llama.cpp issues/27892 Logzeilen
|
| NVIDIA GeForce RTX 3080 (20 GB variant) | CUDA | build 1 (234a6eb) ≈ B10733 | 20 GB | 20.479 | 19.271 | 1.260 | — | llama.cpp issues/28167 Logzeilen
|
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | CUDA | 7474 (f9ec8858e) | 96 GB | 97.250 | 96.688 | 614 | — | llama.cpp issues/18181 Logzeilen
|
| NVIDIA RTX A4000 | CUDA | 9890 (74976e1) | 16 GB | 15.974 | 15.791 | 235 | — | llama.cpp issues/25594 Logzeilen
|
| NVIDIA A100-SXM4-40GB | CUDA | 8387 (45172df) | 40 GB | 40.444 | 39.968 | 528 | — | llama.cpp issues/20761 Logzeilen
|
| NVIDIA L4 | CUDA | b9036-b863d41c7 | 24 GB | 22.478 | 22.286 | 244 | 236 | llama.cpp pull/22546 Logzeilen
|
Vulkan (Intel)
llama.cpp, Vulkan-Backend (dedizierte Intel-GPU), alle Layer auf der GPU, Flash Attention an, Micro-Batch (-ub) 512, F16-KV-cache, Kontextlänge (-c) wie angezeigt; „Passt“ wird mit 4 parallelen Sequenzen beurteilt, „Passt nicht“ mit 1 Sequenz; unbelastete GPU. Es gibt noch nicht genug öffentliche Messungen, daher stützt sich kein Ergebnis auf dieses Profil.
| GPU | D_card (MiB) |
|---|---|
| Intel Arc Pro B70 | 138 |
| Gerät | Backend | Build | Nennwert | Gemeldete Gesamtmenge (MiB) | Frei beim Start (MiB) | Belegt vor dem Laden (MiB) | Nicht zugeordnet nach dem Lauf (MiB) | Quelle |
|---|---|---|---|---|---|---|---|---|
| Intel Arc Pro B70 | Vulkan | build_info: b8871-7fc1c4ef7 | 32 GB | 32.630 | 31.861 | 769 | — | llama.cpp issues/22275 Logzeilen
|
ROCm unter Linux (AMD)
llama.cpp, ROCm-Backend unter Linux (dedizierte AMD-GPU), alle Layer auf der GPU, Flash Attention an, Micro-Batch (-ub) 512, F16-KV-cache, Kontextlänge (-c) wie angezeigt; „Passt“ wird mit den 4 parallelen Sequenzen beurteilt, die llama-server standardmäßig nutzt (-np auto, einheitlicher KV-Cache), „Passt nicht“ mit 1 Sequenz; unbelastete GPU, ohne andere Programme, die ihren Speicher nutzen.
| GPU | D_card (MiB) |
|---|---|
| AMD Radeon Instinct MI50 (32GB) | 16 |
| AMD Radeon AI PRO R9700 | 144 |
| AMD Radeon RX 6800 | 16 |
| AMD Radeon RX 6900 XT | 16 |
| AMD Radeon RX 7800 XT | 16 |
| AMD Radeon RX 7900 XTX | 16 |
| Gerät | Backend | Build | Nennwert | Gemeldete Gesamtmenge (MiB) | Frei beim Start (MiB) | Belegt vor dem Laden (MiB) | Nicht zugeordnet nach dem Lauf (MiB) | Quelle |
|---|---|---|---|---|---|---|---|---|
| AMD Radeon RX 7900 XTX | ROCm | version: 9744 (063d9c1) | 24 GB | 24.560 | 24.494 | 266 | — | llama.cpp issues/24858 Logzeilen
|
| AMD Radeon RX 7800 XT (x2, ROCm0) | ROCm | version: b8929-9d34231bb | 16 GB | 16.368 | 16.036 | 467 | — | llama.cpp issues/22351 Logzeilen
|
| AMD Radeon RX 7900 XTX | ROCm | version: 9307 (549b9d8) | 24 GB | 24.560 | 24.510 | 1.135 | — | llama.cpp issues/23934 Logzeilen
|
| AMD Radeon RX 7900 XTX (x4) | ROCm | unknown | 24 GB | 24.560 | 24.510 | 1.135 | — | llama.cpp issues/27021 Logzeilen
|
| AMD Radeon AI PRO R9700 (x8) | ROCm | build 43 (5854625) | 32 GB | 32.624 | 32.534 | 1.175 | — | llama.cpp issues/26208 Logzeilen
|
| AMD Radeon AI PRO R9700 | ROCm | build 10616 (45bfc6f91) | 32 GB | 32.624 | 32.538 | 1.171 | — | llama.cpp issues/26208 Logzeilen
|
| AMD Instinct MI50 32GB | ROCm | build 9943 (c15c5c77a) | 32 GB | 32.752 | 32.722 | 1.115 | — | llama.cpp issues/25487 Logzeilen
|
| AMD Radeon RX 6800 | ROCm | version: 746 (da296d6) | 16 GB | 16.368 | — | 660 | — | llama.cpp issues/26038 Logzeilen
|
| AMD Radeon Pro VII (x3) | ROCm | build: aa374175c (6969) | 16 GB | 16.368 | — | 279 | 279 | llama.cpp issues/17058 Logzeilen
|
| AMD Radeon RX 6900 XT | ROCm | version: 9890 (74976e1) | 16 GB | 16.368 | 16.342 | 1.111 | — | llama.cpp issues/25594 Logzeilen
|
| AMD Radeon RX 7900 XTX | ROCm | version: 8707 (3bd9aa1) | 24 GB | 24.560 | 24.376 | 219 | — | llama.cpp issues/22052 Logzeilen
|
Referenztests
Jeder Fall ist ein öffentliches llama.cpp-Log, das die Puffer pro Gerät ausgibt. Die GGUF-Dateien dieses Logs werden gelesen, die Puffer werden pro Grafikkarte mit der Kontextlänge, den Sequenzen, dem Micro-Batch und dem KV-Typ aus dem Log neu berechnet und mit Modell + KV + RS + Rechenpuffer für dieselbe Grafikkarte verglichen. 38 Fälle (50 Grafikkarten) laufen bei jedem Build als automatisierte Tests und müssen innerhalb von −5 % bis +10 % bleiben; der größte Fehler beträgt +8,85%.
| Fall | GGUF | Backend | Karten | Gerät | Kontext | Sequenzen | KV | Gemessen | Unsere Schätzung | Fehler |
|---|---|---|---|---|---|---|---|---|---|---|
| E01 | unsloth/GLM-4.7-Flash-GGUF | Metal | 1 | MTL0 | 65.536 | 4 | F16 | 34.053,1 MiB | 34.173,1 MiB | +0,35% |
| E02 | unsloth/GLM-4.7-Flash-GGUF | CUDA | 1 | CUDA0 | 380.416 | 2 | F16 | 76.784,3 MiB | 77.208,0 MiB | +0,55% |
| E03 | bartowski/gemma-2-2b-it-GGUF | CUDA | 1 | CUDA0 | 4.096 | 1 | F16 | 3.570,3 MiB | 3.581,7 MiB | +0,32% |
| E05 | ggml-org/gemma-3-4b-it-qat-GGUF | Vulkan | 1 | Vulkan0 | 131.072 | 4 | F16 | 6.001,9 MiB | 6.261,9 MiB | +4,33% |
| E06 | unsloth/gemma-3-27b-it-GGUF | CUDA | 1 | CUDA0 | 8.192 | 1 | Q8_0 | 14.257,9 MiB | 14.266,4 MiB | +0,06% |
| E07 | unsloth/gemma-4-26B-A4B-it-GGUF | ROCm | 1 | ROCm0 | 262.144 | 4 | F16 | 54.994,9 MiB | 55.203,4 MiB | +0,38% |
| E08 | bartowski/google_gemma-4-E2B-it-GGUF | Vulkan | 1 | Vulkan0 | 12.032 | 4 | F16 | 2.065,2 MiB | 2.090,7 MiB | +1,23% |
| E10 | lmstudio-community/gpt-oss-20b-GGUF | Metal | 1 | Metal | 4.096 | 1 | F16 | 12.048,6 MiB | 12.052,4 MiB | +0,03% |
| E11 | unsloth/gpt-oss-120b-GGUF | Vulkan | 1 | Vulkan0 | 131.072 | 1 | F16 | 65.418,0 MiB | 65.654,7 MiB | +0,36% |
| E12 | unsloth/gpt-oss-120b-GGUF | ROCm | 3 | ROCm0 | 131.072 | 1 | F16 | 24.085,8 MiB | 24.118,2 MiB | +0,13% |
| E12 | unsloth/gpt-oss-120b-GGUF | ROCm | 3 | ROCm1 | 131.072 | 1 | F16 | 21.826,8 MiB | 22.488,5 MiB | +3,03% |
| E12 | unsloth/gpt-oss-120b-GGUF | ROCm | 3 | ROCm2 | 131.072 | 1 | F16 | 21.101,6 MiB | 21.325,3 MiB | +1,06% |
| E13 | lmstudio-community/gpt-oss-120b-GGUF | ROCm | 3 | ROCm0 | 50.176 | 4 | F16 | 22.570,5 MiB | 22.681,7 MiB | +0,49% |
| E13 | lmstudio-community/gpt-oss-120b-GGUF | ROCm | 3 | ROCm1 | 50.176 | 4 | F16 | 20.664,3 MiB | 21.033,4 MiB | +1,79% |
| E13 | lmstudio-community/gpt-oss-120b-GGUF | ROCm | 3 | ROCm2 | 50.176 | 4 | F16 | 19.914,5 MiB | 20.003,2 MiB | +0,45% |
| E15 | bartowski/nvidia_Nemotron-H-47B-Reasoning-128K-GGUF | Vulkan | 1 | Vulkan0 | 32.768 | 1 | F16 | 27.959,0 MiB | 27.988,9 MiB | +0,11% |
| E17 | LiquidAI/LFM2.5-1.2B-Instruct-GGUF | CUDA | 1 | CUDA0 | 128.000 | 4 | Q8_0 | 2.370,8 MiB | 2.489,7 MiB | +5,02% |
| E18 | unsloth/Qwen3.5-27B-GGUF | CUDA | 1 | CUDA0 | 10.240 | 1 | F16 | 17.406,9 MiB | 17.406,9 MiB | +0,00% |
| E19 | unsloth/Qwen3.5-35B-A3B-GGUF | Vulkan | 1 | Vulkan0 | 16.384 | 1 | F16 | 21.566,6 MiB | 21.585,6 MiB | +0,09% |
| E20 | unsloth/Qwen3.5-9B-GGUF | CUDA | 1 | CUDA0 | 256.000 | 4 | Q8_0 | 20.381,1 MiB | 20.576,0 MiB | +0,96% |
| E23 | unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF | CUDA | 2 | CUDA0 | 131.072 | 1 | Q8_0 | 21.254,9 MiB | 21.294,9 MiB | +0,19% |
| E23 | unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF | CUDA | 2 | CUDA1 | 131.072 | 1 | Q8_0 | 4.032,3 MiB | 4.280,2 MiB | +6,15% |
| E24 | bartowski/Mistral-Large-Instruct-2411-GGUF | CUDA | 4 | CUDA0 | 32.768 | 1 | F16 | 32.775,5 MiB | 32.783,4 MiB | +0,02% |
| E24 | bartowski/Mistral-Large-Instruct-2411-GGUF | CUDA | 4 | CUDA1 | 32.768 | 1 | F16 | 15.712,7 MiB | 15.856,7 MiB | +0,92% |
| E24 | bartowski/Mistral-Large-Instruct-2411-GGUF | CUDA | 4 | CUDA2 | 32.768 | 1 | F16 | 18.503,9 MiB | 18.647,9 MiB | +0,78% |
| E24 | bartowski/Mistral-Large-Instruct-2411-GGUF | CUDA | 4 | CUDA3 | 32.768 | 1 | F16 | 15.874,9 MiB | 15.930,9 MiB | +0,35% |
| E25 | unsloth/Qwen3.5-27B-GGUF | CUDA | 2 | CUDA0 | 10.240 | 4 | F16 | 13.661,2 MiB | 13.738,2 MiB | +0,56% |
| E25 | unsloth/Qwen3.5-27B-GGUF | CUDA | 2 | CUDA1 | 10.240 | 4 | F16 | 14.767,9 MiB | 14.423,6 MiB | -2,33% |
| E26 | unsloth/Qwen3.5-27B-GGUF | Vulkan | 2 | Vulkan0 | 16.128 | 4 | F16 | 6.805,8 MiB | 6.908,0 MiB | +1,50% |
| E26 | unsloth/Qwen3.5-27B-GGUF | Vulkan | 2 | Vulkan1 | 16.128 | 4 | F16 | 11.830,8 MiB | 11.842,3 MiB | +0,10% |
| E27 | lmstudio-community/Qwen3-32B-GGUF | CUDA | 1 | CUDA0 | 32.768 | 1 | Q4_0 | 21.034,4 MiB | 21.088,4 MiB | +0,26% |
| E28 | bartowski/Meta-Llama-3.1-8B-Instruct-GGUF | CUDA | 1 | CUDA0 | 132.096 | 4 | F16 | 45.560,0 MiB | 45.655,0 MiB | +0,21% |
| E29 | lmstudio-community/granite-4.0-micro-GGUF | CUDA | 1 | CUDA0 | 2.050 | 1 | F16 | 2.381,0 MiB | 2.439,3 MiB | +2,45% |
| E30 | unsloth/Llama-3.2-3B-Instruct-GGUF | CUDA | 1 | CUDA0 | 74.000 | 1 | F16 | 10.294,9 MiB | 10.439,4 MiB | +1,40% |
| E31 | mradermacher/Sugoi-14B-Ultra-HF-i1-GGUF | CUDA | 1 | CUDA0 | 512 | 1 | F16 | 6.674,4 MiB | 6.665,4 MiB | -0,13% |
| E33 | unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF | ROCm | 1 | ROCm0 | 4.096 | 20 | F16 | 34.286,3 MiB | 34.717,0 MiB | +1,26% |
| E35 | mradermacher/Strawberrylemonade-70B-v1.2-i1-GGUF | ROCm | 2 | ROCm0 | 32.768 | 2 | F16 | 23.499,4 MiB | 23.651,3 MiB | +0,65% |
| E35 | mradermacher/Strawberrylemonade-70B-v1.2-i1-GGUF | ROCm | 2 | ROCm1 | 32.768 | 2 | F16 | 23.230,2 MiB | 23.267,7 MiB | +0,16% |
| E37 | Qwen/Qwen3-VL-30B-A3B-Instruct-GGUF | ROCm | 1 | ROCm0 | 20.224 | 4 | F16 | 19.721,2 MiB | 19.756,7 MiB | +0,18% |
| E38 | unsloth/Llama-3.2-3B-Instruct-GGUF | ROCm | 1 | ROCm0 | 10.240 | 4 | F16 | 3.300,9 MiB | 3.314,4 MiB | +0,41% |
| E39 | unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF | Vulkan | 1 | Vulkan0 | 100.864 | 4 | Q8_0 | 22.043,4 MiB | 22.215,6 MiB | +0,78% |
| E40 | bartowski/Meta-Llama-3.1-8B-Instruct-GGUF | Vulkan | 1 | Vulkan0 | 8.448 | 1 | F16 | 5.718,0 MiB | 5.732,0 MiB | +0,24% |
| E41 | unsloth/GLM-4.5-Air-GGUF | Vulkan | 1 | Vulkan0 | 24.576 | 4 | Q8_0 | 46.141,9 MiB | 46.179,1 MiB | +0,08% |
| E43 | unsloth/Qwen3-VL-8B-Thinking-GGUF | Vulkan | 2 | Vulkan0 | 24.576 | 4 | Q8_0 | 4.416,4 MiB | 4.560,3 MiB | +3,26% |
| E43 | unsloth/Qwen3-VL-8B-Thinking-GGUF | Vulkan | 2 | Vulkan1 | 24.576 | 4 | Q8_0 | 2.734,4 MiB | 2.766,3 MiB | +1,17% |
| E44 | ggml-org/Qwen2.5-Coder-1.5B-Instruct-Q8_0-GGUF | Vulkan | 1 | Vulkan0 | 4.096 | 1 | F16 | 1.976,4 MiB | 1.981,4 MiB | +0,25% |
| E45 | unsloth/Qwen3-30B-A3B-GGUF | Metal | 1 | Metal | 4.096 | 1 | F16 | 9.307,4 MiB | 9.307,4 MiB | -0,00% |
| E46 | bartowski/mistralai_Voxtral-Mini-3B-2507-GGUF | Metal | 1 | MTL0 | 16.384 | 4 | F16 | 6.256,0 MiB | 6.276,0 MiB | +0,32% |
| E47 | unsloth/Qwen3-0.6B-GGUF | Metal | 1 | Metal | 34.304 | 4 | F16 | 4.425,4 MiB | 4.488,4 MiB | +1,42% |
| E48 | sweepai/sweep-next-edit-1.5B | Metal | 1 | Metal | 32.768 | 4 | F16 | 2.462,6 MiB | 2.680,6 MiB | +8,85% |
Ausgeschlossene Logs und Gründe
- E04: Flash Attention war aus; diese Website modelliert Flash Attention als ein.
- E09: Lauf mit --swa-full, einem nicht standardmäßigen Sliding-Window-Cache.
- E16: Mehrere Sequenzen ohne einheitlichen KV-Cache; dieses Cache-Layout wird nicht modelliert.
- E32: Flash Attention war aus; diese Website modelliert Flash Attention als ein.
- E34: Flash Attention war aus; diese Website modelliert Flash Attention als ein.
- E42: Flash Attention war aus; diese Website modelliert Flash Attention als ein.
llama.cpp-Regeln nach Architektur
Wie jede Architektur ihren KV-Cache und ihren Zustand anlegt, ist aus dem llama.cpp-Quellcode im Commit 5aeac37a35 übernommen.
| Architektur | KV-Cache-Layout | Quelle |
|---|---|---|
llama | volle Attention in jeder Schicht | src/models/llama.cpp |
qwen2 | volle Attention in jeder Schicht | src/models/qwen2.cpp |
qwen2moe | volle Attention in jeder Schicht | src/models/qwen2moe.cpp |
qwen2vl | volle Attention in jeder Schicht | src/models/qwen2vl.cpp |
qwen3 | volle Attention in jeder Schicht | src/models/qwen3.cpp |
qwen3moe | volle Attention in jeder Schicht | src/models/qwen3moe.cpp |
qwen3vl | volle Attention in jeder Schicht | src/models/qwen3vl.cpp |
qwen3vlmoe | volle Attention in jeder Schicht | src/models/qwen3vlmoe.cpp |
mistral3 | volle Attention in jeder Schicht | src/models/mistral3.cpp |
mistral4 | volle Attention in jeder Schicht | src/models/mistral4.cpp |
phi2 | volle Attention in jeder Schicht | src/models/phi2.cpp |
phi3 | volle Attention in jeder Schicht | src/models/phi3.cpp |
phimoe | volle Attention in jeder Schicht | src/models/phimoe.cpp |
gemma | volle Attention in jeder Schicht | src/models/gemma.cpp |
glm4 | volle Attention in jeder Schicht | src/models/glm4.cpp |
glm4moe | volle Attention in jeder Schicht | src/models/glm4-moe.cpp |
granite | volle Attention in jeder Schicht | src/models/granite.cpp |
granitemoe | volle Attention in jeder Schicht | src/models/granite-moe.cpp |
command-r | volle Attention in jeder Schicht | src/models/command-r.cpp |
olmo | volle Attention in jeder Schicht | src/models/olmo.cpp |
olmoe | volle Attention in jeder Schicht | src/models/olmoe.cpp |
starcoder2 | volle Attention in jeder Schicht | src/models/starcoder2.cpp |
internlm2 | volle Attention in jeder Schicht | src/models/internlm2.cpp |
minimax-m2 | volle Attention in jeder Schicht | src/models/minimax-m2.cpp |
hunyuan-moe | volle Attention in jeder Schicht | src/models/hunyuan-moe.cpp |
hunyuan-dense | volle Attention in jeder Schicht | src/models/hunyuan-dense.cpp |
hy_v3 | volle Attention in jeder Schicht | src/models/hy-v3.cpp |
ernie4_5 | volle Attention in jeder Schicht | src/models/ernie4-5.cpp |
ernie4_5-moe | volle Attention in jeder Schicht | src/models/ernie4-5-moe.cpp |
seed_oss | volle Attention in jeder Schicht | src/models/seed-oss.cpp |
smollm3 | volle Attention in jeder Schicht | src/models/smollm3.cpp |
apertus | volle Attention in jeder Schicht | src/models/apertus.cpp |
exaone | volle Attention in jeder Schicht | src/models/exaone.cpp |
nemotron | volle Attention in jeder Schicht | src/models/nemotron.cpp |
bailingmoe | volle Attention in jeder Schicht | src/models/bailingmoe.cpp |
bailingmoe2 | volle Attention in jeder Schicht | src/models/bailingmoe2.cpp |
dots1 | volle Attention in jeder Schicht | src/models/dots1.cpp |
arcee | volle Attention in jeder Schicht | src/models/arcee.cpp |
grovemoe | volle Attention in jeder Schicht | src/models/grovemoe.cpp |
nanbeige | volle Attention in jeder Schicht | src/models/nanbeige.cpp |
k2-horizon | volle Attention in jeder Schicht | src/models/k2-horizon.cpp |
deci | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/deci.cpp |
deepseek2 | volle Attention in jeder Schicht | src/models/deepseek2.cpp |
deepseek | volle Attention in jeder Schicht | src/models/deepseek.cpp |
minicpm3 | volle Attention in jeder Schicht | src/models/minicpm3.cpp |
deepseek32 | dünn besetzte Attention mit Indexer-Schlüsseln (als zusätzliches K gezählt) | src/models/deepseek32.cpp |
glm-dsa | dünn besetzte Attention mit Indexer-Schlüsseln (als zusätzliches K gezählt) | src/models/glm-dsa.cpp |
gemma2 | gleitendes Fenster: 1 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/gemma2.cpp |
gemma3 | gleitendes Fenster: 5 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/gemma3.cpp |
gemma3n | gleitendes Fenster: 4 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt; Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/gemma3n.cpp |
gemma4 | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/gemma4.cpp |
cohere2 | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/cohere2.cpp |
cohere2moe | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/cohere2moe.cpp |
gpt-oss | gleitendes Fenster: 1 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/openai-moe.cpp |
exaone4 | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/exaone4.cpp |
exaone-moe | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/exaone-moe.cpp |
afmoe | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/afmoe.cpp |
llama4 | blockweise Attention: 3 blockweise verarbeitete Schichten pro vollständiger Schicht | src/models/llama4.cpp |
muse-glimmer | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/muse-glimmer.cpp |
muse-spark | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/muse-spark.cpp |
mellum | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/mellum.cpp |
smallthinker | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/smallthinker.cpp |
laguna | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/laguna.cpp |
granite_swa | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/granite-swa.cpp |
maple | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/maple.cpp |
spark2_5 | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/spark2-5.cpp |
step35 | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/step35.cpp |
mimo2 | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/mimo2.cpp |
kolibri1 | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/kolibri1.cpp |
beam | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/beam.cpp |
maion-coder | gleitendes Fenster, Muster pro Schicht aus der GGUF-Datei gelesen | src/models/maion-coder.cpp |
olmo2 | gleitendes Fenster: 3 Schichten mit gleitendem Fenster pro vollständiger Schicht, sofern die GGUF-Datei kein Muster pro Schicht angibt | src/models/olmo2.cpp |
plamo3 | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/plamo3.cpp |
qwen3next | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/qwen3next.cpp |
qwen35 | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/qwen35.cpp |
qwen35moe | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/qwen35moe.cpp |
qwen4exp | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe; Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/qwen4exp.cpp |
nemotron_h | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/nemotron-h.cpp |
nemotron_h_moe | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/nemotron-h.cpp |
granitehybrid | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/granite-hybrid.cpp |
jamba | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/jamba.cpp |
lfm2 | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/lfm2.cpp |
lfm2moe | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/lfm2moe.cpp |
falcon-h1 | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/falcon-h1.cpp |
kimi-linear | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/kimi-linear.cpp |
kimi-k3 | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe | src/models/kimi-k3.cpp |
glm5-next | rekurrente Layer / Layer mit linearer Attention mit einem Zustand fester Größe; dünn besetzte Attention mit Indexer-Schlüsseln (als zusätzliches K gezählt) | src/models/glm5-next.cpp |
minimax-01 | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/minimax-01.cpp |
plamo2 | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/plamo2.cpp |
deepseek4 | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/deepseek4.cpp |
dots3note | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/dots3note.cpp |
hy_v4 | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/hy-v4.cpp |
minimax-m3 | Cache-Aufbau noch nicht modelliert – Modelle mit dieser Architektur werden nicht aufgeführt | src/models/minimax-m3.cpp |
Quellen und wie Spezifikationen überprüft werden
- Websites der Hersteller werden nie abgerufen, weil deren Nutzungsbedingungen automatisierten Zugriff verbieten. Die Herstellerangabe stammt aus offenen Datensätzen, die zeilenweise auf ein Datenblatt des Herstellers verweisen (GetDeploying und Epoch AI, sofern das Datenblatt auf einer Domain des Herstellers oder auf einem Dokumenten-Host liegt, den der Hersteller selbst für seine Datenblätter nutzt), sowie aus der ROCm-Dokumentation von AMD. Diese Datenblatt-Links werden als „Herstellerangabe“ angezeigt und als von dieser Website nicht abgerufen gekennzeichnet. Datenblatt-Links gelten als die des Herstellers, wenn sie auf einer dieser Domains liegen (einschließlich Dokumenten-Hosts, die die Hersteller nutzen):
amd.com,apple.com,dam-cdn.nvd.orangelogic.com,geforce.com,intel.com,nvdam.widen.net,nvidia.com - Wikipedia dient als unabhängige Gegenprüfung. Die Fußnoten dort werden nicht als Quelle für einen Wert verwendet, da Fußnoten in Spalten und Produktnamen nicht erkennen lassen, woher ein bestimmtes Feld stammt.
- Die Stimme für die Herstellerangabe und die Stimme der Gegenprüfung müssen von verschiedenen Herausgebern stammen, die nicht aufeinander verweisen: Wenn die gegenprüfende Wikipedia-Seite (oder Datensatzzeile) den anderen Herausgeber zitiert, zählt sie als abgeleitet und nicht als zweite Stimme. Eine Quelle, die ohne Hinweis von einer anderen abschreibt, lässt sich anhand öffentlicher Belege nicht erkennen.
- Ein Wert wird angezeigt (two_source), wenn eine Stimme für die Herstellerangabe und eine unabhängige Gegenprüfung übereinstimmen und keine intakte Quelle widerspricht. Andernfalls lautet der Status „conflict“ (Quellen widersprechen sich), „single“ (keine Stimme für die Herstellerangabe oder keine unabhängige Gegenprüfung) oder „missing“.
- Zeilen, die ein offener Datensatz TechPowerUp zuschreibt (Epoch-AI-Zeilen, deren Datenblatt-Link auf techpowerup.com verweist), werden überhaupt nicht gelesen, da die Bedingungen von TechPowerUp abgeleitete Datensätze verbieten: Sie zählen weder als Stimme noch als Widerspruch.
- Übereinstimmung bedeutet: Speichergröße exakt gleich, Bandbreite innerhalb von 1 %, andere Zahlen innerhalb von 2 %, Text nach Normalisierung gleich.
- Angezeigt wird der Wert, den die meisten übereinstimmenden Quellen exakt angeben; die eigene Angabe und der Link jeder Quelle sind daneben aufgeführt. Wikipedia-Links zeigen auf die genau verwendete Revision.
- Computer mit Apple Silicon, DGX Spark und Strix Halo werden in dieser Version nicht veröffentlicht: Keine offene Quelle verweist zeilenweise auf ein Datenblatt des Herstellers für sie.
- Modelldaten stammen von Hugging Face in festgelegten Revisionen. Jedes Modell verwendet ein GGUF-Repository für alle seine Quantisierungen, ausgewählt nach einer festen Reihenfolge der Herausgeber; die Architektur wird aus dem GGUF-Header gelesen und, soweit die ursprüngliche config.json lesbar ist, mit ihr gegengeprüft.
- Originale Gewichte, nur zur Referenz angezeigt, zählen die safetensors-Dateien des Repositorys auf oberster Ebene und in model*-Ordnern: Mit einer model.safetensors.index.json zählen die darin genannten Dateien plus vollständige Sätze in anderen model*-Ordnern; ohne eine solche zählt jeder vollständige Satz, wobei eine zusammengeführte Datei und eine identische geteilte Kopie nur einmal gezählt werden. Andere Ordner (zum Beispiel separat gespeicherte Decoder), original/, consolidated*-Dateien, LoRA-Adapter sowie .bin- / .pt-Dateien werden nicht gezählt. Bilden die Dateien nicht einen eindeutigen Satz, wird keine Größe angegeben.
Parameterzahlen
Die Parameter werden aus der GGUF-Tensortabelle der gewählten GGUF-Datei gezählt: jeder Tensor, den llama.cpp lädt, einschließlich der Input-Embedding-Tabelle. Multi-Token-Prediction-Schichten (MTP / NextN), die llama.cpp standardmäßig nicht lädt, werden nicht mitgezählt; Modellseiten, die sie enthalten, geben deren Anzahl an. Aktive Parameter pro Token zählen die Nicht-Experten-Tensoren plus die verwendeten Experten (verwendete Experten ÷ Experten pro Schicht), aber nicht den Lookup im Input-Embedding, da pro Token nur eine Zeile davon gelesen wird. Verwendet ein Modell eine Matrix sowohl als Input-Embedding als auch als Ausgabeschicht (gekoppelte Embeddings), wird jedes Token mit der gesamten Matrix multipliziert, daher wird sie einmal gezählt, und zwar als Ausgabeschicht. Modellkarten zählen oft auch die Input-Embedding-Tabelle und die MTP-Schichten mit, daher können ihre Angaben deutlich höher ausfallen, besonders bei kleinen Mixture-of-Experts-Modellen mit großem Vokabular. Die Zählung des ursprünglichen Repositorys wird separat angezeigt.
Aktive Parameter werden nur für Mixture-of-Experts-Modelle angegeben, also für Modelle, deren GGUF-Header mehr als einen Experten pro Schicht aufführt. Ein Modell mit nur einem Experten pro Schicht (Expertenanzahl 1) ist dicht (dense): Jeder Parameter wird für jedes Token verwendet, daher wird keine separate Angabe zu aktiven Parametern gezeigt.
Die Parameteranzahl des ursprünglichen Repositorys selbst ist die Gesamtzahl, die Hugging Face für dessen safetensors-Gewichte angibt; manche Repositorys geben sie in ihren Metadaten falsch an. Sie wird nur angezeigt und in die Downloads aufgenommen, wenn sie bestätigt ist: Sie muss größer als 100M Parameter sein, innerhalb von 1 % der Parameteranzahlen pro Typ liegen, die Hugging Face aus den Gewichtsdateien des Repositorys ausliest, und bei Modellen mit einer GGUF-Datei zwischen dem 0,5-Fachen und dem 2,5-Fachen der GGUF-Anzahl liegen (das Original kann zusätzlich einen Vision- oder Audio-Encoder oder Multi-Token-Prediction-Schichten enthalten; die GGUF-Datei kann größer sein, wenn sie eine gekoppelte Einbettung (Tied Embedding) ein zweites Mal als Ausgabeschicht speichert). Bei Modellen ohne GGUF-Datei müssen die ersten beiden Prüfungen erfüllt sein. Andernfalls wird die Anzahl weggelassen.
Was jeder Status anzeigt
| Status | Auf der Seite |
|---|---|
two_source | Angezeigt: Eine von einer offenen Quelle verlinkte Herstellerangabe stimmt mit einer unabhängigen Gegenprüfung überein. |
conflict | Offene Quellen widersprechen sich, daher wird dieser Wert nicht angezeigt; Schätzungen, die von ihm abhängen (etwa die Geschwindigkeit), werden ebenfalls nicht angegeben. |
single | Nicht angezeigt: Offene Quellen liefern keine zwei unabhängigen, übereinstimmenden Werte mit einer Herstellerangabe. |
missing | Nicht angezeigt: Offene Quellen liefern keine zwei unabhängigen, übereinstimmenden Werte mit einer Herstellerangabe. |
withheld | Der Eintrag wurde zuvor veröffentlicht, aber seine Quellen widersprechen sich jetzt, eine Quelle hat sich geändert oder er erfüllt die Listungsregeln nicht mehr. Seine Seite bleibt (nicht indexiert) mit den Quellenlinks bestehen; Werte, Schätzungen und Bewertungen sind ausgeblendet. Nach 30 Tagen mit intakten Quellen wird er außer Dienst gestellt; wenn zwei Quellen wieder übereinstimmen, kehrt er zurück. |
retired | 30 Tage lang trotz intakter Quellen zurückgehalten. Die Seite bleibt als Platzhalter für den stillgelegten Eintrag (nicht indexiert) bestehen und verlinkt auf einen Ersatz, falls es einen gibt. |
Geschwindigkeitsobergrenze
Das Erzeugen eines Tokens liest die aktiven Gewichte und den KV-Cache einmal, daher können Tokens pro Sekunde die Bandbreite geteilt durch die pro Token gelesenen Bytes nicht überschreiten. Bei Mixture-of-Experts-Modellen wird nur der Anteil der verwendeten Experten gezählt, ermittelt aus der GGUF-Tensor-Tabelle. Es ist eine theoretische Obergrenze; es wird keine Geschwindigkeit angegeben, wenn die Bandbreite nicht von zwei Quellen bestätigt ist.
Öffentliche Benchmarks
Gemessene llama.cpp-Geschwindigkeiten, die vom llama.cpp-Projekt in seinem Repository veröffentlicht wurden (llama-bench, am fixierten llama.cpp-Commit). Für die Maschinen in diesen Hinweisen (DGX Spark, Apple M2 Ultra) gibt es in dieser Version auf dieser Website keine Einstufungen; die Zahlen zeigen, wie die gemessene Geschwindigkeit im Vergleich zur Obergrenze der Bandbreite liegt und wie sie mit wachsendem Kontext sinkt: llama.cpp benches/ (5aeac37a)
| Maschine | Modell (GGUF-Repository) | Backend | Test | Token/s |
|---|---|---|---|---|
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token | 4.505,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | Generierung, 32 Token | 83,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 2.689,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | Generierung, 32 Token · nach 32.768 Token Kontext | 61,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token | 2.443,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | Generierung, 32 Token | 58,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 1.567,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | Generierung, 32 Token · nach 32.768 Token Kontext | 42,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token | 2.987,0 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | Generierung, 32 Token | 61,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 1.348,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | Generierung, 32 Token · nach 32.768 Token Kontext | 30,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token | 2.250,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | Generierung, 32 Token | 29,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 1.471,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | Generierung, 32 Token · nach 32.768 Token Kontext | 22,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token | 5.948,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | Generierung, 32 Token | 81,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 5.023,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | Generierung, 32 Token · nach 32.768 Token Kontext | 62,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token | 2.364,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | Generierung, 32 Token | 48,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 567,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | Generierung, 32 Token · nach 32.768 Token Kontext | 32,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token | 768,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | Generierung, 32 Token | 19,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 724,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | Generierung, 32 Token · nach 32.768 Token Kontext | 19,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token | 2.761,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | Generierung, 32 Token | 52,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 2.041,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | Generierung, 32 Token · nach 32.768 Token Kontext | 46,7 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token | 2.713,4 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | Generierung, 32 Token | 130,0 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 1.122,6 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | Generierung, 32 Token · nach 32.768 Token Kontext | 98,3 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token | 1.648,7 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | Generierung, 32 Token | 85,6 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 721,1 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | Generierung, 32 Token · nach 32.768 Token Kontext | 65,5 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token | 2.453,1 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | Generierung, 32 Token | 79,0 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 431,3 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | Generierung, 32 Token · nach 32.768 Token Kontext | 45,3 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token | 1.565,9 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | Generierung, 32 Token | 79,7 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 612,2 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | Generierung, 32 Token · nach 32.768 Token Kontext | 56,8 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token | 2.923,6 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | Generierung, 32 Token | 134,3 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 2.129,2 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | Generierung, 32 Token · nach 32.768 Token Kontext | 113,1 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token | 1.629,3 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | Generierung, 32 Token | 59,6 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | Prompt-Verarbeitung, 2048 Token · nach 32.768 Token Kontext | 151,4 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | Generierung, 32 Token · nach 32.768 Token Kontext | 21,8 |
Macs und andere Computer mit Unified Memory (gemeinsamer Speicher)
Bei diesen Computern kann die GPU nur einen Teil des Speichers nutzen, und die offenen Quellen dafür nennen keine Belege pro Wert. Sie werden in dieser Version nicht veröffentlicht; die Laufzeitprofile dafür werden aufbewahrt, bis die Quellen es erlauben.
Einheiten
Die hier berechneten Speichermengen sind in GiB angegeben (1.073.741.824 Bytes). Die „24 GB“ Videospeicher, die GPU-Hersteller angeben, sind 24 GiB. Hugging Face zeigt Dateigrößen in dezimalen GB an, daher erscheint eine 5,03-GB-Datei hier als 4,68 GiB. Die Bandbreite ist in GB/s angegeben (10⁹ Bytes pro Sekunde).
Aktualisierungen
Hugging Face wird alle 6 Stunden auf neue Modelle und neue GGUF-Dateien durchsucht; GPU-Spezifikationen werden täglich erneut überprüft.