Cómo se hacen las estimaciones
Esta página fue escrita y traducida automáticamente por IA y verificada por software con respecto a sus fuentes, sin edición humana. Las especificaciones provienen de las fuentes indicadas; los requisitos de memoria y las velocidades son estimaciones calculadas con fórmulas publicadas. Cómo usamos la IA
Cada número de este sitio es una especificación en la que coinciden dos fuentes abiertas independientes, o el resultado del código determinista que se describe a continuación. El mismo código se ejecuta cuando se generan las páginas y en tu navegador.
Qué se modela
Se modela: llama.cpp cargando un archivo GGUF, solo texto, todas las capas en la GPU, Flash Attention activado, micro-lote de 512, un usuario. Para varias tarjetas: tarjetas idénticas en una misma máquina, con la división de capas predeterminada de llama.cpp. Los modelos multimodales se cuentan sin su proyector de visión ni el procesamiento de imágenes.
Ollama y LM Studio usan llama.cpp, pero pueden usar valores predeterminados distintos. vLLM, MLX y Transformers asignan la memoria de otra manera y no están modelados. Un resultado «Cabe» no significa que un controlador o backend determinado admita la arquitectura o la cuantización del modelo.
La fórmula, término por término
Para cada tarjeta d, la estimación Q_d es la misma cantidad que llama.cpp muestra por dispositivo como búferes de modelo + KV + RS + cómputo. Las capas se asignan a las tarjetas con la división predeterminada de llama.cpp; la incrustación de entrada permanece en la memoria del sistema.
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)
Cabe: ∀ d: Q⁺_d ÷ 0,95 + 1 GiB ≤ C_low
No cabe: Q⁻ ÷ 1,10 > C_high (N = 1); Σ_d Q⁻_d ÷ 1,10 > N × C_high (N > 1)
Al límite: en otro caso
C_low = G − D_card − U; C_high = G
tok/s ≤ B ÷ (R + R_KV) W_d- Pesos en la tarjeta d: los bytes de las capas ubicadas en ella, leídos de la tabla de tensores del GGUF, más la capa de salida en la última tarjeta.
KV_d- KV cache en la tarjeta d: elementos K y V por token de cada capa de atención de la tarjeta, por bytes por elemento, por celdas en caché. La atención latente multicabezal almacena solo K.
S_d- Estado recurrente: estado de tamaño fijo de las capas recurrentes y de atención lineal (32 bits), uno por secuencia paralela.
C_d, L, M, P- Búfer de cómputo: L es el búfer de logits, M la máscara de atención y P las entradas por copia que el paralelismo de canalización mantiene en cada tarjeta cuando se usan varias tarjetas.
Q⁺- Q⁺: la estimación por tarjeta usada para «Cabe»: 4 secuencias paralelas (el valor predeterminado -np auto de llama-server), con las capas situadas exactamente en el límite entre tarjetas contadas en ambas tarjetas.
Q⁻- Q⁻: la estimación usada para «No cabe»: 1 secuencia, cada capa contada una sola vez, tal como la asigna el código fuente.
X- X: la memoria disponible por tarjeta necesaria para «Cabe». Las páginas la muestran como «Memoria disponible necesaria para Cabe».
G, N- G: la memoria nominal de una tarjeta (los «24 GB» del fabricante se cuentan como 24 GiB); N: el número de tarjetas idénticas.
C_low- C_low: memoria contada como disponible para «Cabe»: memoria nominal menos la diferencia entre el valor nominal y el indicado de la tarjeta (D_card) y el mayor uso de arranque y de ejecución en los registros públicos del perfil (U), redondeado hacia abajo a un múltiplo de 64 MiB.
C_high- C_high: la memoria nominal completa, usada para «No cabe».
B, R, R_KV- B: ancho de banda de memoria (bytes por segundo); R: bytes de pesos leídos por cada token generado (tensores no expertos más la parte de los expertos en uso); R_KV: bytes de KV cache leídos por token.
Constantes
| Constante | Valor | Significado |
|---|---|---|
ubatch | 512 | Tamaño de micro-lote predeterminado de llama.cpp (-ub). |
ctxPad | 256 | Las celdas de KV cache se rellenan hasta un múltiplo de este número. |
computeFloorBytes | 0,25 GiB | Búfer de cómputo mínimo por tarjeta. |
maskBytesPerCell | 4 B | Bytes por celda y por token del micro-lote de la máscara de atención (32 bits). |
fitReservePerDeviceBytes | 1,00 GiB | Reserva que el --fit predeterminado de llama.cpp mantiene libre en cada tarjeta (-fitt 1024 MiB). |
underestimateTolerance | 5% | Mayor subestimación permitida por las pruebas de referencia; «Cabe» divide la estimación entre uno menos este valor. |
overestimateTolerance | 10% | Mayor sobrestimación permitida por las pruebas de referencia; «No cabe» divide la estimación entre uno más este valor. |
stateBytesPerElem | 4 B | Bytes por elemento del estado recurrente. |
defaultCtx | 8192 | Contexto predeterminado de las tablas: esta cantidad de tokens, o el máximo del modelo si es menor. |
defaultSeqs | 4 | Secuencias paralelas supuestas para «Cabe» (llama-server -np auto, KV cache unificada). |
goldCoveredCtx | 262.144 | Mayor longitud de contexto (celdas) en una tarjeta cubierta por los registros de referencia; la búsqueda de la mayor longitud de contexto se detiene aquí. |
maxCards | 8 | Máximo de tarjetas idénticas consideradas. |
minUsefulCapacityBytes | 2,00 GiB | Memoria mínima que se considera disponible en una tarjeta para emitir un veredicto; por debajo de este valor el resultado es «Desconocido» (excepto «No cabe ni en 8 tarjetas»). |
pipelineCopies | 4 | Copias de las entradas de capa por tarjeta con paralelismo por etapas en varias tarjetas (GGML_SCHED_MAX_COPIES). |
goldCoveredCtxMulti | 131.072 | Mayor longitud de contexto (celdas) en varias tarjetas cubierta por los registros de referencia. |
cLowStepBytes | 64 MiB | C_low de una GPU discreta (nominal − D_card − U) se redondea hacia abajo a un múltiplo de este valor. |
Cabe, al límite o no cabe
«Cabe» significa solo esto: la comprobación de carga predeterminada --fit de llama.cpp colocaría todas las capas en la GPU. llama.cpp realiza esa comprobación al cargar un modelo (los búferes estimados más una reserva de 1 GiB por tarjeta no deben superar la memoria libre al iniciar); este sitio la recalcula con las mismas reglas de búferes y deja margen para los errores de estimación. No garantiza que la memoria máxima durante la inferencia (reservas de memoria, entradas largas y otras asignaciones en tiempo de ejecución) quepa.
Las pruebas de referencia permiten que la estimación sea hasta un 5% demasiado baja y hasta un 10% demasiado alta, por lo que cada lado de la decisión usa su propio límite:
- Cabe cuando, en cada tarjeta, Q⁺ ÷ 0,95 + 1 GiB no supera C_low. Q⁺ supone 4 secuencias paralelas.
- No cabe cuando Q⁻ ÷ 1,10 supera la memoria completa C_high (con varias tarjetas: la suma de todas las tarjetas frente a N × C_high, porque el --fit predeterminado ajusta el reparto por sí mismo).
- Al límite en un punto intermedio: puede que quepa o no. Reduzca la longitud de contexto o use una cuantización menor.
- Desconocido cuando ningún perfil de ejecución cubre el dispositivo, para GPUs de estación de trabajo y de centro de datos (su configuración de memoria no se establece con registros públicos), o cuando la memoria contada como disponible es inferior a 2 GiB: solo se muestra X, y «No cabe» si el modelo es demasiado grande incluso para la memoria completa.
X = el mayor Q⁺ por tarjeta ÷ 0,95 + 1 GiB es la memoria disponible necesaria para «Cabe». Las páginas lo expresan como «Memoria disponible necesaria para Cabe», y no como «al menos», porque un resultado al límite necesita la misma cantidad.
Las tablas comprueban las cuantizaciones de mayor a menor con la longitud de contexto predeterminada. Una fila muestra la mayor cuantización que cabe (con X, la mayor longitud de contexto y el límite superior de velocidad), o, si ninguna cabe, la mayor que queda al límite (con X), o, si todas son demasiado grandes, la menor cuantización con su X.
La mayor longitud de contexto se busca entre la longitud de contexto predeterminada y el menor valor entre el máximo del modelo y la mayor longitud de contexto cubierta por registros medidos (262.144 celdas en una tarjeta, 131.072 en varias). Si aun así cabe, las páginas muestran «≥» ese valor: no se comprobaron longitudes mayores.
Solo se consideran varias tarjetas idénticas cuando una sola tarjeta no cabe, únicamente para GPUs de escritorio, de estación de trabajo y de centro de datos con perfil de ejecución, y cada cantidad de 2 a 8 se comprueba por separado (añadir una tarjeta no siempre reduce la carga de la tarjeta más cargada, y el paralelismo por canalización añade 4 copias de las entradas de capa). La página indica la menor cantidad que cabe con el reparto uniforme predeterminado; no es un mínimo, porque el --fit predeterminado puede ajustar el reparto y podría bastar con menos tarjetas. Las GPUs de estación de trabajo y de centro de datos, y las GPUs con menos de 2 GiB contados como disponibles, solo obtienen «No cabe ni con 8 tarjetas» (o ninguna cantidad).
Perfiles de ejecución
La cantidad de memoria que se considera disponible proviene únicamente de registros públicos de llama.cpp: el total que informa cada dispositivo, la memoria libre cuando se ejecuta la comprobación --fit de llama.cpp y, donde se imprime, la memoria no contabilizada tras una ejecución. D_card = nominal − total informado de ese modelo de GPU (el mayor si hay varios registros); U = el mayor valor entre total − libre en la comprobación --fit y la memoria no contabilizada positiva tras una ejecución, entre todas las observaciones válidas del perfil. Cuando un registro solo tiene una lectura de la lista de dispositivos, se añade la mayor diferencia entre la lista y la comprobación observada en el perfil. Se excluyen las observaciones en las que hay una pantalla conectada, otros programas ya usaban la GPU, la memoria libre supera el total, o un servidor compartido añade un uso ajeno. Un perfil sin suficientes observaciones no da veredictos.
| Perfil | U (MiB) | D para GPUs de escritorio sin datos propios (MiB) | Observaciones | Veredictos |
|---|---|---|---|---|
| CUDA (NVIDIA) | 2112 | 1054 | 17 | Se dan |
| Vulkan (Intel) | 832 | 0 | 1 | No se dan: observaciones insuficientes |
| ROCm en Linux (AMD) | 1216 | 144 | 11 | Se dan |
CUDA (NVIDIA)
llama.cpp, motor de ejecución CUDA (GPU discreta NVIDIA), todas las capas en la GPU, Flash Attention activado, micro-lote (-ub) 512, KV cache F16, contexto (-c) según se indica; «Cabe» se determina con las 4 secuencias paralelas predeterminadas de llama-server (-np auto, KV cache unificada) y «No cabe» con 1 secuencia; GPU inactiva, sin otros programas que usen su memoria.
| 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 | 2098 |
| NVIDIA RTX A4000 | 410 |
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 1054 |
| Dispositivo | Motor de ejecución | Compilación | Nominal | Total informado (MiB) | Libre al inicio (MiB) | Usado antes de la carga (MiB) | Sin contabilizar tras la ejecución (MiB) | Fuente |
|---|---|---|---|---|---|---|---|---|
| NVIDIA GeForce RTX 3090 (x2, CUDA0) | CUDA | b11415 | 24 GB | 24.575 | 23.054 | 1522 | — | llama.cpp issues/29811 Líneas de registro
|
| NVIDIA GeForce RTX 4090 | CUDA | b10567 (d7fa69b7d) | 24 GB | 24.563 | 23.040 | 1575 | — | llama.cpp issues/27680 Líneas de registro
|
| NVIDIA GeForce RTX 4090 (x2, CUDA0) | CUDA | 9293 (1acee6bf8) | 24 GB | 24.080 | 23.672 | 460 | — | llama.cpp issues/23679 Líneas de registro
|
| NVIDIA GeForce RTX 3090 (x8) | CUDA | build 1 (0f7fada) ≈ b9557 | 24 GB | 24.123 | 23.858 | 317 | — | llama.cpp issues/24608 Líneas de registro
|
| NVIDIA GeForce RTX 3090 | CUDA | 9274 (52fb93a) | 24 GB | 24.126 | 23.403 | 775 | — | llama.cpp issues/23472 Líneas de registro
|
| NVIDIA GeForce RTX 3060 | CUDA | b7342 | 12 GB | 12.037 | — | 270 | 270 | llama.cpp issues/17931 Líneas de registro
|
| NVIDIA GeForce RTX 4090 | CUDA | 7474 (f9ec8858e) | 24 GB | 24.082 | 23.687 | 447 | — | llama.cpp issues/18181 Líneas de registro
|
| NVIDIA GeForce RTX 5090 | CUDA | 8241 (62b8143ad) | 32 GB | 32.606 | 30.927 | 2050 | 2050 | llama.cpp issues/20308 Líneas de registro
|
| NVIDIA GeForce RTX 4090 | CUDA | 8241 (62b8143ad) | 24 GB | 24.563 | 22.988 | 1910 | 1910 | llama.cpp issues/20308 Líneas de registro
|
| NVIDIA GeForce RTX 5090 | CUDA | 9692 (f3e182816) | 32 GB | 32.109 | 31.585 | 576 | — | llama.cpp issues/24758 Líneas de registro
|
| NVIDIA GeForce RTX 5060 | CUDA | build 1 (fae3a28) | 8 GB | 7708 | 7573 | 187 | — | llama.cpp issues/21984 Líneas de registro
|
| NVIDIA GeForce RTX 4060 Ti | CUDA | 0.3.0-dev build 10672 (511f9c1) | 16 GB | 16.379 | 15.233 | 1198 | — | llama.cpp issues/27892 Líneas de registro
|
| NVIDIA GeForce RTX 3080 (20 GB variant) | CUDA | build 1 (234a6eb) ≈ B10733 | 20 GB | 20.479 | 19.271 | 1260 | — | llama.cpp issues/28167 Líneas de registro
|
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | CUDA | 7474 (f9ec8858e) | 96 GB | 97.250 | 96.688 | 614 | — | llama.cpp issues/18181 Líneas de registro
|
| NVIDIA RTX A4000 | CUDA | 9890 (74976e1) | 16 GB | 15.974 | 15.791 | 235 | — | llama.cpp issues/25594 Líneas de registro
|
| NVIDIA A100-SXM4-40GB | CUDA | 8387 (45172df) | 40 GB | 40.444 | 39.968 | 528 | — | llama.cpp issues/20761 Líneas de registro
|
| NVIDIA L4 | CUDA | b9036-b863d41c7 | 24 GB | 22.478 | 22.286 | 244 | 236 | llama.cpp pull/22546 Líneas de registro
|
Vulkan (Intel)
llama.cpp, motor Vulkan (GPU discreta Intel), todas las capas en la GPU, Flash Attention activado, micro-lote (-ub) 512, KV cache F16, contexto (-c) como se indica; «cabe» se evalúa con 4 secuencias paralelas y «no cabe» con 1 secuencia; GPU inactiva. Todavía no hay suficientes mediciones públicas, por lo que ningún veredicto usa este perfil.
| GPU | D_card (MiB) |
|---|---|
| Intel Arc Pro B70 | 138 |
| Dispositivo | Motor de ejecución | Compilación | Nominal | Total informado (MiB) | Libre al inicio (MiB) | Usado antes de la carga (MiB) | Sin contabilizar tras la ejecución (MiB) | Fuente |
|---|---|---|---|---|---|---|---|---|
| Intel Arc Pro B70 | Vulkan | build_info: b8871-7fc1c4ef7 | 32 GB | 32.630 | 31.861 | 769 | — | llama.cpp issues/22275 Líneas de registro
|
ROCm en Linux (AMD)
llama.cpp, motor ROCm en Linux (GPU discreta AMD), todas las capas en la GPU, Flash Attention activado, micro-lote (-ub) 512, KV cache F16, contexto (-c) como se indica; «cabe» se evalúa con las 4 secuencias paralelas predeterminadas de llama-server (-np auto, KV cache unificada) y «no cabe» con 1 secuencia; GPU inactiva, sin otros programas que usen su memoria.
| 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 |
| Dispositivo | Motor de ejecución | Compilación | Nominal | Total informado (MiB) | Libre al inicio (MiB) | Usado antes de la carga (MiB) | Sin contabilizar tras la ejecución (MiB) | Fuente |
|---|---|---|---|---|---|---|---|---|
| AMD Radeon RX 7900 XTX | ROCm | version: 9744 (063d9c1) | 24 GB | 24.560 | 24.494 | 266 | — | llama.cpp issues/24858 Líneas de registro
|
| AMD Radeon RX 7800 XT (x2, ROCm0) | ROCm | version: b8929-9d34231bb | 16 GB | 16.368 | 16.036 | 467 | — | llama.cpp issues/22351 Líneas de registro
|
| AMD Radeon RX 7900 XTX | ROCm | version: 9307 (549b9d8) | 24 GB | 24.560 | 24.510 | 1135 | — | llama.cpp issues/23934 Líneas de registro
|
| AMD Radeon RX 7900 XTX (x4) | ROCm | unknown | 24 GB | 24.560 | 24.510 | 1135 | — | llama.cpp issues/27021 Líneas de registro
|
| AMD Radeon AI PRO R9700 (x8) | ROCm | build 43 (5854625) | 32 GB | 32.624 | 32.534 | 1175 | — | llama.cpp issues/26208 Líneas de registro
|
| AMD Radeon AI PRO R9700 | ROCm | build 10616 (45bfc6f91) | 32 GB | 32.624 | 32.538 | 1171 | — | llama.cpp issues/26208 Líneas de registro
|
| AMD Instinct MI50 32GB | ROCm | build 9943 (c15c5c77a) | 32 GB | 32.752 | 32.722 | 1115 | — | llama.cpp issues/25487 Líneas de registro
|
| AMD Radeon RX 6800 | ROCm | version: 746 (da296d6) | 16 GB | 16.368 | — | 660 | — | llama.cpp issues/26038 Líneas de registro
|
| AMD Radeon Pro VII (x3) | ROCm | build: aa374175c (6969) | 16 GB | 16.368 | — | 279 | 279 | llama.cpp issues/17058 Líneas de registro
|
| AMD Radeon RX 6900 XT | ROCm | version: 9890 (74976e1) | 16 GB | 16.368 | 16.342 | 1111 | — | llama.cpp issues/25594 Líneas de registro
|
| AMD Radeon RX 7900 XTX | ROCm | version: 8707 (3bd9aa1) | 24 GB | 24.560 | 24.376 | 219 | — | llama.cpp issues/22052 Líneas de registro
|
Pruebas de referencia
Cada caso es un registro público de llama.cpp que muestra los buffers por dispositivo. Se leen los archivos GGUF de ese registro, se recalculan los buffers por tarjeta con el contexto, las secuencias, el micro-lote y el tipo de KV del propio registro, y se comparan con modelo + KV + RS + cómputo de la misma tarjeta. 38 casos (50 tarjetas) se ejecutan como pruebas automáticas en cada compilación y deben mantenerse entre −5% y +10%; el mayor error es +8,85%.
| Caso | GGUF | Motor de ejecución | Tarjetas | Dispositivo | Contexto | Secuencias | KV | Medido | Nuestra estimación | Error |
|---|---|---|---|---|---|---|---|---|---|---|
| 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 | 4096 | 1 | F16 | 3570,3 MiB | 3581,7 MiB | +0,32% |
| E05 | ggml-org/gemma-3-4b-it-qat-GGUF | Vulkan | 1 | Vulkan0 | 131.072 | 4 | F16 | 6001,9 MiB | 6261,9 MiB | +4,33% |
| E06 | unsloth/gemma-3-27b-it-GGUF | CUDA | 1 | CUDA0 | 8192 | 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 | 2065,2 MiB | 2090,7 MiB | +1,23% |
| E10 | lmstudio-community/gpt-oss-20b-GGUF | Metal | 1 | Metal | 4096 | 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 | 2370,8 MiB | 2489,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 | 4032,3 MiB | 4280,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 | 6805,8 MiB | 6908,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 | 2050 | 1 | F16 | 2381,0 MiB | 2439,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 | 6674,4 MiB | 6665,4 MiB | -0,13% |
| E33 | unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF | ROCm | 1 | ROCm0 | 4096 | 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 | 3300,9 MiB | 3314,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 | 8448 | 1 | F16 | 5718,0 MiB | 5732,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 | 4416,4 MiB | 4560,3 MiB | +3,26% |
| E43 | unsloth/Qwen3-VL-8B-Thinking-GGUF | Vulkan | 2 | Vulkan1 | 24.576 | 4 | Q8_0 | 2734,4 MiB | 2766,3 MiB | +1,17% |
| E44 | ggml-org/Qwen2.5-Coder-1.5B-Instruct-Q8_0-GGUF | Vulkan | 1 | Vulkan0 | 4096 | 1 | F16 | 1976,4 MiB | 1981,4 MiB | +0,25% |
| E45 | unsloth/Qwen3-30B-A3B-GGUF | Metal | 1 | Metal | 4096 | 1 | F16 | 9307,4 MiB | 9307,4 MiB | -0,00% |
| E46 | bartowski/mistralai_Voxtral-Mini-3B-2507-GGUF | Metal | 1 | MTL0 | 16.384 | 4 | F16 | 6256,0 MiB | 6276,0 MiB | +0,32% |
| E47 | unsloth/Qwen3-0.6B-GGUF | Metal | 1 | Metal | 34.304 | 4 | F16 | 4425,4 MiB | 4488,4 MiB | +1,42% |
| E48 | sweepai/sweep-next-edit-1.5B | Metal | 1 | Metal | 32.768 | 4 | F16 | 2462,6 MiB | 2680,6 MiB | +8,85% |
Registros excluidos y por qué
- E04: Flash Attention estaba desactivado; este sitio modela Flash Attention activado.
- E09: Ejecutado con --swa-full, una caché de ventana deslizante que no es la predeterminada.
- E16: Varias secuencias sin una KV cache unificada; esa disposición de la caché no está modelada.
- E32: Flash Attention estaba desactivado; este sitio modela Flash Attention activado.
- E34: Flash Attention estaba desactivado; este sitio modela Flash Attention activado.
- E42: Flash Attention estaba desactivado; este sitio modela Flash Attention activado.
Reglas de llama.cpp por arquitectura
La forma en que cada arquitectura organiza su KV cache y su estado se ha transcrito del código fuente de llama.cpp en el commit 5aeac37a35.
| Arquitectura | Disposición de la KV cache | Fuente |
|---|---|---|
llama | atención completa en todas las capas | src/models/llama.cpp |
qwen2 | atención completa en todas las capas | src/models/qwen2.cpp |
qwen2moe | atención completa en todas las capas | src/models/qwen2moe.cpp |
qwen2vl | atención completa en todas las capas | src/models/qwen2vl.cpp |
qwen3 | atención completa en todas las capas | src/models/qwen3.cpp |
qwen3moe | atención completa en todas las capas | src/models/qwen3moe.cpp |
qwen3vl | atención completa en todas las capas | src/models/qwen3vl.cpp |
qwen3vlmoe | atención completa en todas las capas | src/models/qwen3vlmoe.cpp |
mistral3 | atención completa en todas las capas | src/models/mistral3.cpp |
mistral4 | atención completa en todas las capas | src/models/mistral4.cpp |
phi2 | atención completa en todas las capas | src/models/phi2.cpp |
phi3 | atención completa en todas las capas | src/models/phi3.cpp |
phimoe | atención completa en todas las capas | src/models/phimoe.cpp |
gemma | atención completa en todas las capas | src/models/gemma.cpp |
glm4 | atención completa en todas las capas | src/models/glm4.cpp |
glm4moe | atención completa en todas las capas | src/models/glm4-moe.cpp |
granite | atención completa en todas las capas | src/models/granite.cpp |
granitemoe | atención completa en todas las capas | src/models/granite-moe.cpp |
command-r | atención completa en todas las capas | src/models/command-r.cpp |
olmo | atención completa en todas las capas | src/models/olmo.cpp |
olmoe | atención completa en todas las capas | src/models/olmoe.cpp |
starcoder2 | atención completa en todas las capas | src/models/starcoder2.cpp |
internlm2 | atención completa en todas las capas | src/models/internlm2.cpp |
minimax-m2 | atención completa en todas las capas | src/models/minimax-m2.cpp |
hunyuan-moe | atención completa en todas las capas | src/models/hunyuan-moe.cpp |
hunyuan-dense | atención completa en todas las capas | src/models/hunyuan-dense.cpp |
hy_v3 | atención completa en todas las capas | src/models/hy-v3.cpp |
ernie4_5 | atención completa en todas las capas | src/models/ernie4-5.cpp |
ernie4_5-moe | atención completa en todas las capas | src/models/ernie4-5-moe.cpp |
seed_oss | atención completa en todas las capas | src/models/seed-oss.cpp |
smollm3 | atención completa en todas las capas | src/models/smollm3.cpp |
apertus | atención completa en todas las capas | src/models/apertus.cpp |
exaone | atención completa en todas las capas | src/models/exaone.cpp |
nemotron | atención completa en todas las capas | src/models/nemotron.cpp |
bailingmoe | atención completa en todas las capas | src/models/bailingmoe.cpp |
bailingmoe2 | atención completa en todas las capas | src/models/bailingmoe2.cpp |
dots1 | atención completa en todas las capas | src/models/dots1.cpp |
arcee | atención completa en todas las capas | src/models/arcee.cpp |
grovemoe | atención completa en todas las capas | src/models/grovemoe.cpp |
nanbeige | atención completa en todas las capas | src/models/nanbeige.cpp |
k2-horizon | atención completa en todas las capas | src/models/k2-horizon.cpp |
deci | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/deci.cpp |
deepseek2 | atención completa en todas las capas | src/models/deepseek2.cpp |
deepseek | atención completa en todas las capas | src/models/deepseek.cpp |
minicpm3 | atención completa en todas las capas | src/models/minicpm3.cpp |
deepseek32 | atención dispersa con claves de indexador (contadas como K adicional) | src/models/deepseek32.cpp |
glm-dsa | atención dispersa con claves de indexador (contadas como K adicional) | src/models/glm-dsa.cpp |
gemma2 | ventana deslizante: 1 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/gemma2.cpp |
gemma3 | ventana deslizante: 5 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/gemma3.cpp |
gemma3n | ventana deslizante: 4 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa; disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/gemma3n.cpp |
gemma4 | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/gemma4.cpp |
cohere2 | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/cohere2.cpp |
cohere2moe | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/cohere2moe.cpp |
gpt-oss | ventana deslizante: 1 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/openai-moe.cpp |
exaone4 | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/exaone4.cpp |
exaone-moe | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/exaone-moe.cpp |
afmoe | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/afmoe.cpp |
llama4 | atención por bloques: 3 capas por bloques por cada capa completa | src/models/llama4.cpp |
muse-glimmer | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/muse-glimmer.cpp |
muse-spark | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/muse-spark.cpp |
mellum | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/mellum.cpp |
smallthinker | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/smallthinker.cpp |
laguna | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/laguna.cpp |
granite_swa | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/granite-swa.cpp |
maple | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/maple.cpp |
spark2_5 | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/spark2-5.cpp |
step35 | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/step35.cpp |
mimo2 | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/mimo2.cpp |
kolibri1 | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/kolibri1.cpp |
beam | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/beam.cpp |
maion-coder | ventana deslizante, patrón por capa leído del archivo GGUF | src/models/maion-coder.cpp |
olmo2 | ventana deslizante: 3 capas deslizantes por cada capa completa, salvo que el archivo GGUF indique un patrón por capa | src/models/olmo2.cpp |
plamo3 | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/plamo3.cpp |
qwen3next | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/qwen3next.cpp |
qwen35 | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/qwen35.cpp |
qwen35moe | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/qwen35moe.cpp |
qwen4exp | capas recurrentes / de atención lineal con un estado de tamaño fijo; disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/qwen4exp.cpp |
nemotron_h | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/nemotron-h.cpp |
nemotron_h_moe | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/nemotron-h.cpp |
granitehybrid | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/granite-hybrid.cpp |
jamba | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/jamba.cpp |
lfm2 | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/lfm2.cpp |
lfm2moe | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/lfm2moe.cpp |
falcon-h1 | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/falcon-h1.cpp |
kimi-linear | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/kimi-linear.cpp |
kimi-k3 | capas recurrentes / de atención lineal con un estado de tamaño fijo | src/models/kimi-k3.cpp |
glm5-next | capas recurrentes / de atención lineal con un estado de tamaño fijo; atención dispersa con claves de indexador (contadas como K adicional) | src/models/glm5-next.cpp |
minimax-01 | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/minimax-01.cpp |
plamo2 | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/plamo2.cpp |
deepseek4 | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/deepseek4.cpp |
dots3note | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/dots3note.cpp |
hy_v4 | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/hy-v4.cpp |
minimax-m3 | disposición de la caché aún no modelada: los modelos con esta arquitectura no figuran en la lista | src/models/minimax-m3.cpp |
Fuentes y cómo se verifican las especificaciones
- Nunca se consultan los sitios web de los fabricantes, porque sus términos prohíben el acceso automatizado. La especificación del fabricante procede de conjuntos de datos abiertos que enlazan una hoja de especificaciones del fabricante fila por fila (GetDeploying y Epoch AI, cuando la hoja está en un dominio del fabricante o en un servidor de documentos que el propio fabricante usa para sus hojas de especificaciones) y de la documentación de ROCm de AMD. Esos enlaces a hojas de especificaciones se muestran como «referencia del fabricante», marcados como no consultados por este sitio. Los enlaces a hojas de especificaciones se consideran del fabricante cuando están en alguno de estos dominios (incluidos los servidores de documentos que usan los fabricantes):
amd.com,apple.com,dam-cdn.nvd.orangelogic.com,geforce.com,intel.com,nvdam.widen.net,nvidia.com - Wikipedia se usa como verificación cruzada independiente. Sus notas al pie no se usan como fuente de un valor, porque las notas al pie de columnas y nombres de producto no muestran de dónde procede un campo concreto.
- El voto de la especificación del fabricante y el voto de contraste deben provenir de editores distintos sin referencia entre ellos: si la página de Wikipedia (o la fila del conjunto de datos) que contrasta cita al otro editor, cuenta como derivada, no como un segundo voto. Una fuente que copia a otra sin decirlo no puede detectarse a partir de evidencia pública.
- Se muestra un valor (two_source) cuando un voto de especificación del fabricante y una verificación cruzada independiente coinciden y ninguna fuente en buen estado discrepa. En caso contrario, el estado es «conflicto» (las fuentes discrepan), «fuente única» (sin voto de especificación del fabricante o sin verificación cruzada independiente) o «sin datos».
- Las filas que un conjunto de datos abierto atribuye a TechPowerUp (filas de Epoch AI cuyo enlace de la hoja de datos apunta a techpowerup.com) no se leen en absoluto, porque los términos de TechPowerUp prohíben los conjuntos de datos derivados: no votan ni cuentan como desacuerdo.
- Coincidir significa: tamaño de memoria exactamente igual, ancho de banda dentro del 1 %, otros números dentro del 2 %, texto igual tras la normalización.
- El valor mostrado es el que dan exactamente más fuentes coincidentes; junto a él se indican la cifra y el enlace de cada fuente. Los enlaces de Wikipedia apuntan a la revisión exacta utilizada.
- Los equipos con Apple Silicon, DGX Spark y Strix Halo no se publican en esta versión: ninguna fuente abierta enlaza una hoja de datos del fabricante para ellos fila por fila.
- Los datos de los modelos provienen de Hugging Face en revisiones fijadas. Cada modelo usa un único repositorio GGUF para todas sus cuantizaciones, elegido según un orden fijo de editores; la arquitectura se lee de la cabecera GGUF y, cuando el config.json original es legible, se contrasta con él.
- Los pesos originales, mostrados solo como referencia, cuentan los archivos safetensors del repositorio en el nivel superior y en las carpetas model*: con un model.safetensors.index.json, los archivos que este nombra más los conjuntos completos de otras carpetas model*; sin él, todos los conjuntos completos, contando una sola vez un archivo unificado y una copia fragmentada idéntica. No se cuentan otras carpetas (por ejemplo, decodificadores almacenados por separado), original/, los archivos consolidated*, los adaptadores LoRA ni los archivos .bin / .pt. Cuando los archivos no forman un único conjunto inequívoco, no se indica ningún tamaño.
Recuento de parámetros
Los parámetros se cuentan a partir de la tabla de tensores GGUF del archivo GGUF elegido: todos los tensores que carga llama.cpp, incluida la tabla de embedding de entrada. No se cuentan las capas de predicción de múltiples tokens (MTP / NextN), que llama.cpp no carga por defecto; las páginas de los modelos que las tienen indican cuántas son. Los parámetros activos por token cuentan los tensores que no son de expertos más los expertos en uso (expertos usados ÷ expertos por capa), pero no la búsqueda en el embedding de entrada, porque por cada token solo se lee una fila. Cuando un modelo usa una misma matriz como embedding de entrada y como capa de salida (embeddings compartidos), cada token se multiplica por toda ella, por lo que se cuenta una sola vez, como capa de salida. Las fichas de los modelos suelen contar también la tabla de embedding de entrada y las capas MTP, por lo que sus cifras pueden ser notablemente mayores, sobre todo en modelos de mezcla de expertos pequeños con vocabularios grandes. El recuento propio del repositorio original se muestra por separado.
Los parámetros activos solo se indican para los modelos de mezcla de expertos, es decir, aquellos cuya cabecera GGUF indica más de un experto por capa. Un modelo con un solo experto por capa (número de expertos 1) es denso: se usan todos los parámetros para cada token, por lo que no se muestra una cifra de parámetros activos aparte.
El recuento propio del repositorio original es el total que Hugging Face informa para sus pesos safetensors; algunos repositorios lo indican de forma incorrecta en sus metadatos. Solo se muestra, y solo se incluye en las descargas, cuando está confirmado: debe ser superior a 100M parámetros, estar dentro del 1% de los recuentos de parámetros por tipo que Hugging Face lee de los archivos de pesos del repositorio y, para los modelos con un archivo GGUF, estar entre 0,5 y 2,5 veces el recuento del GGUF (el original también puede contener un codificador de visión o de audio, o capas de predicción de múltiples tokens; el GGUF puede ser mayor cuando almacena por segunda vez un embedding compartido como su capa de salida). Los modelos sin archivo GGUF necesitan cumplir las dos primeras comprobaciones. De lo contrario, el recuento se omite.
Qué muestra cada estado
| Estado | En la página |
|---|---|
two_source | Se muestra: una especificación del fabricante enlazada por una fuente abierta coincide con una verificación cruzada independiente. |
conflict | Las fuentes abiertas no coinciden, por lo que este valor no se muestra; tampoco se dan las estimaciones que dependen de él (como la velocidad). |
single | No se muestra: las fuentes abiertas no ofrecen dos valores independientes y coincidentes con una referencia del fabricante. |
missing | No se muestra: las fuentes abiertas no ofrecen dos valores independientes y coincidentes con una referencia del fabricante. |
withheld | La entrada se publicó antes, pero ahora sus fuentes no coinciden, una fuente cambió o ya no cumple las reglas de listado. Su página se mantiene (sin indexar) con los enlaces a las fuentes; los valores, las estimaciones y los veredictos están ocultos. Tras 30 días con fuentes en buen estado se retira; cuando dos fuentes vuelvan a coincidir, regresa. |
retired | Retenida durante 30 días con fuentes en buen estado. La página se mantiene como lápida (sin indexar) y enlaza a un reemplazo cuando existe. |
Límite de velocidad
Generar un token lee una vez los pesos activos y la KV cache, por lo que los tokens por segundo no pueden superar el ancho de banda dividido entre los bytes leídos por token. En los modelos de mezcla de expertos solo se cuenta la proporción de expertos en uso, a partir de la tabla de tensores GGUF. Es un límite superior teórico; no se indica ninguna velocidad cuando el ancho de banda no está confirmado por dos fuentes.
Pruebas de rendimiento públicas
Velocidades medidas de llama.cpp publicadas por el proyecto llama.cpp en su repositorio (llama-bench, en el commit fijado de llama.cpp). Las máquinas de estas notas (DGX Spark, Apple M2 Ultra) no reciben veredictos en este sitio en esta versión; las cifras muestran cómo se compara la velocidad medida con el límite superior de ancho de banda y cómo disminuye a medida que crece el contexto: llama.cpp benches/ (5aeac37a)
| Máquina | Modelo (repositorio GGUF) | Backend | Prueba | Tokens por segundo |
|---|---|---|---|---|
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | procesamiento del prompt, 2048 tokens | 4505,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | generación, 32 tokens | 83,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 2689,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-20b-GGUF | CUDA | generación, 32 tokens · tras 32.768 tokens de contexto | 61,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | procesamiento del prompt, 2048 tokens | 2443,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | generación, 32 tokens | 58,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 1567,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/gpt-oss-120b-GGUF | CUDA | generación, 32 tokens · tras 32.768 tokens de contexto | 42,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | procesamiento del prompt, 2048 tokens | 2987,0 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | generación, 32 tokens | 61,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 1348,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | CUDA | generación, 32 tokens · tras 32.768 tokens de contexto | 30,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | procesamiento del prompt, 2048 tokens | 2250,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | generación, 32 tokens | 29,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 1471,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | CUDA | generación, 32 tokens · tras 32.768 tokens de contexto | 22,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | procesamiento del prompt, 2048 tokens | 5948,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | generación, 32 tokens | 81,1 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 5023,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/gemma-3-4b-it-qat-GGUF | CUDA | generación, 32 tokens · tras 32.768 tokens de contexto | 62,3 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | procesamiento del prompt, 2048 tokens | 2364,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | generación, 32 tokens | 48,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 567,2 |
| NVIDIA DGX Spark (GB10) | ggml-org/GLM-4.7-Flash-GGUF | CUDA | generación, 32 tokens · tras 32.768 tokens de contexto | 32,7 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | procesamiento del prompt, 2048 tokens | 768,8 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | generación, 32 tokens | 19,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 724,4 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Super-120B-GGUF | CUDA | generación, 32 tokens · tras 32.768 tokens de contexto | 19,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | procesamiento del prompt, 2048 tokens | 2761,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | generación, 32 tokens | 52,9 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 2041,5 |
| NVIDIA DGX Spark (GB10) | ggml-org/Nemotron-3-Nano-4B-GGUF | CUDA | generación, 32 tokens · tras 32.768 tokens de contexto | 46,7 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens | 2713,4 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | generación, 32 tokens | 130,0 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 1122,6 |
| Apple M2 Ultra | ggml-org/gpt-oss-20b-GGUF | MTL,BLAS | generación, 32 tokens · tras 32.768 tokens de contexto | 98,3 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens | 1648,7 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | generación, 32 tokens | 85,6 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 721,1 |
| Apple M2 Ultra | ggml-org/gpt-oss-120b-GGUF | MTL,BLAS | generación, 32 tokens · tras 32.768 tokens de contexto | 65,5 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens | 2453,1 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | generación, 32 tokens | 79,0 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 431,3 |
| Apple M2 Ultra | ggml-org/Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF | MTL,BLAS | generación, 32 tokens · tras 32.768 tokens de contexto | 45,3 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens | 1565,9 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | generación, 32 tokens | 79,7 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 612,2 |
| Apple M2 Ultra | ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF | MTL,BLAS | generación, 32 tokens · tras 32.768 tokens de contexto | 56,8 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens | 2923,6 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | generación, 32 tokens | 134,3 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 2129,2 |
| Apple M2 Ultra | ggml-org/gemma-3-4b-it-qat-GGUF | MTL,BLAS | generación, 32 tokens · tras 32.768 tokens de contexto | 113,1 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens | 1629,3 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | generación, 32 tokens | 59,6 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | procesamiento del prompt, 2048 tokens · tras 32.768 tokens de contexto | 151,4 |
| Apple M2 Ultra | ggml-org/GLM-4.7-Flash-GGUF | MTL,BLAS | generación, 32 tokens · tras 32.768 tokens de contexto | 21,8 |
Macs y otros equipos con memoria unificada
Estos equipos permiten que la GPU use solo una parte de su memoria, y las fuentes abiertas disponibles para ellos no citan referencias por cada valor. No se publican en esta versión; los perfiles de ejecución para ellos se conservan para cuando las fuentes lo permitan.
Unidades
Las cantidades de memoria calculadas aquí están en GiB (1.073.741.824 bytes). Los "24 GB" de memoria de vídeo de los fabricantes de GPU son 24 GiB. Hugging Face muestra el tamaño de los archivos en GB decimales, por lo que un archivo de 5.03 GB aparece aquí como 4.68 GiB. El ancho de banda está en GB/s (10⁹ bytes por segundo).
Actualizaciones
Hugging Face se analiza cada 6 horas en busca de nuevos modelos y nuevos archivos GGUF; las especificaciones de las GPU se vuelven a verificar a diario.