Lab
Actualizado el
Esta página es la procedencia de todo lo que se publica aquí. Cuando un post cita un número, fue medido en esta máquina, con esta configuración.
Cómo mido
Un número de throughput solo significa algo si viene con el procedimiento. El mío es este, y es el mismo en todos los posts:
Modelo cargado y en temperatura antes de medir. La primera ejecución después de cargar incluye leer el modelo del disco y compilar kernels. Se descarta.
Contexto declarado explícitamente. La ventana predeterminada del runtime no es la ventana que uso, y la caché KV cambia tanto la memoria como el rendimiento. El contexto se declara en cada medición.
Tres ejecuciones, mediana reportada. El promedio esconde los outliers; una sola ejecución no vale nada. Cuando la dispersión entre ejecuciones supera el 5%, eso se convierte en una nota del post — porque una varianza alta suele significar térmica o competencia por la GPU, y el lector necesita saberlo.
Prompt y longitud de salida fijos. El throughput medido con prompts distintos no es comparable. Uso el mismo prompt y limito la salida al mismo número de tokens.
GPU dedicada durante la medición. Sin vídeo, sin un segundo modelo cargado, sin compositor pesado compitiendo por memoria.
Prefill y decode no son la misma métrica
Dos números distintos que mucha gente reporta como uno solo:
El prefill (o prompt eval) es el procesamiento del prompt de entrada — paralelo, limitado por cómputo. El decode (eval) es la generación token a token — secuencial, limitado por ancho de banda de memoria.
Un modelo puede tener un prefill excelente y un decode mediocre, o al revés. Reportar un “tokens/s” pelado sin decir cuál de los dos es la fuente más común de comparaciones inútiles entre modelos. Aquí los dos aparecen por separado.
Límites de este banco
Vale la pena decir qué no cubren estos números: es una máquina de un solo usuario, con una GPU. No mido concurrencia, no mido batching de servidor, no mido escala horizontal. Quien vaya a llevar esto a producción con muchos usuarios simultáneos necesita vLLM o TensorRT-LLM y su propia prueba — los números de aquí sirven para decidir qué ejecutar en tu escritorio, no para dimensionar un clúster.
Banco
-
NVIDIA RTX 5070
12 GB GDDR7
o piso realista — o que cabe em quem comprou placa de entrada
-
NVIDIA RTX 5070 Ti
16 GB GDDR7
onde os modelos de 14B e 24B começam a caber inteiros
-
NVIDIA RTX 4090
24 GB GDDR6X
a geração anterior, que em muita conta ainda ganha por token
-
NVIDIA RTX 5090
32 GB GDDR7
32B em Q4 com contexto longo, sem precisar mandar nada para a CPU
-
MacBook Pro M4 Max
48 GB unificados
Apple Silicon com MLX — a comparação de consumo e de bateria
-
Mini PC de memória unificada
96 GB unificados
muita memória e pouca banda: carrega o que nenhuma GPU aqui carrega
- Runtimes
- vLLM · Ollama · llama.cpp · MLX
- Apoio
- LiteLLM (gateway) · Langfuse (tokens e custo)