1. Introducción
Stable Diffusion es una tecnología de generación de imágenes basada en el modelo de difusión, capaz de producir imágenes de alta calidad a partir de texto, adecuada para campos como CG, ilustraciones y fondos de pantalla de alta resolución.
Sin embargo, debido a su complejo proceso de cálculo, la velocidad de generación de imágenes de Stable Diffusion puede convertirse a menudo en un cuello de botella. Para abordar este problema, novita.ai realizó una serie de pruebas comparativas de métodos de aceleración, incluyendo Xformers, Aitemplate, TensorRT y OneFlow.
En este artículo, presentaremos los principios y los resultados de las pruebas de rendimiento de estos métodos de aceleración, proporcionando consideraciones sobre la relación coste-efectividad para diferentes tarjetas gráficas para ayudar a tomar decisiones informadas durante el despliegue.
Los resultados de las pruebas indican que OneFlow logra una aceleración del 211.2 % en comparación con Xformers en RTX 3090 y una aceleración del 205.6 % en RTX 4090. Por lo tanto, al implementar Stable Diffusion, la opción preferida de GPU es RTX 3090.

2. Comparación de principios y características de los esquemas de aceleración
En primer lugar, hemos organizado varios esquemas que se pueden utilizar para acelerar Stable Diffusion.

Hemos seleccionado Xformers, Aitemplate, TensorRT y OneFlow como nuestros esquemas de aceleración. NvFuser es similar en principio a Xformers, ambos utilizan la tecnología FlashAttention. DeepSpeed y colossal están diseñados principalmente para aceleración de entrenamiento, mientras que OpenAI Triton sirve como motor de despliegue de modelos, adecuado para aceleración por lotes pero no para escenarios de optimización de latencia del modelo. Por lo tanto, estos quedan excluidos de nuestra comparación.
Actualmente, estamos probando el rendimiento del esquema básico de WebUI y los cuatro esquemas de aceleración (Xformers, Aitemplate, TensorRT y OneFlow) en diferentes GPUs.
Usamos VoltaML para evaluar el efecto de aceleración de Aitemplate, Stable Diffusion WebUI para evaluar la aceleración de Xformers, el ejemplo oficial de TensorRT para el rendimiento de TensorRT, e integramos OneFlow en Diffusions para probar su aceleración.

3. Pruebas del esquema de aceleración
A continuación, presentaremos las configuraciones de prueba relevantes y compartiremos los resultados reales de las pruebas con usted.
3.1 Configuración de la prueba
Para esta ronda de pruebas, nuestra métrica de rendimiento son iteraciones por segundo (its/s).
Configuración de imagen: 512*512, pasos 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.
Negativo: 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.
Muestreador: Euler a
Modelo: Stable Diffusion 1.5
3.2 Resultados de la prueba
Después de una serie de pruebas, obtuvimos resultados de rendimiento en varias GPUs, como se muestra a continuación:

De la tabla anterior podemos observar que la comparación de aceleración es la siguiente: OneFlow > TensorRT > Aitemplate > Xformers.
OneFlow logra una aceleración relativa del 211.2 % en comparación con Xformers en RTX 3090, y una aceleración del 205.6 % en RTX 4090.

4. Comparación de rendimiento y relación coste-efectividad de las GPUs
Realizamos un análisis de coste-efectividad para diferentes GPUs. Aquí están las conclusiones:
Conclusión 1: Desde una perspectiva de coste-efectividad, la GPU RTX040 ofrece el mayor valor.
Conclusión 2: Las GPUs de gama extremadamente baja pueden aumentar los costos generales. La RTX 2080Ti podría encontrar un equilibrio entre las inversiones iniciales pesadas y los costos generales.
Conclusión 3: GPUs con menor rendimiento
En esta prueba, seleccionamos varias GPUs de gama baja con una capacidad de memoria superior a 6GB, incluyendo M60, 1660s y 1080.
1. GPUs como 1660s y 1080 no soportan esquemas de aceleración como TensorRT, Aitemplate y OneFlow, posiblemente debido a memoria insuficiente o incompatibilidad de la GPU.
2. Entre ellas, 1660s (1080) alcanzó 2.61 it/s (2.64 it/s) al generar imágenes de 512*512 con 20 pasos tardando 7.66s (7.57s), lo que indica cierto nivel de usabilidad.
3. Por otro lado, la M60 alcanzó 1.27 it/s, tardando 15.74s en generar imágenes de 512*512 con 20 pasos, lo que indica una usabilidad más pobre.


5. Recomendaciones de selección
5.1 La RTX 4090 ofrece la mejor relación coste-efectividad, pero recomendamos implementar la RTX 3090.
Por ejemplo, podemos calcular las “iteraciones por dólar” para cada GPU utilizando la prueba de runpod, que representa la relación coste-efectividad de la GPU.
Es evidente que bajo tasas de utilización similares, la RTX 4090 tiene una mayor relación coste-efectividad en comparación con la RTX 3090. Además, la RTX 3090 supera a otras GPUs del mismo nivel, como A5000 y A4000.

La elección de la RTX 4090 para modelos de Stable Diffusion depende de circunstancias específicas:
- La relación coste-efectividad real está determinada por la utilización (horas de uso por hora/60min) * its/$. Dependiendo del modo de servicio y la utilización estimada, si la utilización de la RTX 4090 es similar a usar dos veces la RTX 3090, entonces la relación coste-efectividad de la RTX 4090 es mayor. Sin embargo, si implementar dos instancias de RTX 3090 resulta en una mayor utilización debido al aumento de soporte concurrente y manejo de solicitudes, la RTX 3090 podría ser preferible. La utilización debe analizarse según el escenario específico.
- its/$ representa el rendimiento de inferencia, mientras que una VRAM más grande permite almacenar en caché más modelos, reduciendo el tiempo de carga del modelo y acelerando significativamente el proceso de generación de imágenes. Tanto la RTX 3090 como la RTX 4090 tienen 24GB de VRAM, pero si Stable Diffusion WebUI está optimizado según el uso de VRAM, la RTX 3090 podría tener ventaja en el costo de VRAM.
- Si se prioriza la velocidad de inferencia, la RTX 4090 es la mejor opción, ya que su tiempo de inferencia es aproximadamente la mitad que el de la RTX 3090.
Esto es consistente con los hallazgos en https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/. Para más datos de GPUs, consulte el gráfico a continuación.

Cuando el tiempo de GPU es una pequeña proporción del tiempo total en la cadena de procesamiento, es posible elegir GPUs con un rendimiento ligeramente inferior para reemplazar la RTX 3090. Esto incluye opciones como A5000, A10G, RTX 3080, RTX 3080Ti y RTX 2080Ti.
Si tiene alguna pregunta o desea explorar más opciones de aceleración para Stable Diffusion, no dude en contactarnos en nuestro Discord.
¡Bienvenido a unirse y explorar las capacidades de Stable Diffusion con novita.ai!
novita.ai proporciona la API de Stable Diffusion y cientos de APIs de generación de imágenes AI rápidas y económicas para 10,000 modelos.🎯 Generación más rápida en solo 2 segundos, pago por uso, un mínimo de $0.0015 por cada imagen estándar, puede agregar sus propios modelos y evitar el mantenimiento de GPU. Gratis para compartir extensiones de código abierto.
Lectura recomendada
