Servidor de IA recondicionado com 64 GB de VRAM

Tux num chassi com quatro GPUs de datacenter, olho da NVIDIA e seta da AMD

VRAM dita o modelo. Qwen denso 27B–32B, Llama 70B quantizado, Mixtral 8×7B — isso pede 32 a 64 GB, não os 24 GB de uma 4090. O engenheiro Donato Capitella, com a Bargain Hardware, montou um Supermicro recondicionado com quatro GPUs de datacenter (64 GB no total) por cerca de £2.000 e mediu V100, P100 e MI25 no mesmo chassi. Este texto segue o vídeo Refurbished 64GB VRAM AI Server for Local AI.

Quem já roda Ollama no desktop bate no teto da placa de consumo. Aqui a aposta é outra: chassi de servidor, placa passiva, llama.cpp compilado para a arquitetura certa. O porquê dos Tensor Cores da V100 ganharem da P100 está no post como funcionam as placas de vídeo e no GPU vs TPU.

O chassi: Supermicro de 12ª geração

A base do vídeo é um servidor empresarial Supermicro (torre/rack 4U–5U, família CSE-747) pensado para HPC, não para ficar embaixo da 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 datacenter são passivas: não têm ventoinha na placa. Quem empurra o ar são as turbinas do chassi, a milhares de RPM, através das aletas de cobre. Desktop gamer com 4× V100 cozinha as placas — e o PSU doméstico não aguenta o pico.

V100 vs P100 vs MI25

Três jogos de quatro placas de 16 GB (64 GB no total):

Tesla V100 16 GB Tesla P100 16 GB Instinct MI25 16 GB
Arquitetura Volta 12 nm (sm_70) Pascal 16 nm (sm_60) Vega 10 14 nm (gfx900)
Memória 16 GB HBM2, 900 GB/s 16 GB HBM2, 720–900 GB/s 16 GB HBM2, 484 GB/s
Tensor Cores sim (1ª geração, 640) não não
Precisões FP16/32/64, INT8 FP16/32/64 FP16/32
BF16 / FP8 não nativo não nativo não nativo
Stack CUDA / llama.cpp CUDA / llama.cpp ROCm / Vulkan / llama.cpp

O divisor é o Tensor Core. LLM é MatMul; a V100 faz a matriz em lote. P100 e MI25 fazem o mesmo caminho no CUDA core / SIMD da Vega — mais lento, mais barato. Nenhuma das três fala BF16 nativo: o runtime converte para FP16.

Detalhe de 2026 que o vídeo já antecipa na prática: o CUDA 13 tirou o sm_70. A V100 é a última arquitetura com suporte de primeira classe no CUDA 12.x. Os containers do Donato pinam CUDA 12.6.3 e compilam llama.cpp com -DCMAKE_CUDA_ARCHITECTURES=70. Toolkit 13 no host = binário que não gera código para a placa.

Software: llama.cpp, não vLLM

Donato publica toolboxes (Toolbx/Podman) com llama.cpp já 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

Na hora de servir, llama.cpp ganha: GGUF maduro (Q4_K_M, Q4_K_XL, Q8_0), split automático das camadas nas 4 GPUs (-ngl 99), overhead pequeno. vLLM é o padrão de produção em Hopper/Blackwell; em Volta/Pascal recai para SDPA do PyTorch, AWQ quase não cola, e o load pelo PCIe 3.0 dói.

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

Quem já usa o fluxo GGUF sem o daemon do Ollama tem o llama-model no mesmo espírito: um binário, um servidor, sem camada a mais. O curso de Docker cobre o Podman/Toolbx se o host ainda não tem.

Números: Qwen 27B Q4

Modelo denso, quantização 4 bits, o recorte que o vídeo usa como assistente de código. Números do próprio 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 é conversa interativa. 20 tok/s da P100 serve agente em background. MI25 carrega o modelo pelo menor preço de entrada — banda de 484 GB/s e zero acelerador de matriz pesam. MoE grande (Qwen 122B-A10B Q3 no README das toolboxes) cabe nos 64 GB; a vazão cai, a VRAM é o que importa.

O que dói no dia a dia

  • Ruído 60–75 dB. Quatro passivas de 250–300 W cada. Não vai para o quarto nem para debaixo da mesa. Rack, porão, garagem, sala de servidor.
  • PCIe 3.0. ~16 GB/s por slot x16. Load de um GGUF de 30–50 GB: 1 a 3 minutos. NVLink de V100 existe, mas só em chassi/SXM específico — a torre típica de Bargain Hardware é PCIe solto.
  • BF16 vira FP16. Modelo moderno pré-treinado em bfloat16 perde um pouco de faixa de expoente. Quantização bem calibrada (Unsloth Q4_K_XL etc.) reduz a dor.
  • Energia. 4× GPU + 2× Xeon 150 W + turbinas: 800–1.200 W contínuos. Circuito e PSU redundante não são opcionais.
  • CUDA 13. Não “atualize o toolkit e pronto”. Fique no 12.6 das toolboxes, ou o binário ignora a V100.

Vale a pena em 2026?

Se a meta é 64 GB de VRAM local para 27B–32B denso ou MoE, e o orçamento é £2.000–3.000, 4× V100 ainda é o melhor retorno do lote: Tensor Core de verdade, llama.cpp estável, máquina pronta com fonte industrial. P100 é o meio-termo. MI25 é a porta de entrada AMD, ciente da banda.

Não é silencioso, não é PCIe 5.0, não é BF16 nativo. É soberania de dado: o modelo não sai do rack. Uma 4090/5090 nova continua ganhando em tok/s por watt e em software (vLLM, FP8) — e continua sem os 64 GB.

Referências

Quatro V100 num chassi barulhento não viram uma H100. Viram 64 GB de VRAM que uma placa de consumo ainda não vende — e um llama.cpp que, compilado para sm_70, conversa em 30 tokens por segundo sem mandar o prompt para a nuvem.