В мае 2022 года Nvidia выпустила набор модулей ядра графического процессора Linux с драйвером R515 с открытым исходным кодом и двойной лицензией GPL и MIT. Первоначальный выпуск был ориентирован на вычислительные графические процессоры центров обработки данных, а теперь внедряется полнофункциональная поддержка GeForce и Workstation Linux. Модули Open Kernel в конечном итоге заменят драйвер с закрытым исходным кодом.
![](https://habrastorage.org/getpro/habr/upload_files/d7a/344/862/d7a34486260dc4cd98531821c10322e6.png)
Графические процессоры компании имеют общую архитектуру драйверов и набор возможностей. Два года в 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".
![](https://habrastorage.org/getpro/habr/upload_files/3af/a33/2bc/3afa332bc9d4ad774cfdea84cbc3132a.png)
![](https://habrastorage.org/getpro/habr/upload_files/bdf/7f9/e6c/bdf7f9e6c183e1fb98a054c0fea02354.png)
Если требуется установить проприетарные модули ядра, нужно указать опцию "--kernel-module-type=proprietary" при запуске run-архива с драйверами, либо изменить параметры по умолчанию в интерфейсе установщика. Кроме того, отдельно доступен пакет nvidia-driver-assistant, упрощающий выбор оптимального варианта модулей ядра.