Энтузиасты сняли искусственное ограничение NVIDIA и ускорили видеокарты GeForce RTX 30 почти в 2 раза
Сообщество разработчиков и специалистов по машинному обучению обнаружило факт намеренного программного замедления потребительских видеокарт серии GeForce RTX 30 со стороны компании NVIDIA. В ходе анализа микроархитектуры Ampere выяснилось, что производитель аппаратно сохранил высокий потенциал кремния, но искусственно ограничил темп выдачи вычислительных инструкций форматов BF16 и FP16 на чипах GA102, GA103, GA104 и GA106. Подобный шаг позволил компании провести жесткую границу между игровыми графическими процессорами и дорогими серверными ускорителями для рабочих станций.
Искусственный барьер затрагивает операции тензорных ядер и не имеет отношения к физическому браку кремниевых пластин или аппаратной отбраковке кристаллов на заводах. Дополнительную вычислительную производительность калифорнийский гигант заблокировал исключительно на программном уровне через инициализацию ядра и параметры официального драйвера. На площадке GitHub появились независимые проекты gpu-unlock и Windows-GPU-UNLOCK, авторы которых разработали способ снятия блокировки без модификации прошивки VBIOS и без редактирования исполняемых файлов системы.
Принцип работы обхода заключается во внедрении специального модуля инициализации в операционную систему Linux через ранний образ initramfs либо через отдельное предзагрузочное приложение UEFI на компьютерах под управлением Windows. Утилита перезаписывает селекторы рабочей скорости SS0 и SS1 непосредственно перед тем, как стандартный драйвер NVIDIA перехватывает управление графическим адаптером. В итоге система распознает потребительскую карту с параметрами профессионального ускорителя уровня RTX A6000 и активирует полноценный темп математических операций.
То же самое происходит и с серией 50. Это не секрет и вполне очевидно, если посмотреть на маркетинговые материалы рабочих станций NVIDIA в сравнении с потребительскими GPU. По сути этот метод разблокирует производительность 3090 до уровня рабочих станций. - comfyanonymous, разработчик ComfyOrg
Практические замеры в тестовых пакетах и рабочих нагрузках подтвердили существенный скачок быстродействия. В вычислениях GEMM матриц размером 8192 на 8192 элемента на флагманской видеокарте GeForce RTX 3090 Ti скорость операций формата BF16 увеличилась с 87.50 до 157.41 терафлопс, а в режиме TF32 показатель поднялся с 42.58 до 82.61 терафлопс. В среде Windows модель GeForce RTX 3090 продемонстрировала рост скорости тензорных вычислений BF16 с 70.52 до 128.69 терафлопс, что составило более 82 процентов чистой прибавки.
Владельцы более доступных решений среднего уровня также зафиксировали заметное ускорение после применения модификации. На графическом адаптере GeForce RTX 3060 в процессах генерации нейросетевых изображений прирост скорости составил 30 процентов. При этом классическая игровая производительность в вычислениях стандартной одинарной точности FP32 осталась без изменений, поскольку манипуляции затрагивают только тензорный конвейер и операции пониженной разрядности.
Создатели модификации напоминают о технических сложностях и юридических рисках процедуры. Пункт 2.6 официального лицензионного соглашения на программное обеспечение NVIDIA прямо запрещает обход технических ограничений драйверов. Кроме того, текущая реализация требует отключения безопасной загрузки Secure Boot, индивидуальной настройки системных разделов и прямого входа в операционную систему через меню загрузчика без промежуточной перезагрузки.