Saltar al contenido
Fantástico Mundo de Jon
RSS

El MacBook Pro M4 tiene más RAM que la 5090 y sigo con CUDA

48 GB unificados en el M4 caben más que los 32 GB de la 5090. Aun así, vLLM, llama.cpp y diffusion siguen en NVIDIA, porque decode es banda y la stack que ya opero es CUDA.

¿Con prisa? Pide el TL;DR a Claude — lee la página y la resume.

es Traducción automática por qwen3:32b, revisada por el autor. Leer el original en portugués

Apple acaba de lanzar el Mac Studio con M5 Max (hasta 128 GB) y M5 Ultra (hasta 512 GB, 1,2 TB/s de ancho de banda). El argumento es directo: memoria unificada suficiente para 70B en casa, silencio, poca toma.

Tengo un MacBook Pro M4 con 48 GB. Es más memoria que la RTX 5090 de 32 GB que está en el PC, y más que una 4090 de 24 GB. Uso el Mac todos los días para trabajar. Para LLM e imagen, lo que está en el aire sigue siendo CUDA.

Sucede que caber y ser rápido son dos preguntas. El folleto de Apple responde a la primera. La rutina de la bancada responde a la segunda.

Lo que tengo en la mesa

De un lado, el portátil: M4, 48 GB de memoria unificada, Metal, MLX, llama.cpp en backend Apple. Del otro, el PC: Ryzen 9 9950X, RTX 5090 32 GB (controlador 580), Ollama 0.32 hablando con llama.cpp en CUDA, vLLM cuando la carga deja de ser un chat, ComfyUI con FLUX anclado en la 5090 por UUID.

Los 48 GB unificados son un pozo solo. CPU y GPU ven la misma RAM. No hay la pared de 32 GB de VRAM. Un 27B o 32B con contexto que en la 5090 ya aprieta entra en el Mac sin drama. Un 70B en Q4 hasta aprieta, pero aprieta por ancho de banda, no por “no cabe”.

Esto es real. Y no es lo que uso para generar token.

Caber y ser rápido son ejes diferentes

Ya escribí esto en el par 5060 Ti / 5070 Ti: capacidad responde “cabe?”; ancho de banda responde “a cuántos tokens por segundo?”. La generación en batch 1 lee los pesos casi enteros a cada token. El techo teórico es ancho de banda dividido por el tamaño de los pesos. No es medición. Es el techo físico.

Máquina Memoria Ancho de banda Qué decide esto
MacBook Pro M4 48 GB (el que tengo) 48 GB unificada ~273 GB/s (M4 Pro) o ~546 GB/s (M4 Max) Cabe más. Sale más lento.
M5 Max 128 GB 128 GB unificada ~614 GB/s 70B Q4 holgado. Ancho de banda aún ~3× por debajo de la 5090.
M5 Ultra 96 GB 96 GB unificada 1,2 TB/s Primer Apple cerca de la 5090 en ancho de banda. Menos RAM que el Max 128.
RTX 4090 24 GB VRAM 1.008 GB/s 70B Q4 no cabe. Rápida en lo que cabe.
RTX 5090 (en el aire aquí) 32 GB VRAM 1.792 GB/s Techo de tok/s en lo que entra. CUDA.
Spec publicada (Apple, NVIDIA). El ancho de banda del M4 48 GB depende del chip: Pro 273 GB/s, Max 546 GB/s. No es medición de tok/s. Decode en batch 1 sigue al ancho de banda, no a la capacidad.

En el M4 de 48 GB el ancho de banda unificado es una fracción de la 5090 incluso en el escenario generoso (Max). En el Pro, la fracción es aún menor. 48 contra 32 GB gana el “cabe”. 273 o 546 contra 1.792 GB/s pierde el “sale a tiempo”.

No voy a poner tok/s del Mac en este post. No medí en esta máquina con el mismo prompt, el mismo quant y el mismo contexto de la 5090. Sin eso, número de decode en el M4 sería un chute con cara de prueba.

llama.cpp corre en los dos lados

Ollama no Mac funciona. llama.cpp en Metal también. Cuando estoy lejos del PC, es esto lo que abro.

En el PC, el mismo llama.cpp habla CUDA. La generación sigue limitada por ancho de banda. Cambiar la 5090 por el M4 en este camino no me da calidad de respuesta. Me da capacidad extra con una fracción del ancho de banda. En chat lo sientes. En agente que llama herramienta en loop, sientes más.

La regla que terminé usando:

  1. Cabe en VRAM y necesita ser rápido: 5090, CUDA, llama.cpp/Ollama.
  2. No cabe y acepto leer más lento: Mac, o segunda GPU, o API.
  3. Avión, café, llamada: M4, sin drama.

El Mac gana el 2 y el 3. El 1 es el camino que paga el almuerzo.

vLLM ni siquiera entra en el Mac

vLLM es el servidor que quiero cuando la llamada deja de ser un chat y se vuelve varias solicitudes al mismo tiempo: PagedAttention, batch, prefix cache. Es CUDA, con un pie en ROCm. No es Metal. No es MLX.

Entonces “M5 Ultra versus 5090 en vLLM” ni siquiera comienza. El Mac no entra en juego. Si el producto sirve LLM con concurrencia real, la elección de hardware ya fue hecha, o estás pagando API.

MLX en Apple Silicon es competente para un usuario. No es el mismo software. “OpenAI-compatible” en el papel no borra scheduler, prefix cache y tensor parallel. No voy a reescribir la stack en MLX porque Apple subió el ancho de banda.

La imagen tampoco es memoria

Generación de imagen aquí es FLUX en la 5090, ComfyUI aislado por UUID de la GPU, en el mismo host de Ollama. Tuve thumbnail saliendo por nube con la 5090 ociosa. Fue archivo en el lugar equivocado, no falta de Mac.

ComfyUI, ControlNet, los pesos que la comunidad de hecho usa: CUDA. MPS en el Mac existe. Existe no es el pipeline que ya operé y mido. 48 GB unificados caben un FLUX que 24 GB de 4090 también caben. La 5090 de 32 GB cabe con más margen para LoRA. Ninguno de estos tres casos me hace preferir Metal. Lo que me hace preferir NVIDIA es el minuto entre el prompt y la imagen en el aire, y el hecho de que el resto de la casa ya esté en este trazo.

Lo que cambian los M5 en la cuenta

M5 Max 128 GB: el primer portátil en que 70B Q4 con contexto largo se siente cómodo, no “entra si rezas”. El salto generacional que Apple vende es prefill (pegar un repositorio entero), por los Neural Accelerators en cada núcleo de la GPU. Decode sube en casa de 20 a 30% sobre el M4 Max, siguiendo el ancho de banda de ~546 a ~614 GB/s. Sigue lejos de la 5090 en el modelo que ya cabe en ella.

M5 Ultra 96 GB: 1,2 TB/s. Ahí la física del decode llega cerca. 96 GB, ironía, es menos memoria que el Max 128 GB. Pagas Ultra por ancho de banda, no por tanque. 256 y 512 GB son otra gama de precio.

Nada de esto me da vLLM. Nada de esto me da el ComfyUI que ya está en el aire. Nada de esto cambia el hecho de que, en el modelo que ya cabe en la 5090, CUDA gana feo.

Lo que este post compara

Portátil
MacBook Pro M4, 48 GB unificada
PC
Ryzen 9 9950X + RTX 5090 32 GB
LLM en el PC
Ollama 0.32 / llama.cpp CUDA, vLLM
Imagen
FLUX + ComfyUI en la 5090
Ancho de banda
spec Apple y NVIDIA, no tok/s del M4
Macs nuevos
M5 Max y M5 Ultra, anuncio del 25/08/2026

Dónde gana el Mac de verdad

Trabajo. Pantalla, batería, silencio, IDE, llamada. 48 GB sobra para esto. No es este el debate.

Modelo que no entra en los 32 GB. 70B en Q4, contexto absurdo sobre un 27B, dos modelos al mismo tiempo. Ahí la memoria unificada deja de ser folleto y se vuelve techo que la 5090 no tiene.

Y el regazo. No voy a cargar la 5090 en el avión.

El error es tratar al Mac como GPU con RAM enorme. No es así. Es un SoC con un pozo solo de memoria, ancho de banda menor (excepto el Ultra) y otro ecosistema. Esto es excelente para caber. Es malo para generar.

Me gusta el M4. Voy a seguir andando con él. Los M5 son el mejor argumento que Apple tuvo para IA local. Sigo en la 5090, y en una 4090 en el mismo trazo CUDA, en lo que genera token, batch e imagen.

Memoria unificada resuelve el “no cabe”. CUDA resuelve el “no da tiempo”. En mi flujo, la segunda frase aparece más veces.