Инженеры из компании NVIDIA опубликовали заметку, резюмирующую планы в отношении перевода проприетарных драйверов NVIDIA на использование по умолчанию открытых модулей ядра Linux для GPU, начиная с микроархитектуры Turing (GeForce GTX 1600 и RTX 2000). Используемые в драйверах NVIDIA модули для ядра Linux были открыты весной 2022 года под лицензиями MIT и GPLv2, а план по использованию их по умолчанию был анонсирован два месяца назад. Речь только о переключении основного пакета драйверов по умолчанию на уже существующие открытые модули, которые ранее поставлялись в качестве опции. Предоставляющие основную функциональность прошивки и компоненты, работающие в пространстве пользователя, такие как библиотеки для CUDA, OpenGL и Vulkan, остаются проприетарными.
До сих пор в состав проприетарных драйверов входили как открытые, так и проприетарные варианты модулей, которые обновлялись синхронно, но по умолчанию использовались проприетарные модули. Отличие доступных вариантов сводится к тому, что открытые модули могут использоваться только с GPU, оснащёнными отдельным микроконтроллером GSP (GPU System Processor), использование которого позволило вынести операции инициализации и управления GPU из драйвера на уровень проприетарной прошивки. GSP поставляется в видеокартах на базе таких микроархитектур, как Turing, Ampere, Ada и Hopper.
В проприетарных модулях, помимо новых GPU, продолжает сохраняться и поддержка старых GPU, не оснащённых GSP, например, GPU на базе микроархитектур Maxwell, Pascal и Volta. Компания NVIDIA намерена прекратить реализацию поддержки новых GPU в проприетарных модулях и сосредоточиться только на развитии открытых. Например, в открытых модулях уже доступна поддержка новых платформ NVIDIA Grace Hopper и NVIDIA Blackwell, которые не поддерживаются в проприетарных модулях.
В выпуске драйверов NVIDIA 560 для обычных GPU начиная с Turing, а при виртуализации GPU, начиная с Ada, по умолчанию начнут устанавливаться открытые варианты модулей ядра nvidia.ko, nvidia-modeset.ko, nvidia-uvm.ko, nvidia-drm.ko и nvidia-peermem.ko, в ситуациях когда их применение возможно. В дистрибутивах Ubuntu, Debian, SUSE и openSUSE для установки варианта драйверов NVIDIA на базе открытых модулей рекомендуется использовать пакет “nvidia-open”, а в дистрибутивах на базе RHEL – модуль “nvidia-driver:open-dkms”.
При желании установить в систему проприетарные модули ядра потребуется указание опции “–kernel-module-type=proprietary” при запуске run-архива с драйверами NVIDIA.