Infraestructura de IA local
Ancho de banda de memoria y límites de velocidad
¿Qué velocidad máxima de decode alcanza este modelo en esta GPU?
Vea por qué el ancho de banda de memoria, y no el cómputo, limita el decode de un LLM, compare GPU para la misma configuración y lea una medición frente a su límite.
1 · Modelo
Qwen3-8B
Qwen
Ficha del modelo en Hugging Face(se abre en una pestaña nueva)config.json(se abre en una pestaña nueva)
- Parámetros
- 8190,74 M
- Capas
- 36
- Cabezas
- 32 de query, 8 KV
- Dimensión de cabeza
- 128
- Contexto máximo
- 40.960 tokens
- KV cache por token, 16 bits
- 147,46 KB/token
- Dimensión oculta
- 4096
- Vocabulario
- 151.936
Valores leídos del config.json de Hugging Face el 30 de octubre de 2026.
Estos valores vienen de Hugging Face y no se pueden editar. Personalice para cambiarlos.
2 · Precisión
Cuántos bits ocupa cada parámetro.
›Cuantizaciones publicadas
Solo se aplica a formatos cuantizados.
Se fija aparte de los pesos. FP8 reduce el KV cache a la mitad.
3 · Carga de trabajo
Tokens por secuencia, prompt y texto generado juntos.
Solicitudes procesadas a la vez, el batch.
4 · Hardware
RTX PRO 6000 Blackwell Server Edition
NVIDIA · Blackwell
Memoria
96 GB
GDDR7 · contado como 96 GiB
Ancho de banda
1597 GB/s
Potencia máx.
300 to 600 W
Configurable.
Las barras comparan cada cifra con la mayor GPU del catálogo.
- NVLink
- Ninguno
- Instancias MIG
- 4
- Grupo NVLink
- Ninguno, solo PCIe
- GPU por servidor
- hasta 8
Cómo se integra en los servidores
- The Server Edition lists no NVLink. NVIDIA-Certified RTX PRO servers hold up to 8 GPUs. NVIDIA RTX PRO 6000 Blackwell Server Edition(se abre en una pestaña nueva)
Dividir esta GPU
MIG
Se divide en 4 slices de memoria y 4 slices de cómputo, hasta 4 instancias en una GPU. Los perfiles:
- 1g.24gb
- 2g.48gb
- 4g.96gb
Dónde puede empezar una instancia:Derivado
vGPU for Compute
10 tipos de 8 a 96 GB de framebuffer, hasta 12 vGPU en una GPU. Requiere una licencia de NVIDIA AI Enterprise y un hipervisor.
Compartir sin dividir
El time-slicing funciona en cualquier GPU, sin aislamiento de memoria ni de fallos entre las réplicas. MPS comparte una GPU completa, no una instancia MIG.
Formatos numéricos
Documentos en NVIDIA
›Especificaciones y fuentes
- Memoria
- 96 GB[1]
- Tipo
- GDDR7[1]
- Ancho de banda
- 1597 GB/s[1]
- Potencia máx.
- 300 to 600 W[2]Configurable.
- NVLink
- 0[3]No admitido.
- Instancias MIG
- 4[4]
- FP4
- 4000 TFLOPS[1]NVIDIA no dice si la cifra es densa o con sparsity.
- FP8
- 2000 TFLOPS[1]NVIDIA no dice si la cifra es densa o con sparsity.
- FP16 / BF16
- 1000 TFLOPS[1]NVIDIA no dice si la cifra es densa o con sparsity.
- TF32
- 234 TFLOPS[1]NVIDIA no dice si la cifra es densa o con sparsity.
Formatos numéricos: FP4, FP8, FP16, BF16, TF32, FP32
Las cifras de tensor son valores pico de las fichas técnicas. No son rendimiento de aplicaciones.
Fuentes
Cargando fuentes
Total de GPU. Reparten el modelo con tensor parallelism, etapas de pipeline y réplicas, como indica la distribución de abajo.
1 servidor de 8 GPU, el último con 1
Cómo se usa la GPU
Divida cada GPU en slices o compártala entre réplicas en lugar de usar más GPU. Los slices y las fracciones ejecutan réplicas del modelo: no se pueden unir en un grupo de tensor parallel.
›Distribución del despliegue
Cómo reparten el modelo las GPU. De ello se derivan la memoria por GPU, el espacio para el KV cache y el número de GPU, tal como los divide vLLM.
Etapas de pipeline
Divide las capas en tramos que corren en GPU distintas. Entre etapas pasan pocos datos, así que sirve para GPU sin enlace rápido y para servidores unidos por red.
Réplicas
Copias independientes del modelo, cada una con su propio KV cache. Se reparten las secuencias. Un modelo de mezcla de expertos reparte sus expertos entre todas.
Tamaño de tensor parallel: 1, las GPU divididas entre las etapas y las réplicas.
GPU por servidor
El tensor parallelism se queda dentro de un servidor. Más allá, las GPU pasan a ser etapas de pipeline.
Tamaño de decode context parallel
Reparte el KV cache de cada secuencia por tokens entre las GPU de tensor parallel. No añade GPU y ralentiza el decode.
Solo para modelos de mezcla de expertos.
Medición
Opcional: la latencia entre tokens medida para esta configuración, en milisegundos.
Supuestos del runtime›3,22 GB de sobrecarga por GPU, 90 % utilizables, 10 % de margen
Memoria para el contexto CUDA, las activaciones y los CUDA graphs, en la unidad de la página. Es una heurística.
Parte de la memoria de la GPU que el motor de inferencia puede usar. El valor por defecto de vLLM es 92 %.
Parte de la memoria utilizable que debe quedar libre para un ajuste holgado.
Este modelo no tiene capas de ventana deslizante.
Límite teórico, no la velocidad esperada
Paso de decode más corto
13,28 ms
21,21 GB leídos por GPU a 1,6 TB/s.
Límite de velocidad de una secuencia
75,28 tok/s
Tokens por segundo que no puede superar, sin speculative decoding.
Total de 4 secuencias
301,13 tok/s
Tokens por segundo en conjunto.
Tiempo de lectura de los pesos
10,26 ms
Los pesos que aloja una GPU, leídos una vez con todo el ancho de banda.
Batch de equilibrio
313
Punto en que el cómputo pasa a limitar en lugar de la memoria. La latencia sube antes.
Lo que lee una GPU en un paso
- Pesos leídos16,38 GB77,22 %
- KV cache leído4,83 GB22,78 %
Tiempo por paso al crecer el batch
Cada secuencia adicional suma su propia caché a los bytes que lee un paso, mientras que los pesos se leen una sola vez para todas. Los mismos límites con un contexto de 8192 tokens.
1 secuencia
11,01 ms
2 secuencias
11,77 ms
4 secuencias
13,28 ms
8 secuencias
16,31 ms
16 secuencias
22,36 ms
32 secuencias
34,46 ms
64 secuencias
58,67 ms
128 secuencias
107,08 ms
256 secuencias
203,89 ms
La misma configuración en otras GPU
Los mismos bytes sobre el ancho de banda de cada GPU. Una GPU en la que la configuración no cabe aparece marcada, y su cifra es la que daría si cupiera.
GB200 NVL72
377 tok/s
GB300 NVL72
377 tok/s
B200 HGX
363 tok/s
B300 HGX
363 tok/s
GH200 144 GB HBM3e
231 tok/s
H200 SXM
226 tok/s
H200 NVL
226 tok/s
GH200 96 GB HBM3
189 tok/s
H100 NVL
186 tok/s
H100 SXM
158 tok/s
A100 80GB SXM4
96 tok/s
H100 PCIe
94 tok/s
RTX PRO 6000 Blackwell Server EditionSeleccionada
75 tok/s
- Nota: El fabricante indica el pico de esta GPU sin decir si incluye sparsity. Se usa la mitad de la cifra, como en las GPU de la misma generación que sí lo dicen.
Desplegar esta configuración
Estos comandos están escritos para la configuración dimensionada arriba y las opciones elegidas aquí, y cambian con cualquiera de las dos. No se cambia nada automáticamente: una opción que deja de funcionar se conserva y se marca, con formas de corregirla.
El servidor
Ejecutar con
Runtime
El servidor que carga el modelo.
GPU
Los índices de las GPU de la máquina, tal como los lista nvidia-smi, separados por comas. La configuración usa 1 GPU.
Identificar las GPU por
Un índice depende del orden en que el driver encuentra las GPU. Un UUID está ligado a la tarjeta.
Endpoint
El puerto en el que responde el endpoint. 8000 (por defecto)
Escuchar en
El valor por defecto mantiene el endpoint en esta máquina.
El endpoint responde solo a solicitudes que lleven una clave. La clave se genera en su máquina y nunca se escribe en un comando ni en un enlace.
Más opciones
Dónde se guardan los pesos descargados. Un directorio que ya existe ahorra la descarga.
El valor por defecto es la versión para la que se escribieron estos comandos. latest sigue la más reciente.
Qué se ejecutará
vLLM · Docker · 1 GPU, RTX PRO 6000 Blackwell
- Repositorio
- Qwen/Qwen3-8BDe la calculadora
- Runtime
- vLLMPor defecto
- Se ejecuta con
- DockerPor defecto
- GPU
- 1 GPU, RTX PRO 6000 BlackwellDe la calculadora
- índice 0Por defecto
- Contexto
- 8192 tokensDe la calculadora
- Secuencias por réplica
- 4Calculado
- Memoria por GPU
- 22,76 GiB necesarios de 86,40 GiB utilizables
- Parte de cada GPU para el motor
- 90 %Calculado
- Acceso
- AbiertoDe la calculadora
- Endpoint
- 127.0.0.1:8000Por defecto
Conviene revisarlo
Se dimensionó un KV cache fp16 para pesos en bf16. Una caché de 16 bits ocupa el mismo espacio en cualquiera de los dos tipos, y vLLM la guarda en el tipo propio del modelo salvo que se indique otra cosa, así que los comandos no fuerzan fp16.
16 pasos en 5 fases. Abra uno a la vez, o todos.
1Comprobar el hardware
Mire lo que ofrece la máquina o el cluster antes de cambiar nada.3 pasos
- Paso 1
Comprobar el driver
Confirme que el driver de NVIDIA está instalado y es lo bastante reciente para el software de abajo.
nvidia-smiResultado esperado
- Una tabla con la versión del driver y una versión de CUDA de al menos 13.0, que necesita la imagen.
Ayuda y fuentes
Si no funciona
- Si la versión de CUDA es inferior a la que necesita el software, actualice el driver y vuelva a comprobar.
- nvidia-smi(se abre en una pestaña nueva)
- CUDA minor version compatibility(se abre en una pestaña nueva)
De dónde salen los valores
- La GPU elegida: RTX PRO 6000 Blackwell.
- Paso 2
Comprobar las GPU
Confirme que la máquina lista la GPU con índice 0.
nvidia-smi -LResultado esperado
- Una línea por cada GPU, y cada una indica RTX PRO 6000 Blackwell tal como lo escribe la máquina.
Ayuda y fuentes
Si no funciona
- Si falta una GPU elegida, no está en esta máquina o el driver no la ve.
- Si los nombres no coinciden con lo esperado, los índices no son los que cree. Identifique las GPU por UUID, que no depende del orden.
De dónde salen los valores
- La calculadora usa 1 GPU.
- La GPU elegida: RTX PRO 6000 Blackwell.
- Paso 3
Comprobar que la memoria está libre
La calculadora espera 22,76 GiB en cada GPU, de los 86,40 GiB que el motor puede usar. Compruebe que la memoria de la GPU con índice 0 está libre.
nvidia-smi --query-gpu=index,name,memory.total,memory.used,memory.free --format=csv -i 0Resultado esperado
- Casi toda la memoria de la GPU está libre, al menos 22,76 GiB en cada una.
Tenga en cuenta
- Puede que otros trabajos ya usen estas GPU. Si su memoria no está libre, detenga esos trabajos o elija otras GPU antes de empezar.
Ayuda y fuentes
De dónde salen los valores
- La calculadora: 22,76 GiB necesarios de 86,40 GiB utilizables en cada GPU.
2Preparar
Obtenga acceso al modelo, instale lo que necesita el servidor y descárguelo. Aquí también se crea una GPU dividida.2 requieren permisos de administrador5 pasos
Instalar las herramientas
- Paso 4
Comprobar Docker
Confirme que Docker Engine está instalado.
docker --versionResultado esperado
- Una versión de Docker.
Ayuda y fuentes
- Paso 5
Instalar el NVIDIA Container Toolkit
Requiere administradorPermite que los contenedores usen las GPU. Estos comandos son para Ubuntu y Debian, y la página enlazada abajo tiene las demás distribuciones.
Va después del paso 1
sudo apt-get update && sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg2 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.20.1-1 sudo apt-get install -y \ nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \ libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}Resultado esperado
- Los paquetes se instalan sin errores.
- Paso 6
Conectar Docker con las GPU
Requiere administradorRegistre el runtime de NVIDIA en Docker y reinícielo.
sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart dockerResultado esperado
- Sin errores, y Docker vuelve a arrancar.
Tenga en cuenta
- Reiniciar Docker detiene los contenedores en ejecución.
- Paso 7
Comprobar que un contenedor ve las GPU
Ejecute nvidia-smi en un contenedor al que se da la GPU con índice 0. Solo debería aparecer esa GPU.
docker run --rm --runtime=nvidia --gpus '"device=0"' \ ubuntu nvidia-smiResultado esperado
- Una tabla con una GPU, las que eligió.
Ayuda y fuentes
Si no funciona
- Si Docker no puede arrancar con las GPU, el toolkit no está configurado o los índices no existen en esta máquina.
- Si los nombres no coinciden con lo esperado, los índices no son los que cree. Identifique las GPU por UUID, que no depende del orden.
- NVIDIA Container Toolkit: sample workload(se abre en una pestaña nueva)
- NVIDIA Container Toolkit: Specialized configurations with Docker(se abre en una pestaña nueva)
De dónde salen los valores
--gpus '"device=0"'Por defecto Las primeras GPU, contadas desde 0.
Obtener el servidor
- Paso 8
Descargar la imagen
Descargue vllm/vllm-openai:v0.32.0 antes del primer arranque, para que el arranque solo tenga que cargar el modelo.
docker pull vllm/vllm-openai:v0.32.0Resultado esperado
- La descarga se completa y la última línea nombra la imagen.
Tenga en cuenta
- La imagen ocupa varios gigabytes.
3Iniciar el servidor
Inícielo con la configuración dimensionada.1 paso
- Paso 9
Iniciar el servidor
Inicie vllm-qwen3-8b con la configuración dimensionada: el modelo Qwen/Qwen3-8B, el paralelismo, el contexto y la memoria asignada. El primer arranque descarga el modelo y tarda unos minutos.
Va después del paso 3
# config YSTVGT docker run -d --name vllm-qwen3-8b \ --runtime nvidia --gpus '"device=0"' \ --ipc=host \ -v "$HOME/.cache/huggingface":/root/.cache/huggingface \ -p 127.0.0.1:8000:8000 \ vllm/vllm-openai:v0.32.0 \ --model Qwen/Qwen3-8B \ --max-model-len 8192 --max-num-seqs 4 \ --gpu-memory-utilization 0.90Resultado esperado
- Un id de contenedor.
Tenga en cuenta
- El primer arranque descarga el modelo y prepara los kernels, lo que tarda minutos. Hasta entonces el servidor no está listo.
Ayuda y fuentes
Si no funciona
- Si se detiene con un mensaje de falta de memoria (out of memory), la configuración necesita más de lo que aloja la GPU. Reduzca el contexto o las secuencias, asigne al motor una parte mayor de la GPU o use más GPU. La calculadora muestra por cuánto.
- Si vLLM indica que el contexto es mayor de lo que cabe en el KV cache, reduzca el contexto o el número de secuencias.
- Si vLLM indica que las cabezas de atención no se pueden dividir por el tamaño de tensor parallel, use un tamaño que las divida.
- Si el puerto está ocupado, elija otro en las opciones.
- Si Docker no puede arrancar con las GPU, el toolkit no está configurado o los índices no existen en esta máquina.
- vLLM: vllm serve arguments(se abre en una pestaña nueva)
- vLLM: engine arguments(se abre en una pestaña nueva)
De dónde salen los valores
-dPor defecto Cómo se eligió ejecutarlo.
--name vllm-qwen3-8bDe la calculadora El repositorio del modelo elegido.
--runtime nvidiaPor defecto Cómo se eligió ejecutarlo.
--gpus '"device=0"'Por defecto Las primeras GPU, contadas desde 0.
--ipc=hostPor defecto Cómo se eligió ejecutarlo.
-v "$HOME/.cache/huggingface":/root/.cache/huggingfacePor defecto Dónde se guardan los pesos descargados.
-p 127.0.0.1:8000:8000Por defecto El puerto en el que responde el endpoint.
--model Qwen/Qwen3-8BDe la calculadora El repositorio del modelo elegido.
--max-model-len 8192De la calculadora La longitud de contexto definida: 8192 tokens.
--max-num-seqs 4Calculado 4 secuencias repartidas entre 1 réplica.
--gpu-memory-utilization 0.90Calculado La parte utilizable definida, 90 %, dividida entre 1 réplica en el dispositivo, redondeada hacia abajo para que las partes nunca sumen más que el dispositivo.
- El repositorio del modelo elegido.
- La longitud de contexto definida: 8192 tokens.
- La parte utilizable definida, 90 %, dividida entre 1 réplica en el dispositivo, redondeada hacia abajo para que las partes nunca sumen más que el dispositivo.
4Comprobar que funciona
Espere a que responda, hágale una pregunta y compare la memoria con la calculadora.6 pasos
Comprobar el endpoint
- Paso 10
Esperar a que esté listo
El servidor responde en /health cuando el modelo está cargado.
timeout 900 bash -c 'until curl -fs http://127.0.0.1:8000/health >/dev/null; do sleep 5; done' && echo readyResultado esperado
- La palabra ready, tras un minuto o más mientras se carga el modelo.
Ayuda y fuentes
Si no funciona
- Si no llega a estar listo, lea las últimas líneas del log: el modelo aún se está cargando o el servidor se detuvo con un error.
- Si se detiene con un mensaje de falta de memoria (out of memory), la configuración necesita más de lo que aloja la GPU. Reduzca el contexto o las secuencias, asigne al motor una parte mayor de la GPU o use más GPU. La calculadora muestra por cuánto.
- Paso 11
Comprobar que se sirve el modelo
Pregunte al servidor qué modelos sirve.
curl -sS http://127.0.0.1:8000/v1/modelsResultado esperado
- Una lista que contiene Qwen/Qwen3-8B.
Ayuda y fuentes
Si no funciona
- Si la respuesta es 401, la clave de este shell no es la que se usó para iniciar el servidor.
- Paso 12
Hacerle una pregunta
Una solicitud a través del endpoint que usarán las aplicaciones.
curl -sS http://127.0.0.1:8000/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{"model": "Qwen/Qwen3-8B", "messages": [{"role": "user", "content": "Say hello in five words."}], "max_tokens": 32}'Resultado esperado
- Una respuesta JSON con un mensaje del modelo.
Ayuda y fuentes
Si no funciona
- Si la respuesta es 401, la clave de este shell no es la que se usó para iniciar el servidor.
- Si no llega a estar listo, lea las últimas líneas del log: el modelo aún se está cargando o el servidor se detuvo con un error.
Supervisar la máquina
- Paso 13
Supervisar las GPU
Vea la memoria en uso y la actividad de la GPU con índice 0 mientras el servidor funciona.
nvidia-smi --query-gpu=index,name,memory.used,memory.total,utilization.gpu --format=csv -i 0Resultado esperado
- Memoria en uso cercana a la asignada al motor.
Ayuda y fuentes
- Paso 14
Supervisar el servidor
Compruebe que vllm-qwen3-8b se está ejecutando y cuál fue su último mensaje.
Va después del paso 12
docker ps --filter name=vllm-qwen3-8b --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}' docker logs --tail 20 vllm-qwen3-8bResultado esperado
- El servidor está en ejecución y sus últimas líneas de log no muestran errores.
Ayuda y fuentes
Comparar con la calculadora
- Paso 15
Comparar con la calculadora
La calculadora esperaba 22,76 GiB en cada GPU, con el 90 % de la GPU asignado al motor. El log del propio servidor indica lo que tomó para los pesos y lo que queda para el KV cache.
Va después del paso 12
docker logs vllm-qwen3-8b 2>&1 | grep -E 'Model loading took|Available KV cache memory|GPU KV cache size'Resultado esperado
- Líneas con la memoria que ocuparon los pesos, la memoria que queda para el KV cache y cuántos tokens admite.
Ayuda y fuentes
- vLLM: parallelism and scaling(se abre en una pestaña nueva)
- vLLM: conserving memory(se abre en una pestaña nueva)
De dónde salen los valores
- La calculadora: 22,76 GiB necesarios de 86,40 GiB utilizables en cada GPU.
5Limpiar
Detenga el servidor y elimine lo que crearon estos pasos.1 paso
- Paso 16
Detenerlo
Puede detener o eliminar cosasDetenga vllm-qwen3-8b y libere las GPU.
Va después del paso 9
docker stop vllm-qwen3-8b && docker rm vllm-qwen3-8bResultado esperado
- Sin salida, y las GPU quedan libres.
Tenga en cuenta
- El endpoint deja de responder.
Ayuda y fuentes
Cálculo
- Dato introducido
- Especificación oficial
- Resultado calculado
- Estimación
- Heurística
- Límite teórico
›Pesos
Tamaño bruto de los pesos
Resultado calculadoTamaño bruto de los pesos = parámetros × bits nominales por parámetro ÷ 8
= Dato introducido: 8190,74 M parámetros × Especificación oficial: 16 bit/param ÷ 8
= 16,38 GB
Pesos en memoria
Resultado calculadoPesos en memoria = parámetros × bits efectivos por parámetro ÷ 8
= Dato introducido: 8190,74 M parámetros × Especificación oficial: 16 bit/param ÷ 8
= 16,38 GB
›KV cache
KV cache por token
Resultado calculadoKV cache por token = 2 × capas con KV cache × cabezas KV × dimensión de cabeza × bits del KV cache por valor ÷ 8
= 2 × Dato introducido: 36 × Dato introducido: 8 × Dato introducido: 128 × Dato introducido: 16 bit ÷ 8
= 147,46 KB/token
KV cache por secuencia
Resultado calculadoKV cache por secuencia = KV cache por token × longitud de contexto
= Resultado calculado: 147,46 KB/token × Dato introducido: 8192 tokens
= 1,21 GB
KV cache
Resultado calculadoKV cache = KV cache por secuencia × secuencias concurrentes
= Resultado calculado: 1,21 GB × Dato introducido: 4
= 4,83 GB
›Memoria por GPU y en total
Memoria requerida por GPU
EstimaciónMemoria requerida por GPU = Pesos en memoria + KV cache + Sobrecarga del runtime
= Resultado calculado: 16,38 GB + Resultado calculado: 4,83 GB + Heurística: 3,22 GB
= 24,43 GB
Modelo con sobrecarga del runtime
EstimaciónModelo con sobrecarga del runtime = Pesos en memoria + Sobrecarga del runtime
= Resultado calculado: 16,38 GB + Heurística: 3,22 GB
= 19,6 GB
›Un paso de decode y sus límites
Pesos leídos por GPU en un paso
Resultado calculadoPesos leídos por GPU en un paso = Pesos en memoria
= Resultado calculado: 16,38 GB
= 16,38 GB
Bytes leídos por GPU en un paso
Resultado calculadoBytes leídos por GPU en un paso = Pesos leídos por GPU en un paso + KV cache
= Resultado calculado: 16,38 GB + Resultado calculado: 4,83 GB
= 21,21 GB
Tiempo de leer los pesos una vez
Límite teóricoTiempo de leer los pesos una vez = Pesos en memoria ÷ Ancho de banda de memoria de la GPU
= Resultado calculado: 16,38 GB ÷ Especificación oficial: 1,6 TB/s
= 10,26 ms
Tiempo mínimo de un paso
Límite teóricoTiempo mínimo de un paso = Bytes leídos por GPU en un paso ÷ Ancho de banda de memoria de la GPU
= Resultado calculado: 21,21 GB ÷ Especificación oficial: 1,6 TB/s
= 13,28 ms
Límite de velocidad de una secuencia
Límite teóricoLímite de velocidad de una secuencia = 1 ÷ Tiempo mínimo de un paso
= 1 ÷ Límite teórico: 13,28 ms
= 75,28 tok/s
Límite de velocidad de todas las secuencias
Límite teóricoLímite de velocidad de todas las secuencias = secuencias concurrentes ÷ Tiempo mínimo de un paso
= Dato introducido: 4 ÷ Límite teórico: 13,28 ms
= 301,13 tok/s
›Puntos de equilibrio
Batch en que el cómputo pasa a limitar
Límite teóricoBatch en que el cómputo pasa a limitar = (Cómputo pico, denso × 1.000.000.000.000 ÷ Ancho de banda de memoria de la GPU) × bits efectivos por parámetro ÷ 8 ÷ 2
= (Estimación: 500 TFLOPS × 1.000.000.000.000 ÷ Especificación oficial: 1,6 TB/s) × Especificación oficial: 16 bit/param ÷ 8 ÷ 2
= 313,09
Supuestos
- Supuesto: El KV cache se guarda en bloques (16 tokens en vLLM), así que la capacidad real queda algo por debajo del número mostrado.
- Heurística: La sobrecarga del runtime es 3,22 GB por GPU para el contexto CUDA, las activaciones y los CUDA graphs. Es una heurística: vLLM midió 2,57 GiB en un modelo de 8B, y varía con el motor y los ajustes. Cambiar
- Supuesto: Solo 90 % de la memoria de la GPU se asigna al modelo. Los motores de inferencia reservan el resto: el valor por defecto de vLLM es 92 % (documentación de la versión 0.32). Cambiar
- Supuesto: Un ajuste se considera holgado cuando al menos 10 % de la memoria utilizable queda libre. Cambiar
- Supuesto: NVIDIA indica la memoria de la GPU en GB, y el hardware tiene esa cantidad en GiB: una H100 de 80 GB tiene 80 GiB, y nvidia-smi muestra 79,6. Los pocos puntos porcentuales que retienen ECC y el driver quedan cubiertos por la parte utilizable.
- Supuesto: La precisión del KV cache se fija aparte de la precisión de los pesos. Cuantizar los pesos no reduce el KV cache ni la sobrecarga. Cambiar
- Supuesto: Se supone que todas las secuencias usan el contexto completo a la vez, el peor caso. El tráfico real suele ser más corto. Cambiar
- Supuesto: Se supone que varias GPU se reparten el modelo con tensor parallelism, como hace vLLM: los pesos y las cabezas KV se dividen, y cada GPU paga la sobrecarga del runtime.
- Límite teórico: Son límites, no pronósticos. Los motores reales añaden tiempo de kernels, planificación y red: las mediciones publicadas de vLLM resultaron de 30 a 270 % más lentas que la misma fórmula, y las ejecuciones del taller con una sola GPU, de 10 a 15 %.
- Supuesto: Sin speculative decoding. Puede producir varios tokens en un paso y superar un límite por secuencia.
- Supuesto: Se cuenta como leído en cada paso todo peso que no pertenezca a los expertos. Las consultas de embeddings leen solo unas pocas filas de la tabla de entrada, así que el mínimo real es unos pocos puntos porcentuales menor en modelos pequeños.
- Límite teórico: El batch en el que el cómputo de un paso iguala su tiempo de memoria, calculado con el pico denso del formato en que se calculan los pesos. La latencia empieza a subir antes. En una mezcla de expertos, cada experto necesita esta cantidad de tokens propios.
13,28 ms75,28 tok/sLímite de velocidad de una secuencia
Por qué importa
Cada paso de decode lee una vez los pesos que necesita y la caché de cada secuencia en ejecución, así que un paso no puede ser más corto que esos bytes divididos por el ancho de banda de memoria. Eso convierte al ancho de banda en el número que fija la rapidez con que responde un modelo, mucho antes que el cómputo de la GPU. Estos límites son pura física. Los motores reales son más lentos, y una medición indica cuánto.
Cómo leer el resultado
El paso más corto son los bytes que lee una GPU en un paso entre su ancho de banda, y de ahí salen los límites de velocidad. Son límites, nunca pronósticos: las mediciones publicadas de vLLM resultaron de 30 a 270 % más lentas. Introduzca su propio tiempo medido por token para ver cuánto se acerca. El batch de equilibrio es el punto en que el cómputo empieza a importar. En una mezcla de expertos los bytes crecen con el batch, porque se accede a más expertos.
IA local y soberanía
Ejecutar un modelo en hardware propio es un factor más en una decisión de soberanía. Por sí solo no hace que un despliegue sea soberano, ni que cumpla el RGPD o el Reglamento de IA de la UE.
Estas herramientas proceden del taller IA sin la nube.