Stable Diffusion accéléré jusqu'à 211,2 % : test d'accélération avec Aitemplate, TensorRT, OneFlow et Xformers

Stable Diffusion accéléré jusqu'à 211,2 % : test d'accélération avec Aitemplate, TensorRT, OneFlow et Xformers

1. Introduction

Stable Diffusion est une technologie de génération d’images basée sur le modèle de diffusion, capable de produire des images de haute qualité à partir de texte, adaptée aux domaines comme le CG, les illustrations et les fonds d’écran haute résolution.

Cependant, en raison de son processus de calcul complexe, la vitesse de génération d’images de Stable Diffusion peut souvent devenir un goulot d’étranglement. Pour résoudre ce problème, novita.ai a mené une série de tests comparatifs sur des méthodes d’accélération, notamment Xformers, Aitemplate, TensorRT et OneFlow.

Dans cet article, nous présenterons les principes et les résultats des tests de performance de ces méthodes d’accélération, ainsi que des considérations sur le rapport coût-efficacité pour différentes cartes graphiques, afin d’aider à faire des choix éclairés lors du déploiement.

Les résultats des tests indiquent que OneFlow atteint une accélération de 211,2 % par rapport à Xformers sur RTX 3090 et une accélération de 205,6 % sur RTX 4090. Par conséquent, lors du déploiement de Stable Diffusion, le choix privilégié de GPU est le RTX 3090.

2. Principes des schémas d’accélération et comparaison des caractéristiques

Tout d’abord, nous avons organisé différents schémas pouvant être utilisés pour accélérer Stable Diffusion.

Nous avons sélectionné Xformers, Aitemplate, TensorRT et OneFlow comme schémas d’accélération. NvFuser est similaire en principe à Xformers, utilisant tous deux la technologie FlashAttention. DeepSpeed et Colossal sont principalement conçus pour l’accélération de l’entraînement, tandis qu’OpenAI Triton sert de moteur de déploiement de modèles, adapté à l’accélération par lots mais pas aux scénarios d’optimisation de la latence des modèles. Ainsi, ils sont exclus de notre comparaison.

Actuellement, nous testons les performances du schéma de base WebUI et des quatre schémas d’accélération (Xformers, Aitemplate, TensorRT et OneFlow) sur différents GPU.

Nous utilisons VoltaML pour évaluer l’effet d’accélération d’Aitemplate, Stable Diffusion WebUI pour évaluer l’accélération de Xformers, l’exemple officiel de TensorRT pour les performances de TensorRT, et nous intégrons OneFlow dans Diffusions pour tester son accélération.

3. Test des schémas d’accélération

Ensuite, nous présenterons les configurations de test pertinentes et partagerons avec vous les résultats réels des tests.

3.1 Configuration de test

Pour cette série de tests, notre mesure de performance est le nombre d’itérations par seconde (its/s).

Paramètres de l’image : 512*512, étapes 100

Prompts : A beautiful girl, best quality, ultra-detailed, extremely detailed CG unity 8k wallpaper, best illustration, an extremely delicate and beautiful, floating, high resolution.

Negatif : Low resolution, bad anatomy, bad hands, text error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, bad feet, fused body.

Sampler : Euler a

Modèle : Stable Diffusion 1.5

3.2 Résultats des tests

Après une série de tests, nous avons obtenu les résultats de performance sur différents GPU, comme indiqué ci-dessous :

D’après le tableau ci-dessus, nous pouvons observer que la comparaison des accélérations est la suivante : OneFlow > TensorRT > Aitemplate > Xformers.

OneFlow obtient une accélération relative de 211,2 % par rapport à Xformers sur RTX 3090, et une accélération de 205,6 % sur RTX 4090.

4. Comparaison des performances GPU et du rapport coût-efficacité

Nous avons effectué une analyse du rapport coût-efficacité pour différents GPU. Voici les conclusions :

Conclusion 1 : Du point de vue du rapport coût-efficacité, le GPU RTX 4090 offre la meilleure valeur.

Conclusion 2 : Les GPU extrêmement bas de gamme peuvent augmenter les coûts globaux. Le RTX 2080Ti pourrait trouver un équilibre entre les investissements initiaux lourds et les coûts globaux.

Conclusion 3 : GPU les moins performants

Dans ce test, nous avons sélectionné plusieurs GPU bas de gamme avec une capacité mémoire supérieure à 6 Go, notamment M60, 1660s et 1080.

1. Les GPU comme 1660s et 1080 ne prennent pas en charge les schémas d’accélération tels que TensorRT, Aitemplate et OneFlow, probablement en raison d’une mémoire insuffisante ou d’une incompatibilité GPU.

2. Parmi ceux-ci, le 1660s (1080) a atteint 2,61 its/s (2,64 its/s) lors de la génération d’images 512*512 avec 20 étapes prenant 7,66 s (7,57 s), ce qui indique un certain niveau d’utilisabilité.

3. En revanche, le M60 a atteint 1,27 its/s, prenant 15,74 s pour générer des images 512*512 avec 20 étapes, ce qui indique une moins bonne utilisabilité.

5. Recommandations de choix

5.1 Le RTX 4090 offre le meilleur rapport coût-efficacité, mais nous recommandons de déployer le RTX 3090.

Par exemple, nous pouvons calculer les « itérations par dollar » pour chaque GPU à l’aide du test runpod, représentant le rapport coût-efficacité du GPU.

Il est évident qu’à des taux d’utilisation similaires, le RTX 4090 a un meilleur rapport coût-efficacité que le RTX 3090. De plus, le RTX 3090 surpasse les autres GPU du même niveau, comme l’A5000 et l’A4000.

Le choix du RTX 4090 pour les modèles Stable Diffusion dépend des circonstances spécifiques :

  1. Le rapport coût-efficacité réel est déterminé par l’utilisation (heures d’utilisation par heure/60 min) * its/$. Selon le mode de service et l’utilisation estimée, si l’utilisation du RTX 4090 est similaire à l’utilisation de deux fois le RTX 3090, alors le rapport coût-efficacité du RTX 4090 est plus élevé. Cependant, si le déploiement de deux instances RTX 3090 entraîne une utilisation plus élevée grâce à une prise en charge simultanée accrue et au traitement des requêtes, le RTX 3090 pourrait être préféré. L’utilisation doit être analysée en fonction du scénario spécifique.
  2. its/$ représente les performances d’inférence, tandis qu’une plus grande VRAM permet de mettre en cache davantage de modèles, réduisant ainsi le temps de chargement des modèles et accélérant considérablement le processus de génération d’images. Le RTX 3090 et le RTX 4090 ont tous deux 24 Go de VRAM, mais si Stable Diffusion WebUI est optimisé en fonction de l’utilisation de la VRAM, le RTX 3090 pourrait avoir un avantage en termes de coût de VRAM.
  3. Si la priorité est la vitesse d’inférence, le RTX 4090 est le meilleur choix car son temps d’inférence est environ la moitié de celui du RTX 3090.

Cela correspond aux conclusions de https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/. Pour plus de données sur les GPU, référez-vous au graphique ci-dessous.

Lorsque le temps GPU représente une petite proportion du temps total dans la chaîne de traitement, il est possible de choisir des GPU légèrement moins performants pour remplacer le RTX 3090. Cela inclut des options telles que A5000, A10G, RTX 3080, RTX 3080Ti et RTX 2080Ti.

Si vous avez des questions ou souhaitez explorer davantage d’options d’accélération pour Stable Diffusion, n’hésitez pas à nous contacter sur notre Discord.

Rejoignez-nous pour explorer les capacités de Stable Diffusion avec novita.ai !

novita.ai fournit une API Stable Diffusion et des centaines d’API de génération d’images AI les plus rapides et les moins chères pour 10 000 modèles. 🎯 Génération la plus rapide en seulement 2 secondes, paiement à l’utilisation, à partir de 0,0015 $ par image standard, vous pouvez ajouter vos propres modèles et éviter la maintenance GPU. Gratuit pour partager des extensions open source.

Lecture recommandée

  1. Comment installer facilement Stable Diffusion 2.1
  2. Images générées par Lora AI - L’avenir de l’art
  3. Stable Diffusion GTX 1650 : Le guide ultime