Разблокировка BF16 на RTX 30 ускоряет ComfyUI до 60%

ComfyUI Wikinews

Открытый модуль ядра Linux возвращает скорость выдачи FP/BF16 на картах RTX 30. На 3090 Ti ComfyUI в BF16 ускоряется до 60%, INT8 почти не меняется.

<code>Zagitta/gpu-unlock</code> восстанавливает скорость выдачи инструкций FP16 и BF16, которую NVIDIA ограничивает на карточках GeForce RTX 30. Это модуль ядра Linux, который загружается до того, как официальный драйвер захватит GPU, поэтому обновление драйвера его не отменяет. Репозиторий стал публичным 18 октября 2026 года и за неделю набрал более 2 800 звёзд.

Это семейство карточек годами несёт программное ограничение: потребительские чипы GA102, GA103, GA104 и GA106 выполняют слитное умножение-сложение FP/BF16 с накоплением в FP32 вдвое медленнее, чем их профессиональные собратья на том же кремнии. gpu-unlock записывает селекторы скорости, снимающие этот потолок, до загрузки nvidia, поэтому остальная часть стека работает без изменений.

Что меняет модуль

Проект объединяет два более ранних подхода: технику V67/PLM из разблокировщика CMP и предзагрузочную по времени методику UEFI. Конкретно, до того как драйвер NVIDIA захватит карточку, модуль записывает селектор скорости SS0 0x88888888, который выбирает полную скорость BF16, и 4-битный SS1 0x8 для IMLA4, затем выполняет FLR и завершается. Это ни приложение UEFI, ни пропатченный драйвер, и именно это подчёркивает автор: нет патча, который пришлось бы повторять при каждом выпуске новой версии драйвера NVIDIA.

В README эффект описан прямо: он удваивает скорость выдачи инструкций FMA FP/BF16 с накоплением в FP32 на этих четырёх семействах чипов. Модуль ничего не делает, если в командной строке ядра нет явного включения через gpu_unlock.targets=, будь то all или список PCI-адресов, причём карточки разблокируются параллельно примерно за секунду, сколько бы их ни было.

Как выглядят цифры

Собственное эталонное измерение проекта это плотный GEMM 8192³ на RTX 3090 Ti при 450 Вт, медианы по пяти прогонам с накоплением FP32:

Пропускная способность плотного GEMM на RTX 3090 Ti до и после разблокировки

BF16 вырастает с 87,5 до 157,4 TFLOP/s, а TF32 с 42,6 до 82,6, то есть почти вдвое, тогда как FP16 прибавляет меньше: с 87,5 до 118,4. В README изменение описано как удвоение скорости выдачи FMA FP/BF16 с накоплением в FP32 без разбивки по типам данных, поэтому опубликованная таблица это единственное измерение такого разделения.

Отчёты пользователей о совместимости, собранные в README репозитория, охватывают остальной стек:

КарточкаРезультатПрирост BF16 GEMM
RTX 3090 TiРазблокирована+68–80%
RTX 3090Разблокирована+25–67%
RTX 3080 10 ГБРазблокирована+70–73%
RTX 3080 20 ГБРазблокирована+56–59%
RTX 3070Разблокирована+73–81%
RTX 3060 12 ГБРазблокированаоколо +80%
RTX 3080 Ti 20 ГБ (OEM)Разблокировка проходит, BF16 остаётся на половинной скоростинет
RTX 3070 TiНе тестировалась с этим модулемнет
Заявленный прирост BF16 GEMM по карточкам

В README прямо сказано, что эти цифры взяты из собственных бенчмарков каждого отчёта и напрямую несопоставимы. Главный мешающий фактор это лимит мощности: самая низкая цифра, +25% на 3090, получена на карточке с ограничением 225 Вт.

Измерения в ComfyUI

Полезный для этого сайта тест это не GEMM, а генерация. Независимый владелец RTX 3090 Ti, u/under-_-null, прогнал одни и те же графы на стоковом и разблокированном драйверах и опубликовал медианное время на изображение или клип: до 60% быстрее на BF16-пайплайнах и почти без изменений на INT8.

Медианное время ComfyUI на изображение или клип на RTX 3090 Ti, сток против разблокировки
Модель и точностьСтокРазблокированоПрирост
MOSS-Image SFT BF1671,98 с45,40 с+58,6%
Qwen-Image 2.1 Turbo BF168,51 с5,41 с+57,2%
Z-Image Turbo BF166,79 с4,35 с+56,1%
Чекпойнт FLUX.1 dev FP831,96 с20,66 с+54,6%
Krea 2 Turbo BF1615,65 с10,70 с+46,3%
MiniMax H3 BF16 (видео и аудио)253,27 с158,05 с+60,2%
LTX-2.5 distilled BF16 (видео и аудио)70,81 с60,63 с+16,8%
MOSS-Image SFT INT827,31 с27,23 с+0,3%
Qwen-Image 2.1 Turbo INT83,92 с3,75 с+4,6%
MiniMax H3 INT8 ConvRot155,07 с118,21 с+31,2%

Бросаются в глаза две вещи. Прирост сосредоточен в работе BF16, где скорость выдачи инструкций и важна; пути квантования INT8 почти не затронуты, поэтому пользователь, который уже работает с чекпойнтами INT8 ConvRot, получит несколько процентов, а не 60. MiniMax H3 в INT8 ConvRot это исключение с 31%, намного выше остальных строк INT8 в том же отчёте.

Точность вывода сохранилась: в том же отчёте сопоставили 150 прогонов неподвижных изображений на разблокированной и стоковой конфигурациях и обнаружили идентичные декодированные пиксели RGB. Другие отчёты о совместимости в репозитории говорят то же самое, что согласуется с изменением скорости выдачи инструкций, а не точности.

Требования и риски

Это неподписанный модуль ядра, который меняет поведение прошивки GPU до того, как его захватит официальный драйвер. Он только для Linux, охватывает карточки GeForce GA102/GA103/GA104/GA106 и требует холодной загрузки с явным включением через командную строку ядра. Если что-то пойдёт не так, режим отказа это карточка, которая не инициализируется, поэтому относитесь к нему как к экспериментальному.

Детали, которые важны до попытки, все из документации проекта:

  • Только Linux. Модуль собирается против установленных заголовков ядра и ставится через mkinitcpio, initramfs-tools или dracut, с пакетными целями для Arch, Debian и Fedora.
  • Включение по карточке. gpu_unlock.targets=all разблокирует каждую несвязанную карточку GA10x; иначе перечислите PCI-адреса так, как их печатает lspci -D. Карточки, уже инициализированные драйвером, отклоняются.
  • Холодная загрузка. Ручная загрузка модуля после старта ничего не даёт карточке, которую nvidia уже захватил.
  • Обработка приостановки. Селекторы скорости сбрасываются при потере питания, поэтому модуль повторно разблокирует карточку при возобновлении через уведомление о приостановке, если это не отключено через gpu_unlock.resume=0. Гибернация не покрывается.
  • Карточки дисплея работают, при этом консоль остаётся погашенной с момента сброса до тех пор, пока её не перехватит nvidia-drm.
  • Не каждая карточка отвечает. OEM RTX 3080 Ti 20 ГБ завершает разблокировку, но сохраняет BF16 на половинной скорости, а по GA103 отчётов пока нет.

Отдельный проект сообщества, impacifist/Windows-GPU-UNLOCK, переносит эту технику на путь UEFI для пользователей Windows. Он не является частью оригинального проекта и здесь не тестировался.

Доступность

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
Разблокировка BF16 на RTX 30 ускоряет ComfyUI до 60% | ComfyUI Wiki