Nvidia переходит на модули ядра графического процессора с открытым исходным кодом
В мае 2022 года Nvidia выпустила набор модулей ядра графического процессора Linux с драйвером R515 с открытым исходным кодом и двойной лицензией GPL и MIT. Первоначальный выпуск был ориентирован на вычислительные графические процессоры центров обработки данных, а теперь внедряется полнофункциональная поддержка GeForce и Workstation Linux. Модули Open Kernel в конечном итоге заменят драйвер с закрытым исходным кодом.
Графические процессоры компании имеют общую архитектуру драйверов и набор возможностей. Два года в Nvidia добивались эквивалентной или более высокой производительности приложений с помощью модулей ядра графического процессора с открытым исходным кодом и смогли добавить новые возможности:
поддержку управления гетерогенной памятью (HMM);
конфиденциальные вычисления;
согласованную архитектуру памяти платформ Grace.
В настоящее время происходит полный переход на модули ядра графического процессора с открытым исходным кодом, а изменение внедрят в предстоящем выпуске драйвера R560.
Для передовых платформ, таких как Grace Hopper или Blackwell, необходимо использовать модули ядра графического процессора с открытым исходным кодом. Проприетарные драйверы на них не поддерживаются. Для новых графических процессоров архитектур Turing, Ampere, Ada Lovelace или Hopper NVIDIA также рекомендуется перейти на модули ядра графического процессора с открытым исходным кодом. Однако в случае с более старыми GPU архитектур Maxwell, Pascal или Volta придётся продолжать использовать проприетарный драйвер. В смешанных системах со старыми и новыми графическими процессорами потребуется собственный драйвер.
Nvidia предоставляет новый вспомогательный сценарий обнаружения, который поможет выбрать драйвер.
Как правило, версия драйвера по умолчанию, устанавливаемая всеми способами установки, переключается с проприетарного драйвера на открытый. Есть несколько конкретных сценариев, которые заслуживают особого внимания:
менеджеры пакетов с метапакетом CUDA;
Runfile;
помощник по установке скрипта;
Package manager details;
подсистема Windows для Linux;
инструментарий CUDA.
В выпуске драйверов 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-open", а в дистрибутивах на базе RHEL - модуль "nvidia-driver:open-dkms".
Если требуется установить проприетарные модули ядра, нужно указать опцию "--kernel-module-type=proprietary" при запуске run-архива с драйверами, либо изменить параметры по умолчанию в интерфейсе установщика. Кроме того, отдельно доступен пакет nvidia-driver-assistant, упрощающий выбор оптимального варианта модулей ядра.