Модуль ядра разблокирует на GeForce RTX 30 удвоенную скорость FP/BF16, как у профессиональных карт
GPU-unlock: FP/BF16 instruction issue rate on Nvidia 3000's cards
Linux-модуль gpu_unlock объединяет технику CMP-разблокировки V67/PLM с таймингом UEFI-подхода: он запускается в initramfs до того, как драйвер NVIDIA захватит карту, записывает селекторы скорости SS0 и SS1 и делает FLR. На GA102–GA106 это удваивает скорость выдачи инструкций FP/BF16 FMA в FP32. На 3090 Ti в GEMM 8192³ BF16 вырос с 87,5 до 157,4 TFLOPS, TF32 — с 42,6 до 82,6 TFLOPS. Патчить драйвер при каждом обновлении не нужно.
Эффект этой разблокировки в том, что она удваивает скорость выдачи инструкций FP/BF16 FMA в операции FP32 на картах GA102, GA103, GA104 и GA106.
- Zagitta
Привет, это моя работа, хотя эксплойты и прочее — вовсе не мои идеи.
Это просто способ упаковать всё это в гораздо менее раздражающую форму, чем необходимость патчить драйвер nvidia. Изначально меня вдохновили разблокировки CMP90/50 для Windows, которые работают как отдельные UEFI-модули, загружающие ОС по цепочке.
Готов отвечать на вопросы!
- jacquesm
Это реально, но есть некоторые оговорки:
- вам придётся гонять карту при более высокой температуре, чем вам, возможно, комфортно
- реальная отдача (на некоторых картах, видимо, см. ниже в ветке) требует увеличения максимальной мощности до 450 Вт
- это значительно выше того, на что рассчитан штатный кулер, так что дополнительное охлаждение не помешает
Что приятно, этот мод можно наложить поверх (точнее, под — этот загружается первым) p2p-мода, который существует уже давно, похоже, они не мешают друг другу.
- Tiberium
Я сам протестировал, и результаты законные, это невероятно, хоть и немного рискованно (полагается на эксплуатацию прошивки): https://github.com/Zagitta/gpu-unlock/blob/main/docs/How%20A...
> К несчастью для Nvidia, загрузчик уязвим к классическому переполнению буфера, которое пишет прямо в стек, что даёт нам возможность выполнять код через Return Oriented Programming (ROP).
Репозиторий для RTX 4090 и 4070 Ti Super: https://github.com/JustAResearcher/gpu-unlock-ada
- gawacer
круто
- Scene_Cast2
Действительно интересно.
С другой стороны, это применимо лишь к ограниченному набору нагрузок (например, обучение часто ограничено пропускной способностью памяти).
Ещё мне интересно, как это влияет на энергопотребление.