Stable Diffusion ускорен до 211,2%: тестирование Aitemplate, TensorRT, OneFlow и Xformers

Stable Diffusion ускорен до 211,2%: тестирование Aitemplate, TensorRT, OneFlow и Xformers

1. Введение

Stable Diffusion — это технология генерации изображений на основе диффузионной модели, способная создавать высококачественные изображения из текста. Она подходит для CG, иллюстраций, высокодетализированных обоев и других областей.

Однако из-за сложных вычислительных процессов скорость генерации изображений в Stable Diffusion часто становится узким местом. Чтобы решить эту проблему, novita.ai провела серию сравнительных тестов методов ускорения, включая Xformers, Aitemplate, TensorRT и OneFlow.

В этой статье мы рассмотрим принципы и результаты тестирования производительности этих методов ускорения, а также дадим рекомендации по экономической эффективности для различных видеокарт, чтобы помочь вам сделать осознанный выбор при развёртывании.

Результаты тестов показывают, что OneFlow достигает ускорения в 211,2% по сравнению с Xformers на RTX 3090 и ускорения в 205,6% на RTX 4090. Поэтому при развёртывании Stable Diffusion предпочтительным выбором GPU является RTX 3090.

2. Принципы и сравнение характеристик схем ускорения

Сначала мы систематизировали различные схемы, которые можно использовать для ускорения Stable Diffusion.

Мы выбрали Xformers, Aitemplate, TensorRT и OneFlow в качестве схем ускорения. NvFuser по принципу схож с Xformers — оба используют технологию FlashAttention. DeepSpeed и colossal в первую очередь предназначены для ускорения обучения, а OpenAI Triton служит движком для развёртывания моделей, подходит для ускорения пакетной обработки, но не для оптимизации задержки модели. Поэтому они исключены из нашего сравнения.

В настоящее время мы тестируем производительность базовой схемы WebUI и четырёх схем ускорения (Xformers, Aitemplate, TensorRT и OneFlow) на разных GPU.

Мы используем VoltaML для оценки эффекта ускорения Aitemplate, Stable Diffusion WebUI для оценки ускорения Xformers, официальный пример TensorRT для производительности TensorRT и интегрируем OneFlow в Diffusions для тестирования его ускорения.

3. Тестирование схем ускорения

Далее мы представим соответствующие конфигурации тестирования и поделимся с вами фактическими результатами.

3.1 Конфигурация тестирования

В этом раунде тестирования нашим показателем производительности являются итерации в секунду (it/s).

Настройки изображения: 512×512, шагов 100

Промпты: A beautiful girl, best quality, ultra-detailed, extremely detailed CG unity 8k wallpaper, best illustration, an extremely delicate and beautiful, floating, high resolution.

Негативный промпт: 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.

Сэмплер: Euler a

Модель: Stable Diffusion 1.5

3.2 Результаты тестов

После серии тестов мы получили результаты производительности на различных GPU, как показано ниже:

Из таблицы выше видно, что сравнение ускорения выглядит так: OneFlow > TensorRT > Aitemplate > Xformers.

OneFlow достигает относительного ускорения в 211,2% по сравнению с Xformers на RTX 3090 и ускорения в 205,6% на RTX 4090.

4. Сравнение производительности и экономической эффективности GPU

Мы провели анализ экономической эффективности для различных GPU. Вот выводы:

Вывод 1: С точки зрения экономической эффективности GPU RTX 4090 предлагает наибольшую ценность.

Вывод 2: Чрезвычайно слабые GPU могут увеличить общие затраты. RTX 2080Ti может обеспечить баланс между первоначальными крупными вложениями и общими затратами.

Вывод 3: Наименее производительные GPU

В этом тесте мы выбрали несколько слабых GPU с объёмом памяти более 6 ГБ, включая M60, 1660s и 1080.

  1. GPU, такие как 1660s и 1080, не поддерживают схемы ускорения TensorRT, Aitemplate и OneFlow, возможно, из-за недостатка памяти или несовместимости GPU.

  2. Среди них 1660s (1080) показали 2,61 it/s (2,64 it/s) при генерации изображений 512×512 за 20 шагов, что заняло 7,66 с (7,57 с), что свидетельствует о некоторой пригодности.

  3. С другой стороны, M60 показал 1,27 it/s, затратив 15,74 с на генерацию изображения 512×512 за 20 шагов, что указывает на худшую пригодность.

5. Рекомендации по выбору

5.1 RTX 4090 обеспечивает наилучшую экономическую эффективность, но мы рекомендуем развёртывать RTX 3090.

Например, мы можем рассчитать «итераций на доллар» для каждого GPU, используя тест runpod, что отражает экономическую эффективность GPU.

Очевидно, что при аналогичных уровнях загрузки RTX 4090 имеет более высокую экономическую эффективность по сравнению с RTX 3090. Кроме того, RTX 3090 превосходит другие GPU того же уровня, такие как A5000 и A4000.

Выбор RTX 4090 для моделей Stable Diffusion зависит от конкретных обстоятельств:

  1. Фактическая экономическая эффективность определяется загрузкой (часы использования/час/60 мин) * it/$. В зависимости от режима обслуживания и предполагаемой загрузки, если загрузка RTX 4090 аналогична использованию двух RTX 3090, то экономическая эффективность RTX 4090 выше. Однако если развёртывание двух экземпляров RTX 3090 приводит к более высокой загрузке благодаря увеличению параллельной поддержки и обработке запросов, то RTX 3090 может быть предпочтительнее. Загрузку необходимо анализировать в зависимости от конкретного сценария.
  2. it/$ представляет производительность инференса, тогда как больший объём VRAM позволяет кэшировать больше моделей, сокращая время загрузки модели и значительно ускоряя процесс генерации изображений. И RTX 3090, и RTX 4090 имеют 24 ГБ VRAM, но если Stable Diffusion WebUI оптимизирован с учётом использования VRAM, RTX 3090 может иметь преимущество по стоимости VRAM.
  3. Если приоритетом является скорость инференса, RTX 4090 — лучший выбор, так как его время инференса примерно вдвое меньше, чем у RTX 3090.

Это согласуется с выводами из https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/. Для получения дополнительных данных по GPU обратитесь к графику ниже.

Когда время работы GPU составляет малую долю общего времени в цепочке обработки, можно выбрать GPU с немного меньшей производительностью вместо RTX 3090. К таким вариантам относятся A5000, A10G, RTX 3080, RTX 3080Ti и RTX 2080Ti.

Если у вас есть вопросы или вы хотите изучить другие варианты ускорения Stable Diffusion, свяжитесь с нами в нашем Discord.

Добро пожаловать, присоединяйтесь и исследуйте возможности Stable Diffusion вместе с novita.ai!

novita.ai предоставляет API Stable Diffusion и сотни быстрых и недорогих API для генерации изображений с использованием ИИ для 10 000 моделей.🎯 Самая быстрая генерация всего за 2 секунды, оплата по мере использования, минимум $0,0015 за стандартное изображение, вы можете добавлять свои собственные модели и избежать обслуживания GPU. Бесплатно делитесь расширениями с открытым исходным кодом.

Рекомендуемые статьи

  1. How to Install Stable Diffusion 2.1 Easily
  2. Lora AI-Generated Images - The Future of Art
  3. Stable Diffusion GTX 1650: The Ultimate Guide