La VRAM (Video RAM) son chips de memoria fisicamente separados soldados en la placa de la GPU, distintos de la RAM principal de tu sistema. La razón por la que existe por separado es el ancho de banda — la conexion entre una GPU y su VRAM es masivamente más amplia que la conexion entre un CPU y la RAM del sistema. Una NVIDIA H100 alcanza más de 3.3 TB/s de ancho de banda de memoria hacia su stack HBM3 (High Bandwidth Memory), mientras que un sistema DDR5 típico podría manejar 50-80 GB/s. Para inferencia de IA, donde el cuello de botella es leer miles de millones de parámetros de peso desde la memoria para cada token generado, esta diferencia de ancho de banda es la razón por la que ejecutar un modelo en una GPU es dramaticamente más rápido que ejecutarlo en un CPU — incluso cuando el CPU tiene mucha RAM del sistema.
Calcular los requisitos de VRAM para un modelo es aritmetica directa con algunos detalles traicioneros. La formula base: multiplica el número de parámetros por los bytes por parámetro para tu formato de precisión. Un modelo de 7B en FP16 (2 bytes por parámetro) necesita 14GB solo para los pesos. Pero los pesos no son todo lo que vive en la VRAM. Durante la inferencia, también necesitas espacio para el KV cache — los pares key-value almacenados de los computos de atención que crecen con la longitud del contexto. Para un modelo de 7B corriendo con un contexto de 4,096 tokens, el KV cache podría agregar 1-2GB. Extiende eso a 128K tokens y el KV cache solo puede consumir 20-40GB. Por eso los modelos de contexto largo necesitan significativamente más VRAM de lo que su conteo de parámetros sugiere, y por eso existen límites de ventana de contexto incluso en hardware potente.
El entrenamiento consume mucha más VRAM que la inferencia. Además de almacenar los pesos del modelo, el entrenamiento requiere almacenar estados del optimizador (Adam mantiene dos copias extra de cada parámetro — eso es 3 veces el tamaño de los pesos de entrada), gradientes (otro 1x) y activaciones (los valores intermedios necesarios para backpropagation, que escalan con el tamaño de batch y la longitud de secuencia). Una regla general: entrenar en BF16 con el optimizador Adam requiere aproximadamente 18-20 bytes por parámetro. Un modelo de 7B necesita ~140GB solo para el estado de entrenamiento — más de lo que cualquier GPU de consumo individual tiene. Por eso existen técnicas como FSDP (Fully Sharded Data Parallelism), gradient checkpointing y entrenamiento de precisión mixta: distribuyen o reducen el uso de memoria para que puedas entrenar en el hardware que realmente tienes, a costa de velocidad o sobrecarga de computo.
El panorama de VRAM de consumo define lo que es prácticamente alcanzable para IA local. La RTX 4090 de NVIDIA con 24GB es el tope — suficiente para correr comodamente modelos cuantizados de hasta unos 14B parámetros, o exprimir un modelo de 30B cuantizado en Q4 con ajuste cuidadoso. La RTX 4070 Ti Super con 16GB maneja bien modelos de 7B-13B. La RTX 4060 con 8GB es el mínimo para inferencia de LLM local utilizable — estas limitado a modelos pequenos o agresivamente cuantizados. La RX 7900 XTX de AMD ofrece 24GB a un precio menor pero con soporte de software más debil para cargas de trabajo de IA. En el lado del datacenter, la NVIDIA H100 viene en 80GB, la H200 en 141GB y la MI300X de AMD ofrece 192GB de HBM3. Para modelos demasiado grandes para una sola GPU, el paralelismo tensorial divide el modelo entre múltiples GPUs — pero esto requiere interconexiones rapidas (NVLink, InfiniBand) entre GPUs, o la sobrecarga de comunicación mata tu rendimiento.
Un detalle que los practicantes aprenden por las malas: tu VRAM total no esta completamente disponible. El driver de GPU, los procesos de pantalla (si también maneja un monitor) y la sobrecarga del contexto CUDA cada uno consumen algo de memoria. En una tarjeta de 24GB, podrias tener realmente 22-23GB utilizables. Y la fragmentación de VRAM puede impedirte asignar un solo bloque grande contiguo incluso cuando la memoria libre total parece suficiente. Herramientas como nvidia-smi te muestran el uso actual de VRAM, pero el número que importa es el bloque contiguo libre más grande, no solo la cantidad total libre. Por eso los motores de inferencia a veces fallan al cargar un modelo que teóricamente debería caber — la memoria esta ahi pero dispersa.