Stable Diffusion Acelerado em até 211,2%: Teste de Aceleração com Aitemplate, TensorRT, OneFlow e Xformers

Stable Diffusion Acelerado em até 211,2%: Teste de Aceleração com Aitemplate, TensorRT, OneFlow e Xformers

1. Introdução

Stable Diffusion é uma tecnologia de geração de imagens baseada no modelo de difusão, capaz de produzir imagens de alta qualidade a partir de texto, adequada para CG, ilustrações e papéis de parede de alta resolução, entre outros campos.

No entanto, devido ao seu processo computacional complexo, a velocidade de geração de imagens do Stable Diffusion pode frequentemente se tornar um gargalo. Para resolver esse problema, a novita.ai realizou uma série de testes comparativos sobre métodos de aceleração, incluindo Xformers, Aitemplate, TensorRT e OneFlow.

Neste artigo, apresentaremos os princípios e resultados de testes de desempenho desses métodos de aceleração, fornecendo considerações sobre custo-benefício para diferentes placas de vídeo, a fim de auxiliar na tomada de decisões informadas durante a implantação.

Os resultados dos testes indicam que o OneFlow alcança uma aceleração de 211,2% em comparação com o Xformers na RTX 3090 e uma aceleração de 205,6% na RTX 4090. Portanto, ao implantar o Stable Diffusion, a escolha preferida de GPU é a RTX 3090.

2. Comparação de Princípios e Características dos Esquemas de Aceleração

Primeiramente, organizamos vários esquemas que podem ser usados para acelerar o stable diffusion.

Selecionamos Xformers, Aitemplate, TensorRT e OneFlow como nossos esquemas de aceleração. NvFuser é semelhante em princípio ao Xformers, ambos usando a tecnologia FlashAttention. DeepSpeed e colossal são projetados principalmente para aceleração de treinamento. OpenAI Triton serve como um motor de implantação de modelos, adequado para aceleração de tamanho de lote, mas não para cenários de otimização de latência do modelo. Assim, estes são excluídos da nossa comparação.

Atualmente, estamos testando o desempenho do esquema básico do WebUI e dos quatro esquemas de aceleração (Xformers, Aitemplate, TensorRT e OneFlow) em diferentes GPUs.

Usamos o VoltaML para avaliar o efeito de aceleração do Aitemplate, Stable Diffusion WebUI para avaliar a aceleração do Xformers, o exemplo oficial do TensorRT para o desempenho do TensorRT e integramos o OneFlow no Diffusions para testar sua aceleração.

3. Teste dos Esquemas de Aceleração

A seguir, apresentaremos as configurações de teste relevantes e compartilharemos os resultados reais dos testes com você.

3.1 Configuração de Teste

Para esta rodada de testes, nossa métrica de desempenho é iterações por segundo (its/s).

Configurações de Imagem: 512*512, passos 100

Prompts: Uma garota bonita, melhor qualidade, ultra detalhado, extremamente detalhado CG unity 8k wallpaper, melhor ilustração, uma ilustração extremamente delicada e bonita, flutuante, alta resolução.

Negativo: Baixa resolução, anatomia ruim, mãos ruins, erro de texto, dedos faltando, dígito extra, menos dígitos, cortado, pior qualidade, baixa qualidade, qualidade normal, artefatos jpeg, assinatura, marca d’água, nome de usuário, borrado, pés ruins, corpo fundido.

Sampler: Euler a

Modelo: Stable Diffusion 1.5

3.2 Resultados dos Testes

Após uma série de testes, obtivemos resultados de desempenho em várias GPUs, conforme mostrado abaixo:

Da tabela acima, podemos observar que a comparação de aceleração é a seguinte: OneFlow > TensorRT > Aitemplate > Xformers.

OneFlow alcança uma aceleração relativa de 211,2% em comparação com Xformers na RTX 3090, e uma aceleração de 205,6% na RTX 4090.

4. Comparação de Desempenho e Custo-Benefício das GPUs

Realizamos uma análise de custo-benefício para diferentes GPUs. Aqui estão as conclusões:

Conclusão 1: Do ponto de vista de custo-benefício, a GPU RTX040 oferece o maior valor.

Conclusão 2: GPUs de baixo custo extremo podem aumentar os custos gerais. A RTX 2080Ti pode equilibrar investimentos iniciais pesados e custos gerais.

Conclusão 3: GPUs com pior desempenho

Neste teste, selecionamos várias GPUs de baixo custo com capacidade de memória superior a 6GB, incluindo M60, 1660s e 1080.

1. GPUs como 1660s e 1080 não suportam esquemas de aceleração como TensorRT, Aitemplate e OneFlow, possivelmente devido à memória insuficiente ou incompatibilidade da GPU.

2. Entre estas, a 1660s (1080) alcançou 2,61 it/s (2,64 it/s) ao gerar imagens de 512*512 com 20 passos levando 7,66s (7,57s), indicando algum nível de usabilidade.

3. Por outro lado, a M60 alcançou 1,27 it/s, levando 15,74s para gerar imagens de 512*512 com 20 passos, indicando pior usabilidade.

5. Recomendações de Seleção

5.1 A RTX 4090 oferece o melhor custo-benefício, mas recomendamos implantar a RTX 3090.

Por exemplo, podemos calcular as “iterações por dólar” para cada GPU usando o teste runpod, representando o custo-benefício da GPU.

É evidente que, sob taxas de utilização semelhantes, a RTX 4090 tem maior custo-benefício em comparação com a RTX 3090. Além disso, a RTX 3090 supera outras GPUs do mesmo nível, como A5000 e A4000.

A escolha da RTX 4090 para modelos Stable Diffusion depende de circunstâncias específicas:

  1. O custo-benefício real é determinado pela utilização (horas de uso por hora/60min) * its/$. Dependendo do modo de serviço e da utilização estimada, se a utilização da RTX 4090 for semelhante ao uso de duas RTX 3090, então o custo-benefício da RTX 4090 é maior. No entanto, se a implantação de duas instâncias RTX 3090 resultar em maior utilização devido ao aumento do suporte concorrente e ao tratamento de requisições, a RTX 3090 pode ser preferível. A utilização precisa ser analisada com base no cenário específico.
  2. its/$ representa o desempenho de inferência, enquanto uma VRAM maior permite armazenar em cache mais modelos, reduzindo o tempo de carregamento do modelo e acelerando significativamente o processo de geração de imagens. Tanto a RTX 3090 quanto a RTX 4090 têm 24GB de VRAM, mas se o Stable Diffusion WebUI for otimizado com base no uso de VRAM, a RTX 3090 pode ter uma vantagem no custo da VRAM.
  3. Se a prioridade for a velocidade de inferência, a RTX 4090 é a melhor escolha, pois seu tempo de inferência é aproximadamente metade do da RTX 3090.

Isso é consistente com as descobertas em https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/. Para mais dados de GPU, consulte o gráfico abaixo.

Quando o tempo da GPU é uma pequena proporção do tempo total na cadeia de processamento, é possível escolher GPUs com desempenho ligeiramente inferior para substituir a RTX 3090. Isso inclui opções como A5000, A10G, RTX 3080, RTX 3080Ti e RTX 2080Ti.

Se você tiver alguma dúvida ou quiser explorar mais opções de aceleração para o Stable Diffusion, sinta-se à vontade para entrar em contato conosco em nosso Discord.

Bem-vindo para se juntar e explorar as capacidades do Stable Diffusion com a novita.ai!

novita.ai fornece API do Stable Diffusion e centenas de APIs de geração de imagens de IA rápidas e mais baratas para 10.000 modelos.🎯 Geração mais rápida em apenas 2s, pagamento conforme o uso, mínimo de $0,0015 por imagem padrão, você pode adicionar seus próprios modelos e evitar manutenção de GPU. Gratuito para compartilhar extensões de código aberto.

Leitura recomendada

  1. Como Instalar Stable Diffusion 2.1 Facilmente
  2. Imagens Geradas por IA Lora - O Futuro da Arte
  3. Stable Diffusion GTX 1650: O Guia Definitivo