Как удвоить скорость тензорных ядер на видеокартах NVIDIA RTX

Мощные видеокарты NVIDIA сейчас в дефиците и стоят дороже, чем когда-либо. Но даже если у вас есть такая карта, она, как выясняется, работает не на полную силу. NVIDIA искусственно ограничивает скорость тензорных ядер на потребительских GeForce. В задачах FP16, BF16 и TF32, на которых держится большинство ИИ-вычислений, они выдают лишь половину возможностей. Тот же самый кремний в профессиональных картах работает на полной скорости просто потому, что стоит значительно дороже.

Разработчик под ником Zagitta выпустил gpu-unlock — бесплатный инструмент с открытым исходным кодом, который снимает это искусственное ограничение на картах RTX 20, 30 и 40 серий.

Редакция «Компьютерры» разобралась, как работает этот модуль, кому он подходит и с какими нюансами придется столкнуться.

Как удвоить скорость тензорных ядер на видеокартах NVIDIA RTX

Что такое gpu-unlock

gpu-unlock — это небольшой модуль ядра Linux, который убирает ограничение скорости тензорных ядер при каждой загрузке системы. Он запускается до того, как загрузится официальный драйвер NVIDIA, переключает тензорные ядра в полноскоростной режим и передает карту обратно штатному драйверу.

Технически все происходит без перепрошивки BIOS и без модификации драйверов. Модуль изменяет значения аппаратных регистров, которые обычно недоступны пользователю, активируя полную производительность тензорных ядер. После этого управление видеокартой передается стандартному драйверу NVIDIA, и никаких следов вмешательства не остается.

Насколько хорошо это работает, зависит от карты. RTX 30 серии показывают стабильные результаты — более ста отчетов пользователей, включая RTX 3090. Поддержка RTX 40 и RTX 20 пока экспериментальная. Карты RTX 50 не поддерживаются, и разработчик не ожидает, что это изменится.

Что дает разблокировка

Прирост касается именно тензорных вычислений. На бумаге пропускная способность тензорных ядер удваивается. RTX 3090 в матричной математике BF16 поднимается с 75 до 125 TFLOPS. RTX 3090 Ti — с 87,5 до 157,4 TFLOPS, то есть почти на 80%. Но в реальных задачах ускорение скромнее и сильно зависит от нагрузки:

Сценарий Прирост
Матричная математика BF16 (пик) до +80–100%
Обработка промптов LLM +25–55%
Тонкая настройка (BF16) +25–50%
Генерация изображений +30–55%
FlashAttention +50–60%
Генерация видео (BF16) +15–20%
llama.cpp / Ollama (GGUF) 0–15%
Генерация токенов LLM 0%
Игры 0%
INT8 / FP8 / INT4 0%

При этом результаты вычислений остаются полностью идентичными исходным, вплоть до отдельных битов, меняется только скорость.

Важное ограничение — для игр это ничего не дает. Классическая растеризация, обработка геометрии и трассировка лучей работают по собственным конвейерам и не зависят от регистров тензорных ядер. Прирост FPS в играх не подтвержден ни одним независимым тестом.

Как установить

Официальная версия предназначена только для Linux. Установка занимает минуты, а львиная доля времени уходит на перезагрузку.

Шаг 1. Клонируйте репозиторий и соберите модуль.

git clone https://github.com/Zagitta/gpu-unlock

cd gpu-unlock

make install

Скрипт сам определит дистрибутив, подтянет зависимости, скачает нужные файлы NVIDIA и соберет все локально. По ходу попросит пароль sudo. Если хотите потом сравнить результаты — прогоните бенчмарки до установки .

Шаг 2. Укажите ядру использовать модуль при загрузке.

Для GRUB (Debian, Ubuntu, Mint) откройте /etc/default/grub, найдите строку GRUB_CMDLINE_LINUX_DEFAULT и добавьте gpu_unlock.targets=all внутрь кавычек, после существующих параметров:

GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash gpu_unlock.targets=all»

Сохраните, затем выполните sudo update-grub.

На Arch используйте sudo grub-mkconfig -o /boot/grub/grub.cfg .

Шаг 3. Перезагрузитесь и проверьте.

Если GPU управляет дисплеем, экран на секунду почернеет при загрузке — это нормально. Проверьте, что модуль загрузился:

journalctl -k -b | grep gpu_unlock

Затем повторите бенчмарки и сравните цифры.

Что нужно иметь в виду

  • Ноутбуки с отключением GPU в простое тихо сбрасывают разблокировку. Гибернация не поддерживается, хотя обычный сон работает нормально.
  • Карта будет греться сильнее, она ведь теперь работает на полную скорость. Но штатное троттлинг-ограничение NVIDIA продолжает действовать, так что до критических температур дело не дойдет.
  • Вернуться назад просто, уберите флаг из конфигурации GRUB и перезагрузитесь.
  • Для пользователей Ollama есть нюанс. Генерация токенов ограничена скоростью памяти, поэтому она не ускоряется вообще. Квантованные GGUF-модели в llama.cpp или Ollama дают от 0 до 15%, в основном на длинном контексте. Инструмент помогает больше всего при работе с неквантованными моделями, тонкой настройке или генерации изображений.
  • Безопасность. Для работы модуля потребуется отключить Secure Boot или подписать модуль вручную. Если вы не готовы к этому, то лучше не начинать.

Стоит ли оно того

Если серьезно занимаетесь локальными LLM, тонкой настройкой или генерацией изображений на RTX 30 серии, инструмент определенно заслуживает внимания. Прирост в 25–55% на обработке промптов и 30–55% на генерации изображений — это ощутимо, особенно когда речь идет о бесплатном апгрейде уже имеющегося железа.

Если же ваш сценарий — игры или генерация токенов в реальном времени, разблокировка не даст ничего. А учитывая экспериментальный статус и необходимость отключать Secure Boot, ставить ее на основную рабочую машину стоит только с пониманием рисков.

Для владельцев RTX 40 серии ситуация сложнее. Поддержка есть, но экспериментальная, и стабильность на всех моделях не гарантирована.

Часто задаваемые вопросы (FAQ)

Это разгон?

Нет. Разблокировка не повышает частоты и не добавляет вычислительных блоков. Она снимает программное ограничение, которое заставляло тензорные ядра работать вполсилы.

Результаты вычислений изменятся?

Нет. Выходные данные остаются бит-в-бит идентичными. Меняется только скорость.

Будет ли прирост в играх?

Нет. Игровая производительность не зависит от этих регистров. DLSS использует тензорные ядра, но независимых тестов, подтверждающих рост FPS, нет.

Почему генерация токенов не ускоряется?

Потому что она ограничена пропускной способностью видеопамяти, а не скоростью тензорных ядер. Разблокировка здесь ничем не поможет.

Можно ли использовать на Windows?

Официально — нет. Существуют экспериментальные сборки от сторонних разработчиков, но они поддерживают лишь конкретные комбинации GPU и материнских плат. Разработчик предупреждает об осторожности с другими Windows-инсталляторами.

Какие карты поддерживаются?

RTX 20, 30 и 40 серии. RTX 30 — стабильно, RTX 40 и 20 — экспериментально. RTX 50 не поддерживается.

Как откатить изменения?

Уберите gpu_unlock.targets=all из конфигурации GRUB и перезагрузитесь.

Что будем искать? Например,ChatGPT

Мы в социальных сетях