On a dit à beaucoup de monde que la RX 580 était "morte" pour l'IA en 2026. Écosystèmes exclusivement CUDA, abandon du support Polaris par ROCm depuis la v5.x, et DirectML qui n'a jamais atteint sa maturité. Voici l'analyse technique détaillée de la façon dont nous avons prouvé le contraire.
Setup matériel
- GPU : AMD RX 580 2048SP — 8 Go GDDR5 VRAM (support natif Vulkan 1.x)
- CPU : Intel Xeon E5-2690 v3 — 12c/24t @ 3.5GHz boost
- RAM : 32 Go DDR4 REG ECC Quad Channel
- Stockage : NVMe 1 To (indispensable pour supprimer les goulots d'étranglement)
- OS : Windows 10 Pro + WSL2 Ubuntu 22.04.5
Pourquoi les autres solutions échouent ?
| Solution | État | Raison |
|---|---|---|
| CUDA | ❌ | Exclusif Nvidia |
| ROCm | ❌ | Support Polaris arrêté à la v5.x |
| DirectML | ❌ | Erreur OpaqueTensorImpl sur CLIPTextEncode |
| OpenVINO | ❌ | Modules ldm/sgm manquants sur Forge |
L'erreur fatale de DirectML :
NotImplementedError: Cannot access storage of OpaqueTensorImpl
Le pilote encapsule la mémoire dans des tenseurs opaques que les backends d'attention de ComfyUI ne peuvent pas lire. C'est une impasse.
La Solution — Architecture Duale
CHEMIN 1 — GPU Vulkan (Accélération RX 580)
Build native de stable-diffusion.cpp compilée avec -DGGML_VULKAN=ON. Le moteur ggml mappe directement vers le GPU sans dépendre de ROCm ou CUDA. Les modèles SD 1.5 GGUF tournent en ~72 secondes.
CHEMIN 2 — CPU Xeon (Modèles lourds SOTA)
FLUX.1 Schnell (16 Go) dépasse la VRAM physique. ComfyUI tourne via CPU dans WSL2, en utilisant la RAM ECC comme une VRAM virtuelle stable. Génération 768x768 en ~24 minutes.
Segmentation de mémoire hybride (Flux 12B Q4_K)
| Composant | Fichier | Allocation |
|---|---|---|
| Modèle Diffusion | flux1-schnell-q4_k.gguf | GPU VRAM ~6.5 Go |
| VAE | ae.safetensors | CPU RAM ~160 Mo |
| CLIP L | clip_l.safetensors | GPU VRAM ~235 Mo |
| T5XXL | t5xxl_fp16.safetensors | CPU RAM ~9.3 Go |
Commande de production
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 et --vae-tiling sont obligatoires. Sans eux, le crash DeviceMemoryAllocation est immédiat.
Benchmarks réels
| Charge de travail | Backend | Résultat |
|---|---|---|
| Inférence LLM | CPU seulement | 3–5 tokens/s ❌ |
| Inférence LLM | RX 580 Vulkan | 15–16 tokens/s ✅ |
| SD 1.5 20 steps | DirectML | ~450s + crash ❌ |
| SD 1.5 20 steps | Vulkan natif | ~72s ✅ |
| Flux 1024x1024 | Xeon CPU WSL2 | ~24 min ✅ |
Note : Le temps de chargement des modèles est passé de 25 min (HDD) à 4 min (NVMe).
Architecture des services
OpenWebUI Docker :3000
├── llama-server.exe :8081 (Vulkan — RX 580)
├── sd-server.exe :7860 (Vulkan — RX 580)
└── ComfyUI :8188 (CPU — Xeon WSL2)
Ressources
Documentation complète, scripts d'orchestration .bat et binaires compilés :
👉 https://setup-ia-local-rx580-vulkan.firebaseapp.com/
Top comments (0)