Servidor de IA reacondicionado con 64 GB de VRAM

Mascote do LinuxPro instalando GPU no servidor de IA

La VRAM dicta el modelo. Qwen denso de 27B–32B, Llama 70B cuantizado, Mixtral 8×7B: esto pide 32 a 64 GB, no los 24 GB de una 4090. El ingeniero Donato Capitella, junto con Bargain Hardware, montó un Supermicro reacondicionado con cuatro GPUs de centro de datos (64 GB en total) por unas £2.000 y probó V100, P100 y MI25 en el mismo chasis. Este texto acompaña al vídeo Refurbished 64GB VRAM AI Server for Local AI.

Quien ya ejecuta Ollama en el escritorio topa con el techo de la placa de consumo. Aquí la apuesta es otra: chasis de servidor, placa pasiva, llama.cpp compilado para la arquitectura adecuada. El porqué de que los Tensor Cores de la V100 ganen a la P100 está en el post cómo funcionan las tarjetas gráficas y en GPU vs TPU.

El chasis: Supermicro de 12.ª generación

La base del vídeo es un servidor empresarial Supermicro (torre/rack 4U–5U, familia CSE-747) pensado para HPC, no para tenerlo debajo de la mesa:

2× Intel Xeon Gold 6150     36 núcleos / 72 threads
64 GB DDR4 ECC Registered   4× 16 GB @ 2666 MHz
2× SSD SATA 480 GB + NVMe U.2
4× PCIe 3.0 x16             full-height, dual-slot
2× 10GbE na placa-mãe
turbinas frontais           ar forçado nas aletas
fontes redundantes          1600–2000 W

Tesla e Instinct de centro de datos son pasivas: no tienen ventilador en la placa. Quien empuja el aire son las turbinas del chasis, a miles de RPM, a través de las aletas de cobre. Un escritorio gamer con 4× V100 cocina las placas — y la fuente doméstica no aguanta el pico.

V100 vs P100 vs MI25

Tres juegos de cuatro placas de 16 GB (64 GB en total):

Tesla V100 16 GB Tesla P100 16 GB Instinct MI25 16 GB
Arquitectura Vuelta 12 nm (sm_70) Pascal 16 nm (sm_60) Vega 10 14 nm (gfx900)
Memoria 16 GB HBM2, 900 GB/s 16 GB HBM2, 720–900 GB/s 16 GB HBM2, 484 GB/s
Tensor Cores sí (1.ª generación, 640) no no
Precisiones FP16/32/64, INT8 FP16/32/64 FP16/32
BF16 / FP8 no nativo no nativo no nativo
Stack CUDA / llama.cpp CUDA / llama.cpp ROCm / Vulkan / llama.cpp

El divisor es el Tensor Core. LLM es MatMul; la V100 hace la matriz en lote. P100 y MI25 hacen el mismo camino en el CUDA core / SIMD de la Vega — más lento, más barato. Ninguna de las tres habla BF16 nativo: el runtime convierte a FP16.

Detalle de 2026 que el vídeo ya anticipa en la práctica: el CUDA 13 quitó el sm_70. La V100 es la última arquitectura con soporte de primera clase en CUDA 12.x. Los contenedores de Donato pinean CUDA 12.6.3 y compilan llama.cpp con -DCMAKE_CUDA_ARCHITECTURES=70. Toolkit 13 no host = binario que no genera código para la placa.

Software: llama.cpp, no vLLM

Donato publica toolboxes (Toolbx/Podman) con llama.cpp ya compilado para cada die:

# V100: toolbox com llama.cpp CUDA sm_70
toolbox create -c llama-v100-cuda 
  --image docker.io/kyuz0/nvidia-v100-ai-toolboxes:latest
toolbox enter llama-v100-cuda
llama-cli --list-devices   # precisa ver as 4× 16 GB

A la hora de servir, llama.cpp gana: GGUF maduro (Q4_K_M, Q4_K_XL, Q8_0), split automático de las capas en las 4 GPUs (-ngl 99), sobrecarga pequeña. vLLM es el estándar de producción en Hopper/Blackwell; en Volta/Pascal recae al SDPA de PyTorch, AWQ casi no pega, y la carga por PCIe 3.0 duele.

llama-server 
  -m /models/qwen-27b-instruct-q4_k_xl.gguf 
  -ngl 99 
  -c 32768 
  -fa on 
  --host 0.0.0.0 --port 8080

Quien ya usa el flujo GGUF sin el daemon de Ollama tiene el llama-model en el mismo espíritu: un binario, un servidor, sin una capa más. El curso de Docker cubre Podman/Toolbx si el host aún no lo tiene.

Números: Qwen 27B Q4

Modelo denso, cuantización 4 bits, el recorte que el vídeo utiliza como asistente de código. Números del propio Donato (llama.cpp, NGL=99, flash attention):

geração (tokens/s)     Qwen 27B Q4
4× V100 16 GB          ~31–34   (ainda ~28 com contexto 32k)
4× P100 16 GB          ~18–22
4× MI25 16 GB          ~14–17

prompt processing V100
curto:  ~852 tok/s
32k:    ~620 tok/s

31 tok/s es conversación interactiva. 20 tok/s de la P100 sirve como agente en segundo plano. La MI25 carga el modelo al menor precio de entrada — un ancho de banda de 484 GB/s y cero acelerador de matriz pesan. El MoE grande (Qwen 122B-A10B Q3 en el README de las toolboxes) cabe en los 64 GB; el rendimiento cae, lo que importa es la VRAM.

Qué duele en el día a día

  • Ruido 60–75 dB. Cuatro pasivas de 250–300 W cada una. No va al dormitorio ni debajo del escritorio. Rack, sótano, garaje, sala de servidores.
  • PCIe 3.0. ~16 GB/s por slot x16. Carga de un GGUF de 30–50 GB: 1 a 3 minutos. NVLink de V100 existe, pero solo en chasis/SXM específico — la torre típica de Bargain Hardware es PCIe suelto.
  • BF16 se convierte en FP16. El modelo moderno preentrenado en bfloat16 pierde algo de rango de exponente. La cuantización bien calibrada (Unsloth Q4_K_XL, etc.) reduce el problema.
  • Energía. 4× GPU + 2× Xeon 150 W + turbinas: 800–1.200 W continuos. El circuito y la PSU redundante no son opcionales.
  • CUDA 13. No “actualice el toolkit y listo”. Quédese en 12.6 de las toolboxes, o el binario ignora la V100.

¿Merece la pena en 2026?

Si el objetivo es 64 GB de VRAM local para 27B–32B denso o MoE, y el presupuesto es £2.000–3.000, 4× V100 sigue siendo el mejor retorno del lote: Tensor Core de verdad, llama.cpp estable, máquina lista con fuente industrial. La P100 es el término medio. La MI25 es la puerta de entrada AMD, consciente del ancho de banda.

No es silenciosa, no es PCIe 5.0, no es BF16 nativo. Es soberanía del dato: el modelo no sale del rack. Una 4090/5090 nueva sigue ganando en tok/s por vatio y en software (vLLM, FP8) — y sigue sin los 64 GB.

Referencias

Cuatro V100 en un chasis ruidoso no se convierten en una H100. Se convierten en 64 GB de VRAM que una tarjeta de consumo aún no vende — y un llama.cpp que, compilado para sm_70, conversa a 30 tokens por segundo sin enviar el prompt a la nube.