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 razon por la que existe por separado es el ancho de banda — la conexion entre una GPU y su VRAM es masivamente mas amplia que la conexion entre un CPU y la RAM del sistema. Una NVIDIA H100 alcanza mas de 3.3 TB/s de ancho de banda de memoria hacia su stack HBM3 (High Bandwidth Memory), mientras que un sistema DDR5 tipico podria manejar 50-80 GB/s. Para inferencia de IA, donde el cuello de botella es leer miles de millones de parametros de peso desde la memoria para cada token generado, esta diferencia de ancho de banda es la razon por la que ejecutar un modelo en una GPU es dramaticamente mas rapido 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 numero de parametros por los bytes por parametro para tu formato de precision. Un modelo de 7B en FP16 (2 bytes por parametro) necesita 14GB solo para los pesos. Pero los pesos no son todo lo que vive en la VRAM. Durante la inferencia, tambien necesitas espacio para el KV cache — los pares key-value almacenados de los computos de atencion que crecen con la longitud del contexto. Para un modelo de 7B corriendo con un contexto de 4,096 tokens, el KV cache podria 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 mas VRAM de lo que su conteo de parametros sugiere, y por eso existen limites de ventana de contexto incluso en hardware potente.
El entrenamiento consume mucha mas VRAM que la inferencia. Ademas de almacenar los pesos del modelo, el entrenamiento requiere almacenar estados del optimizador (Adam mantiene dos copias extra de cada parametro — eso es 3 veces el tamano de los pesos de entrada), gradientes (otro 1x) y activaciones (los valores intermedios necesarios para backpropagation, que escalan con el tamano de batch y la longitud de secuencia). Una regla general: entrenar en BF16 con el optimizador Adam requiere aproximadamente 18-20 bytes por parametro. Un modelo de 7B necesita ~140GB solo para el estado de entrenamiento — mas de lo que cualquier GPU de consumo individual tiene. Por eso existen tecnicas como FSDP (Fully Sharded Data Parallelism), gradient checkpointing y entrenamiento de precision 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 practicamente alcanzable para IA local. La RTX 4090 de NVIDIA con 24GB es el tope — suficiente para correr comodamente modelos cuantizados de hasta unos 14B parametros, 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 minimo 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 mas 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 multiples GPUs — pero esto requiere interconexiones rapidas (NVLink, InfiniBand) entre GPUs, o la sobrecarga de comunicacion 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 tambien 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 fragmentacion 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 numero que importa es el bloque contiguo libre mas grande, no solo la cantidad total libre. Por eso los motores de inferencia a veces fallan al cargar un modelo que teoricamente deberia caber — la memoria esta ahi pero dispersa.