инструменты 1 мин

AMD ROCm: как заставить INT8 работать быстрее FP8 в Krea2 через точечный Triton

Пользователь на AMD RX 9070 XT разогнал INT8-инференс модели Krea2 Turbo в 6–7 раз и на 17% обошёл FP8, выборочно включив Triton только для ConvRot операций вместо глобальной активации, которая крашит систему. Весь трюк — в обходе нестабильного ROCm-стека через локальный патч.

Показывает, как обойти нестабильность драйверов ROCm для AMD без потери производительности — важно для тех, кто работает с AI на не-NVIDIA железе и не хочет жертвовать скоростью ради стабильности.

Проблема

На AMD-видеокартах с драйверами ROCm запуск модели Krea2 Turbo в режиме INT8 ConvRot стабильно работал, но в 6–7 раз медленнее FP8: 65–80 секунд против 13. Глобальное включение библиотеки Triton (которая ускоряет вычисления) приводило к крашам из-за ошибок доступа к GPU-памяти.

Решение

Автор нашёл компромисс: выборочно активировал Triton только для критической операции int8_linear внутри ConvRot, оставив остальные пути на безопасном фолбеке. Патч перехватывает вызовы и направляет их в comfy_kitchen.backends.triton.quantization.int8_linear, минуя глобальные флаги.

Результаты

  • INT8 ConvRot после патча: 10,5 с (против 65–80 с до)
  • Сравнение с FP8: 10,5 с против 12,7 с — прирост 17–18%
  • Первый прогон (warmup) занял 30 с, но последующие стабильно ~10,5 с

Детали

  • Железо: AMD RX 9070 XT (gfx1201), 16 GB VRAM
  • ПО: Arch Linux, ROCm 7.2, PyTorch 2.12.1+rocm7.2, ComfyUI 0.28.0
  • Воркфлоу: портрет 1 MP, 8 шагов Euler, CFG=1
  • Важно: без глобального --enable-triton-backend — только локальный патч

Вывод

Локальный Triton для одной операции оказался стабильным там, где глобальный крашится. Автор открыл issue на GitHub с кодом и логами, и просит сообщество на AMD-картах (особенно gfx11xx/gfx12xx) проверить воспроизводимость.

Кавеаты: тест на одной конфигурации, использовалась помощь AI для подготовки отчёта.

Ключевые выводы

  • INT8 ConvRot на AMD ROCm можно разогнать в 6–7 раз точечным включением Triton вместо глобального
  • Выборочная активация Triton для одной операции оказалась стабильной, тогда как глобальная — крашит систему
  • INT8 с патчем обогнал FP8 на 17–18% на RX 9070 XT
  • Проблема ROCm-стабильности Triton частично решается хирургическим подходом к бэкендам
  • Автор призывает сообщество gfx11xx/gfx12xx проверить метод на других AMD-картах

Автор: Анна Мельникова · Источник: reddit.com

Мнение редакции

**Классический случай «а давайте не включать всё разом».** Глобальный Triton на ROCm — как русская рулетка: может выстрелить, а может и вылететь с GPU fault. Автор нашёл золотую середину: включил ускорение только там, где оно реально критично (ConvRot INT8), и получил прирост почти на 20% к FP8 без крашей.

Но есть нюанс: это **один человек, одна карта, один воркфлоу**. Issue на GitHub открыт, логи приложены, но пока неясно, насколько метод универсален. Если у вас AMD gfx11xx/12xx и вы готовы пропатчить ComfyUI — попробуйте. Только сначала сделайте бэкап, потому что ROCm+Triton — это всё ещё дикий запад.

Ещё по теме

Комментарии