Снятие ограничений производительности тензорных ядер
Серия проектов с открытым исходным кодом выявила наличие преднамеренных программных ограничений в видеокартах NVIDIA GeForce (серии RTX 20, 30 и 40), из-за которых тензорные ядра работают на половине своей максимальной скорости при выполнении определенных вычислений, основанных на накоплении точности FP32. Это ограничение, программно навязываемое NVIDIA для разграничения игровых видеокарт и профессиональных рабочих станций, снижает эффективность карт в задачах обучения моделей искусственного интеллекта и инференса.
Как работают модификации?
Инициатива началась с пользователя GitHub под ником Zagitta, который разработал модуль ядра Linux под названием gpu-unlock. Этот инструмент работает до загрузки официальных драйверов NVIDIA, перезаписывая регистры выбора скорости в видеокарте и сбрасывая их настройки. Поскольку модификация выполняется на уровне ядра, она не требует изменения VBIOS или внесения постоянных правок в драйверы.
Тесты на видеокарте RTX 3090 Ti показали заметный рост производительности обработки матриц: скорость обработки BF16 выросла с 87,5 до 157,4 TFLOPS, а производительность TF32 увеличилась почти вдвое. Эти решения также были адаптированы для других поколений, таких как gpu-unlock-ada для серии RTX 40 и turing-unlock для серии RTX 20.
Что практически меняется для пользователей?
- Повышение производительности: Пользователи получают преимущество в основном в задачах генерации изображений и тонкой настройки (Fine-tuning) моделей, так как эти задачи интенсивно используют вычисления FP32-accumulate.
- Ограниченная польза для игр: Геймеры не заметят никакой разницы в производительности, поскольку игры не полагаются на этот тип интенсивных вычислений тензорных ядер.
- Чат-приложения: Скорость генерации текста (Token speed) не демонстрирует значительного улучшения, так как она в первую очередь ограничена пропускной способностью памяти (Memory Bandwidth), а не «сырой» вычислительной мощностью.
Важные соображения и риски
Хотя разработчики отмечают, что механизмы защиты от перегрева и контроля питания видеокарты остаются активными, существуют предупреждения о том, что работа тензорных ядер на полную мощность может привести к высокому энергопотреблению, что вызывает опасения по поводу стабильности оборудования в долгосрочной перспективе. Кроме того, текущая поддержка почти полностью ограничена средой Linux, с очень ограниченными экспериментами на Windows.