Графиката на Nvidia Turing ще започне да използва отворени модули на ядрото  

NVIDIA драйвери за Linux

Преди няколко дни NVIDIA разкри новината, че в следващото издание на неговите драйвери Собственици на “NVIDIA 560”, отворените модули на ядрото на Linux ще се използват по подразбиране на системи с графични процесори, базирани на микроархитектурата Turing (GeForce GTX 1600 и RTX 2000) и по-нови версии.

С тази промяна, започвайки с тази версия отворените и патентованите модули не могат да се използват едновременно или да съществуват едновременно в една и съща файлова система. Тоест сега отворените модули могат да се използват само с GPU, които имат отделен GSP (GPU System Processor) микроконтролер, като микроархитектурите Turing, Ampere и Ada. За по-стари GPU без GSP, като тези, базирани на микроархитектури Maxwell, Pascal и Volta, все още се използват собствени модули.

Първата публикация беше актуализирана, за да се отбележи, че започвайки с версия 560, отворената версия на модулите на ядрото ще бъде инсталирана по подразбиране с помощта на файловия пакет .run, когато съответните графични процесори присъстват по време на инсталацията.

Също така се споменава, че Започвайки с пускането на драйверите „NVIDIA 560“, тази ситуация ще се промени: За GPU, базирани на Turing и по-нови, и за GPU виртуализация, започваща с Ada, отворете модулите на ядрото nvidia.ko, nvidia-modeset.ko, nvidia-uvm.ko, nvidia-drm.ko и nvidia-peermem.ko Те ще бъдат инсталирани по подразбиране, когато използването им е възможно.

Трябва да помните това Кодът на тези модули на NVIDIA беше отворен през 2022 г. под лицензите MIT и GPLv2 и се актуализира синхронно с всяка нова версия на патентованите драйвери. Досега, въпреки че бяха налични отворени модули, собствените драйвери на NVIDIA все още използваха собствени версии на модулите, които бяха разработени отделно, въпреки че споделяха обща кодова база.

NVIDIA направи този ход с цел значително подобряване на използваемостта на NVIDIA GPU на Linux системи и също така исках да засиля интеграцията с операционната система и да опростя доставката и отстраняването на грешки на драйвери.

Освен това NVIDIA искаше наличието на отворени модули Освен това ще улесни интегрирането на драйвери на NVIDIA със системи, базирани на персонализирани компилации на ядрото на Linux.. За NVIDIA отвореният код е канал, който ще помогне за подобряване на качеството и сигурността на драйверите за Linux чрез по-тясно взаимодействие с общността и способността за независим преглед и одит на промените.

Това Това се постига благодарение на сътрудничеството на членовете на общността, които имат възможност да изпращат заявки за изтегляне, за да допринесат със своите поправки и промени в кода на модула. Въпреки че тези промени няма да бъдат отразени веднага като отделни модификации в публичното хранилище, те първо ще бъдат интегрирани в основното частно хранилище и след тестване и одобрение ще бъдат прехвърлени заедно с други промени в публичното хранилище. За да участвате в разработката, е необходимо да подпишете споразумение за прехвърляне на правата на собственост върху предоставения на NVIDIA код (Contributor License Agreement).

Кодът на модула на ядрото е разделен на две части: общи компоненти, които не са обвързани с операционната система и слой за взаимодействие с Linux ядрото. За да намалите времето за инсталиране, Общите компоненти се доставят в собствени контролериs от NVIDIA под формата на предварително компилиран двоичен файл, докато специфичният за ядрото слой се компилира на всяка система въз основа на текущата версия на ядрото и съществуваща конфигурация. Наличните модули на ядрото включват: nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko и nvidia-uvm.ko (Unified Video Memory). Тези модули поддържат само графични процесори, базирани на микроархитектурите Turing и Ampere, пуснати от септември 2018 г.

И накрая, ако се интересувате от възможността да инсталирате собствените модули на ядрото, ще трябва да посочите опцията «–kernel-module-type=собствен» когато стартирате програмата за инсталиране на драйвери на NVIDIA. В бъдеще NVIDIA планира да спре да поддържа нови графични процесори в частни модули и да се съсредоточи изключително върху разработването на отворени модули.

Ако се интересувате да научите повече за това, можете да се консултирате с подробности в следваща връзка.