Saltar al contenido

LLM VRAM Calculator: Dimensiona la GPU antes de descargar el modelo.

Se ejecuta en tu navegador: nada de lo que pegas sale de esta página. Cómo lo demostramos

Área de pruebas de la LLM VRAM Calculator

Model
Quantization

KV cache is counted at FP16. Overhead is a fixed 1.5 GiB estimate for the runtime and compute buffers. A custom size borrows the architecture of the nearest preset.

Results update as you type — press Enter to run now.

fig. 40 — llm-vram-calculator · ai 7.05 GiB total at Q4_K_M, 8k context — fits an 8 GiB GPU.
Result
Total VRAM7.05 GiBfits an 8 GiB card
Weights4.55 GiB8 B × 4.89 bpw (Q4_K_M)
KV cache1.00 GiB8k ctx · 32 layers · 8 KV heads · 128 dim · FP16
Overhead1.50 GiBruntime + compute buffers, estimate
ArchitectureLlama 3.1 8B

GPU tiers

  • 8 GiBfitsRTX 4060, RTX 3070, RX 7600
  • 12 GiBfitsRTX 4070, RTX 3060 12GB, RTX 5070
  • 16 GiBfitsRTX 4060 Ti 16GB, RTX 4080, RTX 5080
  • 24 GiBfitsRTX 4090, RTX 3090, RX 7900 XTX
  • 32 GiBfitsRTX 5090, V100 32GB
  • 48 GiBfitsRTX A6000, RTX 6000 Ada, L40S
  • 80 GiBfitsA100 80GB, H100 80GB

Elige un preset de modelo como Llama 3.1 8B o introduce un número de parámetros, escoge una cuantización GGUF como Q4_K_M y una longitud de contexto, y obtén la VRAM que necesita un LLM local — pesos, caché KV y sobrecarga de ejecución en GiB, con un veredicto frente a los tamaños de GPU habituales — todo calculado en tu navegador, sin registro.

La brecha

Los pesos caben. Luego la ventana de contexto no.

La memoria GPU de un LLM local son tres facturas, no una. Los pesos son la parte que todo el mundo dimensiona: parámetros por bits por peso, y por eso la cuantización de 4 bits de un modelo de 8B es un archivo de 4,5 GiB. La caché KV es la parte que todo el mundo olvida — dos tensores por capa que crecen linealmente con la longitud de contexto, así que el mismo modelo de 8B pide 1 GiB de caché a 8k tokens y 16 GiB a 128k. La sobrecarga de ejecución es el resto: búferes de cómputo, contexto CUDA o Metal y el propio framework, un coste fijo de unos 1,5 GiB.

Dos sistemas de unidades empeoran los casos límite. Una GPU vendida como «24 GB» expone 24 GiB (2³⁰ bytes cada uno), mientras que las fichas de modelo y los tamaños de archivo suelen citar GB (10⁹ bytes) — una diferencia del 7,4 %. Esta calculadora trabaja en GiB de principio a fin, así que el ajuste se juzga contra lo que el controlador realmente informa, y la referencia de abajo muestra ambas cifras para el ejemplo resuelto. En Apple silicon la memoria unificada se comparte con el sistema; cuenta con que alrededor del 75 % de la RAM del Mac quede disponible para el modelo.

Preguntar a una IA cuánta VRAM necesita un modelo es el atajo arriesgado: un modelo de lenguaje recuerda cifras plausibles de hilos de foros sobre otras cuantizaciones y longitudes de contexto. Esta calculadora calcula la caché KV real por capa a partir de la forma del config.json de cada modelo y de los bits por peso medidos por llama.cpp — números con los que puedes verificar la respuesta de una IA, no más texto plausible.

¿Conviertes entre GiB y GB? El Data Size Converter muestra los recuentos de bytes exactos.

El proceso

Cómo funciona.

Cuatro pasos deterministas se ejecutan con cada cambio — todos dentro de la pestaña de tu navegador, con las formas de modelo comprobadas contra cada config.json.

  1. Elige la forma.

    Un preset aporta el número de capas, las cabezas KV y la dimensión de cabeza del modelo desde su config.json; un número de parámetros personalizado toma prestada la forma del preset más cercano y se marca como estimado.

  2. Pesa los pesos.

    Parámetros × bits efectivos por peso de la cuantización elegida, ÷ 8, ÷ 2³⁰. Los bits por peso salen de la tabla medida de llama.cpp, no de los 4 u 8 nominales.

  3. Dimensiona la caché KV.

    Dos tensores por capa (K y V) × cabezas KV × head-dim × tokens de contexto × 2 bytes en FP16 — la parte de la factura que crece con tu ventana de contexto.

  4. Suma la sobrecarga y da el veredicto.

    1,5 GiB fijos para el runtime y los búferes de cómputo; después el total se compara con los tamaños de tarjeta habituales y se nombra la más pequeña en la que cabe.

Referencia de fórmulas

Las dos fórmulas, resueltas.

Todo lo que muestra el panel sale de estas dos líneas más una sobrecarga fija. Aquí están con formas de modelo reales, para que puedas comprobar el resultado a mano.

La caché KV crece con el contexto

La atención por grupos de consultas mantiene pequeña la caché: Llama 3.1 tiene 32 cabezas de atención pero solo 8 cabezas KV por capa, y esa es la cifra que cuenta aquí.

fig. 40.1 — kv-cache-llama-3-1-8b
KV cache (FP16) = 2 × layers × kv_heads × head_dim × context × 2 bytes

Llama 3.1 8B at 128k context
  layers 32 · kv_heads 8 · head_dim 128 · context 131,072
  = 2 × 32 × 8 × 128 × 131,072 × 2 B
  = 17,179,869,184 B
  = 16.0 GiB            (17.2 GB — the KV cache alone outgrows a 16 GiB card)

Same model at 8k context
  = 1.0 GiB

Pesos por cuantización

Un GGUF «de 4 bits» no tiene 4 bits por peso: Q4_K_M promedia 4,89 una vez contadas sus escalas y los tensores de mayor precisión, y Q8_0 promedia 8,5.

fig. 40.2 — weights-llama-3-1-70b
Weights = params × bits_per_weight ÷ 8 ÷ 2^30

Llama 3.1 70B, Q4_K_M (4.89 bpw measured)
  weights   70e9 × 4.89 ÷ 8 ÷ 2^30  = 39.85 GiB
  KV @ 8k   2 × 80 × 8 × 128 × 8,192 × 2 B  =  2.50 GiB
  overhead                                 =  1.50 GiB
  total                                    = 43.85 GiB   → fits a 48 GiB card, not 24 or 32

Llama 3.1 8B, Q4_K_M
  weights   8e9 × 4.89 ÷ 8 ÷ 2^30   = 4.55 GiB
  KV @ 8k                            = 1.00 GiB
  total (with overhead)              = 7.05 GiB   → fits an 8 GiB card

Siguiente paso

¿Sirves el modelo en un clúster? Dimensiona también el pod.

Una vez elegida la tarjeta, la Kubernetes Resource Calculator convierte tu número de réplicas y las solicitudes de CPU, memoria y GPU por pod en totales por nodo y margen — útil antes de escribir el Deployment que monta el modelo.

fit.txt
Llama 3.1 8B   Q4_K_M    8k   →  7.05 GiB   fits  8 GiB
Llama 3.1 8B   FP16    128k   →  32.4 GiB   fits 48 GiB
Llama 3.1 70B  Q4_K_M    8k   →  43.8 GiB   fits 48 GiB

FAQ

Tus preguntas, respondidas.

Toca una pregunta para desplegar la respuesta.

Sume tres partes. Los pesos son el número de parámetros multiplicado por los bits por peso de la cuantización elegida, dividido entre 8 para obtener bytes y entre 2^30 para obtener GiB — un modelo de 8B ocupa unos 15 GiB en FP16, 8 GiB en Q8_0 y 4,6 GiB en Q4_K_M. La caché KV crece con la longitud del contexto (siguiente pregunta), y el runtime añade un búfer fijo, que esta calculadora fija en 1,5 GiB. El total tiene que caber en la memoria de la tarjeta con algo de margen; si no cabe, elija una cuantización menor o un contexto más corto antes de recurrir a una GPU mayor.

La cuantización guarda cada peso en menos bits que los 16 con los que se entrenó. FP16 conserva 16 bits por peso (bpw); Q8_0 usa unos 8,5 bpw y es prácticamente sin pérdidas; Q4_K_M usa unos 4,89 bpw —alrededor de un tercio del tamaño FP16— con un pequeño coste de calidad que la mayoría no nota en un chat. Los valores fraccionarios vienen de los diseños mixtos de llama.cpp, que mantienen algunos tensores sensibles en mayor precisión y guardan un factor de escala por bloque; por eso un archivo «de 4 bits» no es exactamente la mitad de uno de 8 bits.

Cada token del contexto guarda un vector clave y un vector valor en cada capa, así que la caché KV es 2 × capas × cabezas KV × dimensión de cabeza × tokens × 2 bytes en FP16. Para Llama 3.1 8B (32 capas, 8 cabezas KV, dimensión de cabeza 128) son 128 KiB por token: 1 GiB con 8.192 tokens y 16 GiB con los 131.072 completos — más que los propios pesos en Q4_K_M. La atención de consulta agrupada (8 cabezas KV en lugar de 32) divide la caché entre cuatro, y por eso Llama 3 admite contextos largos donde Llama 2 no podía. El deslizador de contexto dibuja la caché como su propio segmento de la barra para que vea adónde va la memoria.

La memoria de GPU se vende en gigabytes binarios: una RTX 4090 «de 24 GB» tiene 24 GiB, que son 25,77 GB. Un GB son 10^9 bytes y un GiB son 2^30 = 1.073.741.824 bytes, un 7,37 % más, así que dividir entre 10^9 haría parecer cada modelo un 7,4 % mayor de lo que es y daría veredictos erróneos justo en el límite. La calculadora divide entre 2^30 en todas partes, para que un veredicto compare lo mismo con lo mismo.

Los pesos y la caché KV no son todo: el runtime (llama.cpp, Ollama, vLLM) reserva búferes de cómputo para las activaciones, el contexto CUDA o Metal ocupa unos cientos de MiB y el controlador se reserva algo de memoria propia. 1,5 GiB es una estimación redonda que cubre todo eso para la mayoría de modelos en una sola tarjeta; el valor real varía según el runtime, el tamaño de lote y la GPU. Trátelo como un margen, no como una medida: si un veredicto queda a menos de medio GiB de un escalón, espere problemas.

No del todo en la GPU. Llama 3.1 70B en Q4_K_M necesita unos 40 GiB solo para los pesos, antes de la caché KV y el overhead del runtime, así que una sola tarjeta de 24 GiB no puede contenerlo. Cabe en una tarjeta de 48 GiB (RTX 6000 Ada, A6000) o repartido entre dos tarjetas de 24 GiB con división por capas; Q2_K, con unos 3,16 bpw, baja los pesos a unos 26 GiB, todavía demasiado para una tarjeta y con un coste de calidad visible. Los runtimes pueden descargar las capas restantes a la RAM del sistema, pero la velocidad de tokens cae entonces a lo que permite el ancho de banda de memoria de la CPU, normalmente unos pocos tokens por segundo.

Apple Silicon comparte un único conjunto de memoria entre CPU y GPU, así que un Mac con 64 GB puede cargar modelos que ninguna tarjeta de 24 GiB admite. Por defecto macOS deja que la GPU use aproximadamente el 75 % de la memoria unificada (unos 48 GiB en una máquina de 64 GB) y reserva el resto para el sistema; el sysctl iogpu.wired_limit_mb puede subir el límite bajo su propia responsabilidad. Introduzca como presupuesto unas tres cuartas partes de la memoria del Mac, y recuerde que el ancho de banda, no la capacidad, fija la velocidad de tokens: un M-series Max mueve unos 400 GB/s, una RTX 4090 alrededor de 1 TB/s.

No. La calculadora se ejecuta al 100 % en el cliente: los presets de arquitectura y la aritmética viajan con la página, y cada número se calcula en la pestaña de su navegador. No se sube nada a ningún servidor, no hay cuenta ni registro, y el enlace para compartir codifica su selección en el fragmento de la URL, que los navegadores nunca envían a un servidor.

Solo para los pesos: un modelo de 8B necesita unos 4,6 GiB en Q4_K_M, 7,9 GiB en Q8_0 y 14,9 GiB en FP16 (uno de 7B, unos 4,0, 6,9 y 13,0 GiB); uno de 14B, unos 8,0, 13,9 y 26,1 GiB; uno de 70B, unos 39,9, 69,3 y 130,4 GiB. Sume la caché KV de su contexto —con 8.192 tokens es 1 GiB para Llama 3.1 8B y 2,5 GiB para Llama 3.1 70B— más el overhead de 1,5 GiB del runtime, de modo que un 8B en Q4_K_M con 8k de contexto queda cerca de 7,1 GiB en total. Cada modelo popular tiene su propia página con su número real de capas y de cabezas KV, para que lea directamente el veredicto de ese modelo.

Los pesos tienen un tamaño fijo, pero la caché KV crece con cada token: cuesta 2 × capas × cabezas KV × dimensión de cabeza × 2 bytes por token en FP16. Para Llama 3.1 8B son 2 × 32 × 8 × 128 × 2 = 128 KiB por token, así que el contexto completo de 131.072 tokens necesita 16 GiB de caché frente a unos 4,6 GiB de pesos en Q4_K_M. La atención de consulta agrupada es lo que la mantiene así de pequeña —8 cabezas KV en lugar de 32 dejan la caché en una cuarta parte—, mientras que los modelos antiguos con atención multicabeza, con una cabeza KV por cada cabeza de consulta, se quedan sin memoria con contextos mucho más cortos.

More free, private DevOps tools.

La LLM VRAM Calculator es una de las herramientas de OpsCanopy — un dosel creciente de validadores, conversores y probadores basados en el navegador que nunca tocan un servidor.

¿Empiezas con AI & local LLMs?  Lee la guía de AI & local LLMs →

42 herramientas gratuitas, todas pueden funcionar sin conexión — opscanopy.com funciona sin registro y sin subir nada.

Más dimensionado: la Kubernetes Resource Calculator y el Data Size Converter, o explora el directorio completo de herramientas.

Solo estimaciones; la caché KV se dimensiona en FP16 y la sobrecarga es un margen fijo, así que confirma siempre contra el informe de tu propio runtime antes de comprar hardware. OpsCanopy es gratuita y abierta.