DEV Community

Cover image for Faire tourner Flux Schnell (12B) + LLMs sur une ancienne AMD RX 580 (8 Go) via Vulkan — Guide d'architecture complet [2026]
AIVisionsLab
AIVisionsLab

Posted on

Faire tourner Flux Schnell (12B) + LLMs sur une ancienne AMD RX 580 (8 Go) via Vulkan — Guide d'architecture complet [2026]

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

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

--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)

Enter fullscreen mode Exit fullscreen mode

Ressources

Documentation complète, scripts d'orchestration .bat et binaires compilés :
👉 https://setup-ia-local-rx580-vulkan.firebaseapp.com/

Top comments (0)