Key Takeaways
- Multi-GPU: divide um modelo grande em 2+ GPUs. Exemplo: modelo 70B dividido igualmente em 2× RTX 4090 = 48 GB de VRAM total.
- Penalidade de velocidade: ~5–10% mais lento que uma única GPU (overhead de comunicação entre GPUs).
- Ideal para: modelos 70B, serviços de alta concorrência (50+ usuários simultâneos).
- Automático: as ferramentas modernas (vLLM, Ollama, llama.cpp) detectam múltiplas GPUs automaticamente.
- Desde abril de 2026, isso é padrão para implantações em produção.
Como funciona o Layer Splitting e o Paralelismo Tensorial?
Um modelo Transformer de 70B tem 80 camadas. Com o layer splitting, o Ollama pode colocar:
- GPU 1: Camadas 1–40
- GPU 2: Camadas 41–80
Quando um token é gerado, ele flui pela GPU 1, depois pela GPU 2, e volta para o próximo token. O overhead de comunicação é mínimo.
•💡: Dica: as camadas são leves — o que importa é a velocidade de comunicação entre GPUs. Camadas 1–40 na GPU1 e camadas 41–80 na GPU2 implicam uma transferência de GPU por token. Por isso o NVLink é importante.
Configuração Multi-GPU com vLLM
O vLLM suporta paralelismo tensorial com um único comando. Use o flag `--tensor-parallel-size` para especificar o número de GPUs:
# Executar modelo 70B em 2 GPUs
vllm serve meta-llama/Llama-3.1-70B \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.95 \
--port 8000
# API disponível em http://localhost:8000/v1
# Mesma API, gerenciamento multi-GPU automático•💡: Você não precisa de configuração especial para multi-GPU no vLLM. Apenas adicione --tensor-parallel-size N e o vLLM distribui as camadas do modelo automaticamente. Funciona com Llama, Mistral, Qwen e todos os modelos suportados pelo vLLM.
Configuração Multi-GPU com Ollama
O Ollama detecta automaticamente várias GPUs e distribui camadas:
# Configuração automática: o Ollama distribui as camadas
OLLAMA_NUM_GPU=2 ollama serve
# Verificar distribuição
nvidia-smi # Ambas as GPUs devem mostrar uso de VRAM
# Testar com modelo 70B
ollama run llama3.1:70bDesempenho: 2 GPUs vs 1 GPU
- Penalidade de velocidade dual-GPU: ~5–10% mais lento que uma GPU única hipotética de 48 GB.
- NVLink vs PCIe: NVLink oferece ~900 GB/s de largura de banda vs ~64 GB/s do PCIe 4.0. Na prática, PCIe é suficiente — a penalidade é de apenas 5–10% adicional vs NVLink para a maioria dos modelos.
- Consumo de energia: 2× RTX 4090 = ~700W sob carga LLM completa. Certifique-se de ter PSU adequada (1000W+).
| Configuração | Modelo | Velocidade | VRAM total |
|---|---|---|---|
| 1× RTX 4090 (24 GB) | Llama 3.3 13B Q4 | ~65 tok/s | 24 GB |
| 1× RTX 4090 (24 GB) | Llama 3.3 70B Q4 | OOM | 24 GB (insuficiente) |
| 2× RTX 4090 (48 GB) | Llama 3.3 70B Q4 | ~100 tok/s | 48 GB |
| 2× RTX 4090 (48 GB) | Llama 3.3 70B Q8 | ~60 tok/s | 48 GB |
| 4× RTX 4090 (96 GB) | Llama 3.3 70B FP16 | ~80 tok/s | 96 GB |
Quando usar Multi-GPU?
- Use multi-GPU quando: o modelo não cabe em uma única GPU (ex: 70B Q4 requer ~40 GB VRAM), ou quando você precisa de alta concorrência (50+ usuários simultâneos — vLLM distribui a carga).
- NÃO use multi-GPU quando: você precisa de máxima velocidade para um único usuário (uma GPU mais rápida é melhor), ou quando o custo adicional não se justifica (considere Mac mini M5 Max 128 GB como alternativa).
- Alternativa ao multi-GPU: Mac mini M5 Max 128 GB ($1.999) executa 70B Q5 a 15–20 tok/s — mais lento que dual RTX 4090 mas silencioso, mais econômico e sem gestão de drivers.
Erros comuns em configurações multi-GPU
- Misturar GPUs de gerações diferentes (ex: RTX 3090 + RTX 4090). A velocidade de geração é limitada pela GPU mais lenta. Use sempre GPUs idênticas.
- Usar slots PCIe de largura de banda baixa. PCIe x4 em vez de x16 corta a largura de banda pela metade. Verifique as especificações da placa-mãe.
- Ignorar o consumo de energia. 2× RTX 4090 = ~700W sob carga. PSU insuficiente causará instabilidade.
- Esperar 2× velocidade de 2× GPUs. O overhead de comunicação limita o ganho a ~1,8–1,9×, não 2×.
- Não configurar NUMA. Em servidores com múltiplos sockets CPU, configurar NUMA awareness melhora o desempenho em 10–20%.
Perguntas frequentes
Posso misturar modelos de GPU diferentes para multi-GPU?
Tecnicamente sim, mas não recomendado. Misturar gerações (ex: RTX 3090 + RTX 4090) faz com que a inferência seja limitada pela GPU mais lenta. Use GPUs idênticas para desempenho ideal.
O NVLink é necessário para multi-GPU em LLMs?
Não. PCIe 4.0 x16 (64 GB/s) é suficiente para a maioria das cargas de trabalho de LLM com penalidade de apenas 5–10% vs NVLink. NVLink melhora o desempenho em modelos muito grandes (405B+) onde a transferência de dados entre GPUs é mais frequente.
Quantas GPUs o Ollama suporta?
O Ollama detecta e usa todas as GPUs NVIDIA disponíveis automaticamente. Testado com até 4× RTX 4090. Para mais de 4 GPUs, use vLLM que tem melhor suporte a paralelismo tensorial em escala.
É melhor 2× RTX 4090 ou 1× RTX 5090 para 70B?
Para 70B: 2× RTX 4090 (48 GB VRAM, ~100 tok/s) vs RTX 5090 (32 GB VRAM, ~80 tok/s para Q4). 2× RTX 4090 vence em VRAM e velocidade para 70B. RTX 5090 vence para modelos 13B–34B pela velocidade bruta de GPU única.