Pourquoi le Strix Halo est excellent pour du LLM et mauvais pour de la diffusion

L'AMD Strix Halo (gfx1151) a une réputation méritée dans la communauté du LLM local : 96GB de RAM unifiée, une bande passante mémoire correcte, et un support ROCm qui, sans être parfait, tient la route pour de l'inférence texte. Ce que j'ai voulu vérifier cette semaine, c'est si cette réputation tenait aussi pour la génération d'image. Verdict : non, pas du tout.

L'AMD Strix Halo (gfx1151) a une réputation méritée dans la communauté du LLM local : 96GB de RAM unifiée, une bande passante mémoire correcte, et un support ROCm qui, sans être parfait, tient la route pour de l'inférence texte. Ce que j'ai voulu vérifier cette semaine, c'est si cette réputation tenait aussi pour la génération d'image. Verdict : non, pas du tout.

Le test

Sur ma machine RAG Pro (EVO-X2, Strix Halo gfx1151, 96GB unifiés), j'ai comparé Flux1-schnell (déjà en place et fonctionnel) à trois alternatives plus récentes : Qwen-Image-2512 en GGUF Q8, sa variante distillée, et FLUX.2 Klein 9B en bf16 pur — donc sans aucune quantification, pour isoler la variable "kernel non optimisé" de la variable "pénalité de quantification".

Modèle Steps Temps total Mémoire (GTT) Verdict
Flux1-schnell (baseline) 4 ~23-26s ~32 Go référence
Qwen-Image-2512 (GGUF Q8) 30 704s 37,0 Go 30x plus lent
Qwen-Image-Distill (GGUF) 15 226s ~37,4 Go 10x plus lent
FLUX.2 Klein 9B (bf16) 20 198s (8,3s load + 190s gen) 34,0 Go 8,6x plus lent

Ce que ces chiffres ne disent pas au premier coup d'œil

La mémoire n'a jamais été le facteur limitant. Sur les quatre tests, j'ai toujours eu entre 30 et 58 Go de marge libre — aucun OOM, aucun swap significatif. Si la RAM unifiée était le goulot d'étranglement, FLUX.2 Klein en bf16 pur aurait dû s'en sortir correctement : c'est le test le plus "propre" des quatre, sans quantification GGUF pour brouiller les pistes.

Il ne s'en est pas sorti. Et le détail le plus intéressant n'est pas le temps total, mais sa courbe : la génération démarre à 0,2s/step et termine autour de 9s/step — une dégradation en cours de run, pas un temps constant élevé dès le départ. Ce n'est pas la signature d'un kernel simplement "non optimisé mais stable" ; c'est plutôt celle d'un phénomène cumulatif — contention de bande passante entre iGPU et CPU sur une charge soutenue, ou throttling thermique que Flux1-schnell, avec ses 4 steps expédiés en 23 secondes, n'a jamais le temps de déclencher.

Flux1-schnell s'en sort bien précisément parce qu'il ne sollicite jamais la puce longtemps. Les modèles plus lourds, eux, révèlent une limite qui n'apparaît que sur une charge soutenue — probablement la même raison pour laquelle l'inférence LLM (des séquences de tokens courtes et répétées) se comporte bien sur cette architecture là où la diffusion (des passes forward continues et lourdes) s'effondre.

Conclusion

Sur Strix Halo, Flux1-schnell reste la seule option d'image generation viable — pas par choix, mais parce que c'est le seul modèle testé qui ne reste pas assez longtemps sur la puce pour révéler le problème. Pas d'autres essais prévus sur ce matériel pour l'instant.

Le prochain levier, si le besoin se représente, c'est une carte dédiée avec un support ROCm plus mature — typiquement une Radeon PRO W7800 48GB (RDNA3 desktop, gfx1100) plutôt que l'iGPU. Elle sert pour d'autres tests mais à terme je veux tester comment elle va s'en sortir.

Open WebUI & MTP : Retour d’expérience sur une évaluation technique en vue d’une intégration entreprise

Petite digression sur mon projet actuel. Suite à une demande concrète, je me suis penché sur l’évaluation d’Open WebUI pour une potentielle mise en production en environnement professionnel. L’objectif ? Identifier ses forces, mais aussi ses limites, tout en testant des configurations matérielles et logicielles optimisées pour simuler une charge réelle.

Lire la suite

Le cluster en juin 2026 : trois machines, trois rôles, un seul objectif

Depuis les premiers billets sur ce blog, l'infrastructure a beaucoup évolué. Ce qui était au départ une seule machine qui faisait tourner un LLM en local est devenu un cluster de trois nœuds, chacun avec un rôle distinct et des responsabilités claires. Il me semble utile de faire un point complet sur l'état actuel — non pas pour décrire chaque composant dans le détail technique, mais pour expliquer ce que chaque machine fait concrètement et comment elles s'articulent.

Lire la suite

Quand le projet devient multi-utilisateurs

Depuis les premiers billets sur ce projet, j’ai surtout parlé de modèles, d’embeddings et de pipelines RAG. Tout ce qui se passe côté machine. Mais il y a un autre axe d’évolution que j’ai mené en parallèle ces dernières semaines, moins spectaculaire techniquement mais tout aussi important en  […]

Lire la suite

Pourquoi j’ai ajouté un mode RAG piloté par agents dans Internal LLM

Au départ, un LLM local peut déjà aider pour écrire, expliquer ou générer du code. Mais il a une limite simple : il ne connaît pas automatiquement mes documents, mes scripts, mes exports ou la structure réelle de mes projets. C’est pour ça que j’ai ajouté un vrai mode RAG dans Internal LLM. L’idée  […]

Lire la suite

Internal LLM : pourquoi l’architecture repose sur trois moteurs spécialisés

Dans Internal LLM, je n’ai pas choisi un seul modèle pour tout faire. J’ai préféré une architecture en trois services spécialisés, chacun avec un rôle précis. Le service principal du code repose sur Qwen3-Coder-30B-A3B-Instruct en Q5_K_M sur le port 8080, le service de raisonnement sur Qwen3-32B en  […]

Lire la suite

Internal LLM : pourquoi j’ai choisi Ubuntu, un kernel récent et une architecture LLM en plusieurs modèles

Après avoir présenté le projet, je voulais revenir sur un point essentiel : dans un environnement d’IA locale, le choix du système compte presque autant que le choix des modèles. Pour Internal LLM, j’ai retenu Ubuntu 24.04.4 LTS avec un kernel 6.14.0-37, sur une machine basée sur AMD Ryzen AI Max+ 395 avec Radeon 8060S. Ce n’est pas un choix “par défaut”, mais un compromis entre compatibilité matérielle, stabilité et capacité d’expérimentation.

Lire la suite

Internal LLM : pourquoi je construis un assistant IA local.

Je démarre ce blog pour partager l’évolution de Internal LLM, un projet centré sur l’IA locale et l’exploitation intelligente de documentation technique, de code, de requêtes SQL et de connaissances internes. L’objectif est de construire un assistant capable de retrouver, comprendre et exploiter  […]

Lire la suite

Haut de page