NVIDIA опубликовала исходный код модулей ядра графического процессора Linux с двойной лицензией GPL/MIT, начиная с версии драйвера R515. Исходный код этих модулей ядра располагается в репозитории NVIDIA Open GPU Kernel Modules на GitHub.
Это сделает использование графических процессоров NVIDIA в Linux более удобным, а также приведёт к более тесной интеграции с ОС и возможности отладки. Для поставщиков дистрибутивов Linux модули с открытым исходным кодом упрощают использование. Они также улучшают пользовательский интерфейс для подписи и распространения драйвера графического процессора NVIDIA. Canonical и SUSE могут сразу же упаковать открытые модули ядра в дистрибутивы Ubuntu и SUSE Linux Enterprise.
Разработчики могут отслеживать пути кода и видеть, как планирование событий ядра взаимодействует с их рабочей нагрузкой для более быстрой отладки. Кроме того, разработчики корпоративного программного обеспечения теперь могут беспрепятственно интегрировать драйвер в настроенное для своего проекта ядро Linux.
Это поможет улучшить качество и безопасность драйверов графических процессоров NVIDIA благодаря отзывам и комментариям сообщества пользователей Linux.
С каждым новым выпуском драйвера NVIDIA публикует исходный код на GitHub . Представленные сообществом исправления проверяются и, если они одобрены, интегрируются в будущие версии драйверов.
Поддерживаемый функционал
Первый выпуск открытых модулей ядра графического процессора — R515. Вместе с исходным кодом предоставляются полностью собранные и упакованные версии драйверов.
Код готов к работе для семейств архитектур NVIDIA Turing и NVIDIA Ampere. Это стало возможным благодаря поэтапному развертыванию архитектуры драйверов GSP в прошлом году, которая была разработана для упрощения перехода для клиентов NVIDIA. Компания сосредоточилась на тестировании самых разных рабочих нагрузок, чтобы обеспечить соответствие функций и производительности проприетарному драйверу режима ядра.
В будущем такие функции, как HMM, станут основополагающим компонентом конфиденциальных вычислений на архитектуре NVIDIA Hopper.
В этом выпуске с открытым исходным кодом находится альфа-версия поддержки графических процессоров GeForce и рабочих станций. Пользователи GeForce и рабочих станций могут использовать этот драйвер на графических процессорах с архитектурой Turing и NVIDIA Ampere для запуска компьютеров под Linux и использования таких функций, как несколько дисплеев, G-SYNC и трассировка лучей NVIDIA RTX в Vulkan и NVIDIA OptiX.
Более надежная и полнофункциональная поддержка GeForce и рабочих станций появится в последующих выпусках, а модули NVIDIA Open Kernel в конечном итоге заменят драйвер с закрытым исходным кодом.
Клиенты с графическими процессорами Turing и Ampere могут выбирать, какие модули устанавливать. Клиенты Pre-Turing продолжат использовать модули с закрытым исходным кодом.
Драйвер режима ядра с открытым исходным кодом работает с той же прошивкой и такими же стеками пользовательского режима, как CUDA, OpenGL и Vulkan. Однако все компоненты стека драйверов должны соответствовать версиям в пределах выпуска.
Установка согласия
Выпуск R515 содержит предварительно скомпилированные версии как драйвера с закрытым исходным кодом, так и модулей ядра с открытым исходным кодом. Эти версии являются взаимоисключающими, и пользователь может сделать выбор во время установки. Параметр по умолчанию гарантирует, что автоматическая установка выберет оптимальный путь для NVIDIA Volta и более старых графических процессоров по сравнению с графическими процессорами Turing+.
Пользователи могут создавать модули ядра из исходного кода и устанавливать их с соответствующими драйверами пользовательского режима.
Драйверы графических процессоров NVIDIA разрабатывались на протяжении многих лет для совместного использования кода между операционными системами, графическими процессорами и однокристальными системами Jetson для обеспечения единообразия работы на всех поддерживаемых платформах. Текущая кодовая база не соответствует соглашениям о проектировании ядра Linux и не подходит для исходной версии Linux. Планируется работать с сообществом ядра Linux и партнерами Canonical, Red Hat и SUSE.
Тем временем опубликованный исходный код служит справочным материалом для улучшения драйвера Nouveau. Nouveau может использовать ту же прошивку, что и драйвер NVIDIA, раскрывая многие функции графического процессора, такие как управление тактовой частотой и управление температурой, добавляя новые функции в драйвер Nouveau.