Muita gente disse que a RX 580 estava "morta" para IA em 2026. Ecossistemas focados apenas em CUDA, o ROCm abandonando o suporte à arquitetura Polaris na v5.x e o DirectML sendo deixado de lado antes mesmo de amadurecer. Este é o relato técnico de como provamos que eles estavam errados.
Setup de Hardware
- GPU: AMD RX 580 2048SP — 8GB GDDR5 VRAM (Suporte nativo a Vulkan 1.x)
- CPU: Intel Xeon E5-2690 v3 — 12c/24t @ 3.5GHz boost
- RAM: 32GB DDR4 REG ECC Quad Channel
- Armazenamento: NVMe 1TB (Essencial para remover gargalos)
- OS: Windows 10 Pro + WSL2 Ubuntu 22.04.5
Por que as outras soluções falharam?
| Solução | Status | Motivo |
|---|---|---|
| CUDA | ❌ | Exclusivo para Nvidia |
| ROCm | ❌ | Suporte à Polaris encerrado na v5.x |
| DirectML | ❌ | Erro OpaqueTensorImpl no CLIPTextEncode |
| OpenVINO | ❌ | Módulos ldm/sgm ausentes no Forge |
O erro fatal do DirectML:
NotImplementedError: Cannot access storage of OpaqueTensorImpl
O driver encapsula a memória em tensores opacos que os backends de atenção do ComfyUI não conseguem ler.
A Solução — Arquitetura Dual
CAMINHO 1 — GPU Vulkan (Aceleração RX 580)
Build nativa do stable-diffusion.cpp compilada com -DGGML_VULKAN=ON. O motor ggml mapeia diretamente para a GPU sem precisar de ROCm ou CUDA. Modelos SD 1.5 GGUF renderizam em ~72 segundos.
CAMINHO 2 — CPU Xeon (Modelos pesados SOTA)
O FLUX.1 Schnell (16GB) excede a VRAM física. O ComfyUI roda via CPU dentro do WSL2, usando a RAM ECC como uma VRAM virtual estável. Geração completa em 768x768 em ~24 minutos.
Segmentação de Memória Híbrida (Flux 12B Q4_K)
| Componente | Arquivo | Alocação |
|---|---|---|
| Modelo Difusão | flux1-schnell-q4_k.gguf | GPU VRAM ~6.5GB |
| VAE | ae.safetensors | CPU RAM ~160MB |
| CLIP L | clip_l.safetensors | GPU VRAM ~235MB |
| T5XXL | t5xxl_fp16.safetensors | CPU RAM ~9.3GB |
Comando de Produção
sd-server.exe --listen-ip 0.0.0.0 --listen-port 7860 \
--diffusion-model "E:\models\flux1-schnell-q4_k.gguf" \
--vae "E:\models\ae.safetensors" \
--clip_l "E:\models\clip_l.safetensors" \
--t5xxl "E:\models\t5xxl_fp16.safetensors" \
--cfg-scale 1.0 --steps 4 --clip-on-cpu --vae-on-cpu --vae-tiling
--vae-on-cpu e --vae-tiling são obrigatórios. Sem eles, o crash DeviceMemoryAllocation é instantâneo.
Benchmarks Reais
| Carga de Trabalho | Backend | Resultado |
|---|---|---|
| Inferência LLM | CPU apenas | 3–5 tokens/s ❌ |
| Inferência LLM | RX 580 Vulkan | 15–16 tokens/s ✅ |
| SD 1.5 20 steps | DirectML | ~450s + crash ❌ |
| SD 1.5 20 steps | Vulkan nativo | ~72s ✅ |
| Flux 1024x1024 | Xeon CPU WSL2 | ~24 min ✅ |
Nota: O tempo de carregamento de modelo caiu de 25 min (HDD) para 4 min (NVMe).
Mapa de Serviços
OpenWebUI Docker :3000
├── llama-server.exe :8081 (Vulkan — RX 580)
├── sd-server.exe :7860 (Vulkan — RX 580)
└── ComfyUI :8188 (CPU — Xeon WSL2)
Recursos
Documentação completa, scripts de orquestração .bat e binários compilados:
👉 https://setup-ia-local-rx580-vulkan.firebaseapp.com/
Hardware não morre. Ele é apenas libertado pelo software correto. Você roda modelos em GPUs AMD legadas? Vamos discutir suas otimizações de buffer nos comentários.
Top comments (0)