Dual GPU para IA Local: RTX 3060 + RTX 2060 Super
Como configurar e aproveitar ao máximo suas duas GPUs para rodar modelos de linguagem localmente
Preparei isso pra você, @nicetomeetBTC!
Espero que esse conteúdo te ajude, nicetomeetBTC! Se tiver dúvidas, me chama no X.
Ver tweet originalOuça a narração completa
Fala, @nicetomeetBTC! Boa pergunta — dual GPU é uma configuração subestimada pra IA local. Com 12GB + 8GB você tem 20GB de VRAM disponível para dividir os modelos, o que abre bastante coisa. Deixa eu te mostrar o setup completo.
⚡ Setup: RTX 3060 12GB (Ampere, compute 8.6) + RTX 2060 Super 8GB (Turing, compute 7.5) = 20GB VRAM total. Com o particionamento certo, você consegue rodar modelos de 25 a 32 bilhões de parâmetros com quantização Q4.
🧠 Como o Dual GPU funciona na prática
Diferente de CPU+RAM onde tudo vira memória unificada, com dual GPU você divide as camadas do modelo entre as duas placas. O llama.cpp e o Ollama suportam isso nativamente via CUDA.
A ideia é simples: o modelo é cortado em camadas, metade vai pra RTX 3060 e o resto pra RTX 2060 Super. O tensor split define a proporção — como a 3060 tem mais VRAM (12GB vs 8GB), ela carrega mais camadas.
Importante: as duas GPUs têm arquiteturas diferentes (Ampere vs Turing), mas isso não é problema — o CUDA 11+ lida bem com isso. O gargalo é a largura de banda PCIe entre elas na hora da comunicação, mas é manejável.
🛠️ Opção 1: Ollama (recomendado para começar)
O Ollama detecta automaticamente múltiplas GPUs NVIDIA e distribui o modelo entre elas. É a opção mais simples.
Instalação e uso:
`
curl -fsSL https://ollama.com/install.sh | sh
ollama run qwen2.5:32b-instruct-q4_K_M
`
O Ollama vai usar as duas GPUs por padrão. Para confirmar que está usando ambas:
`
nvtop # ou nvidia-smi
`
Se quiser forçar as duas GPUs explicitamente:
`
CUDA_VISIBLE_DEVICES=0,1 ollama serve
`
O Ollama calcula o tensor split automaticamente baseado na VRAM disponível — 12GB:8GB vira aproximadamente 60%:40% de distribuição de camadas.
⚙️ Opção 2: llama.cpp (mais controle e performance)
O llama.cpp te dá controle granular sobre a distribuição. Para dual GPU com 12GB + 8GB:
`bash
./llama-cli \
-m modelo.gguf \
--n-gpu-layers 99 \
--tensor-split 12,8 \
-c 8192 \
--threads 8
`
O --tensor-split 12,8 distribui as camadas proporcional à VRAM: 60% na GPU 0 (3060) e 40% na GPU 1 (2060 Super).
O --n-gpu-layers 99 manda TODAS as camadas pra GPU (se couber). Com 20GB total e um modelo de 18-20GB em Q4, tudo fica na VRAM sem tocar a RAM do sistema — isso é chave pra performance.
Para LM Studio (GUI): vai em Settings → Performance → Multi-GPU → Enable, e ele configura automaticamente.
📋 Modelos que cabem nos seus 20GB de VRAM
- Qwen2.5 32B Q4_K_M (~18GB) — melhor custo-benefício, responde muito bem em PT-BR
- Llama 3.3 70B Q2_K (~25GB) — NÃO cabe (precisa reduzir para Q2 que degrada qualidade)
- Qwen 3.5 35B-A3B Q4 (MoE, ~20GB) — exatamente no limite, conforme contexto do tweet pai!
- Mistral Small 22B Q4_K_M (~13GB) — cabe com folga, muito rápido
- DeepSeek-R1 32B Q4_K_M (~18GB) — ótimo para raciocínio complexo
- Llama 3.1 8B Q8_0 (~8GB) — só na 3060, mas voa na velocidade
- Phi-4 14B Q8_0 (~15GB) — excelente para coding e análise
🎯 Recomendação final: qual modelo usar com seu setup?
Considerando o tweet que você respondeu (sobre MoE vs denso na L4 24GB), seu setup tem uma dinâmica interessante:
Para qualidade máxima: Qwen2.5 32B Q4_K_M no Ollama. 18GB de VRAM usado, 2GB de folga, ~20-30 tokens/s de decode no par 3060+2060S via PCIe.
Para MoE (mais rápido): Qwen 35B-A3B Q4 se couber nos seus 20GB — o decode é ~7x mais rápido que o denso equivalente porque só ativa 3.5B params por token. Mas está no limite da VRAM.
Para velocidade bruta: Mistral 22B Q4 ou qualquer modelo que caiba inteiramente na 3060 12GB sozinha — evita a latência PCIe entre as duas placas.
Dica pro: rode o modelo primário (o que você mais usa) na 3060 12GB sozinha. Use o combo dual GPU só para modelos maiores que precisam dos 20GB. Isso evita overhead de comunicação entre GPUs.
🔑 Configuração ideal para começar agora: instale o Ollama, rode `CUDA_VISIBLE_DEVICES=0,1 ollama serve` em um terminal, e em outro terminal: `ollama run qwen2.5:32b-instruct-q4_K_M`. Ollama cuida do tensor split automaticamente.
🚨 Problemas comuns e soluções
Só usa uma GPU: CUDA_VISIBLE_DEVICES não está configurado ou o Ollama não detectou a segunda placa. Reinicie o serviço com CUDA_VISIBLE_DEVICES=0,1 ollama serve.
Out of memory mesmo com 20GB: O modelo tem alguma camada maior que 12GB. Use quantização menor (Q3_K_M em vez de Q4). Ou certifique que é o modelo correto (alguns modelos têm arquivos em FP16 muito pesados).
Performance ruim no dual GPU: A comunicação PCIe entre as placas pode ser o gargalo. Verifique que ambas estão em slots PCIe com velocidade adequada (x8 mínimo, x16 ideal).
Compute capability mismatch: 3060 é compute 8.6, 2060S é compute 7.5. O llama.cpp e Ollama compilam para o mínimo comum (7.5). Não há perda de funcionalidade, apenas não usa todas as features Ampere da 3060.
💡 Bônus: LM Studio como alternativa GUI
Se você prefere interface gráfica, o LM Studio 0.3+ tem suporte nativo a multi-GPU. Vai em Settings → My Models → Performance → Multi-GPU e habilita. Funciona com as mesmas GPUs, usa llama.cpp por baixo, e você consegue baixar modelos diretamente pela interface de um repositório integrado.
Bom pra testar vários modelos sem mexer em terminal.
Ecossistema Caio Vicentino
Quer ir mais fundo?
← Deslize para ver mais →
Ecossistema
Quer ir mais fundo?
Conheça os produtos do Caio Vicentino



