NVIDIA видео драйвери с отворен код за ядрото на Linux

NVIDIA обяви, че всички модули на ядрото, включени в нейния набор от собствени видео драйвери, са с отворен код. Кодът е отворен под лицензи MIT и GPLv2. Възможността за изграждане на модули е предоставена за x86_64 и aarch64 архитектури на системи с Linux ядро ​​3.10 и по-нови версии. Фърмуерът и библиотеките, използвани в потребителското пространство, като стекове CUDA, OpenGL и Vulkan, остават патентовани.

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

Отбелязва се, че представената база с отворен код се използва едновременно при формирането на патентовани драйвери, по-специално, тя се използва в бета клона 515.43.04, публикуван днес. В този случай основното е затворено хранилище, а предложената база с отворен код ще бъде актуализирана за всяко издание на патентовани драйвери под формата на каст след определена обработка и почистване. Историята на отделните промени не е предоставена, само общ ангажимент за всяка версия на драйвера (в момента се публикува кодът на модулите за драйвер 515.43.04).

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

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

Серията GeForce и поддръжката на графични процесори за работни станции са посочени като алфа качество, но специализираните графични процесори, базирани на архитектурите NVIDIA Turing и NVIDIA Ampere, използвани в архитектурите за ускоряване на изчисленията в центъра за данни и паралелните изчисления (CUDA), са напълно поддържани и напълно тествани и подходящи за използване в производството проекти (с отворен код вече е готов да замени патентовани драйвери). Стабилизирането на поддръжката на GeForce и GPU за работни станции е планирано за бъдещи версии. В крайна сметка нивото на стабилност на базата с отворен код ще бъде доведено до нивото на патентовани драйвери.

В сегашната си форма включването на публикувани модули в основното ядро ​​е невъзможно, тъй като те не отговарят на изискванията за стил на кодиране на ядрото и архитектурните конвенции, но NVIDIA възнамерява да работи заедно с Canonical, Red Hat и SUSE, за да разреши този проблем и стабилизиране на софтуерните интерфейси на драйвера. В допълнение, публикуваният код може да се използва за подобряване на драйвера Nouveau с отворен код, включен в ядрото, който използва същия фърмуер на GPU като патентования драйвер.

Източник: opennet.ru

Добавяне на нов коментар