Diffusion Compiler Accélère Krea 2 Turbo sur GPU Grand Public
Un compilateur C++20 open source pour modèles de diffusion exécute Krea 2 Turbo prompt-to-PNG 2x plus vite que ComfyUI sur RTX 3090 Ti, MiniMax H3 en cours.
Krea 2 Turbo, la première cible de modèle d'image du compilateur. Source : Poids ouverts Krea 2
De Quoi Il S'agit
Le compilateur Diffusion prend un checkpoint de modèle via une interface spécifique au modèle vers une représentation intermédiaire vérifiée (DiffIR). Le compilateur planifie ensuite l'exécution, et un runtime natif partagé réduit ce plan vers le backend matériel installé. Le backend NVIDIA utilise l'API CUDA Driver, NVRTC, cuBLASLt, cuDNN et des noyaux personnalisés ; les exécutables compilés ne lient pas libtorch ni n'appellent un travailleur Python.
Le projet se positionne contre la pile d'inférence habituelle de manière stricte : chaque admission de modèle nécessite des portes numériques (similarité cosinus, L2 relatif, vérifications non-finies) et l'inspection de l'artefact décodé, pas seulement une construction réussie. Le dénoiseur Krea 2 Turbo est resté bit-identique à la trajectoire du créateur, et le décodage VAE a passé à cosinus 0,99999339.
Benchmark Krea 2 Turbo
Le benchmark figé utilise le checkpoint officiel Krea 2 Turbo et la recette du créateur sur un RTX 3090 Ti : sortie 1024x1024, calcul BF16, 8 étapes Euler, CFG désactivé, et checkpoint identique, prompt, graine et planning sur les deux exécutions.
| Mesure | Natif compilé | ComfyUI/PyTorch BF16 |
|---|---|---|
| Première étape de dénoisage à froid | 3,57 s | 28,29 s |
| Médiane étape de dénoisage chaude | 2,25 s | 2,00 s |
| Dénoisage complet 8 étapes | 19,36 s | 42,32 s |
| Tokenizer + encodeur texte | 2,28 s | 9,05 s |
| Décodeur VAE + PNG | 3,43 s | 8,31 s |
| Prompt vers PNG, total | 26,58 s | 59,14 s |
Cela représente 2,054x plus rapide pour toute la chaîne, et 2,184x plus rapide sur la boucle de dénoisage seule. Le détail intéressant est d'où ne vient pas l'accélération : le temps par étape chaud est en fait légèrement plus lent que PyTorch réchauffé (2,25 s contre 2,00 s). Les gains proviennent de l'élimination de la surcharge de démarrage, des étapes encodeur texte et VAE plus rapides, et de la suppression de Python de la boucle entièrement. Le comparateur est l'exécution eager standard de ComfyUI, pas torch.compile, ce que le README note serait un benchmark apparié séparé.
Le framework prend également en charge l'armature d'entraînement LoRA via le même DiffIR et runtime, incluant autodiff mode inverse, accumulation de gradient, AdamW, et checkpoint/reprise.
MiniMax H3 En Cours
Le premier frontend de preuve à l'échelle de production était en fait la vidéo MiniMax H3, pas Krea 2. Le checkpoint de développement H3 actuel utilise un cache de projection ConvRot INT8 natif avec attention cuDNN exacte et tourne 1,717x plus vite par évaluation de dénoiseur que BF16 streamé sur la même carte. Un candidat d'attention approximative a franchi la barre de temporisation 2x mais a échoué à la porte de trajectoire inchangée et a été rejeté. Les exécutions d'acceptation complètes de prompt vers vidéo sont toujours ouvertes, donc aucune accélération H3 de bout en bout n'est revendiquée pour le moment.
Selon la discussion du résumé quotidien, le support H3 ConvRot INT8 est la prochaine cible de runtime, et les crochets d'intégration ComfyUI sont prévus.
Disponibilité
Le code est public à github.com/CodeAlexx/diffusion-compiler. Il se construit avec CMake 3.24+, un compilateur C++20, et le CUDA Toolkit plus cuDNN pour le backend NVIDIA. Les checkpoints de modèle et artefacts générés ne sont pas distribués dans le référentiel ; le compilateur fonctionne contre les poids téléchargés localement. Le runtime actuel couvre Krea 2 Turbo et le chemin de développement MiniMax H3.
Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.