Кампанія NVIDIA адкрыла код відэадрайвераў для ядра Linux

Кампанія NVIDIA абвясціла аб адкрыцці зыходных тэкстаў усіх модуляў ядра, якія пастаўляюцца ў сваім наборы прапрыетарных відэадрайвераў. Код адчынены пад ліцэнзіямі MIT і GPLv2. Магчымасць зборкі модуляў забяспечана для архітэктур x86_64 і aarch64 на сістэмах з ядром Linux 3.10 і навейшымі выпускамі. Прашыўкі і выкарыстоўваюцца ў прасторы карыстальніка бібліятэкі, такія як стэкі CUDA, OpenGL і Vulkan, застаюцца прапрыетарнымі.

Чакаецца, што публікацыя кода прывядзе да істотнага падвышэння выгоды працы з GPU NVIDIA у Linux-сістэмах, узмоцніць інтэграцыю з аперацыйнай сістэмай, спросціць пастаўку драйвераў і адладку праблем. Аб фармаванні пакетаў на аснове адчыненых модуляў ужо заявілі распрацоўнікі Ubuntu і SUSE. Наяўнасць адчыненых модуляў таксама спросціць інтэграцыю драйвераў NVIDIA з сістэмамі на базе нестандартных кастамізаваных зборак ядра Linux. Для NVIDIA адкрыццё кода дапаможа падвысіць якасць і бяспека Linux-драйвераў за рахунак больш цеснага ўзаемадзеяння з супольнасцю і магчымасці іншага рэцэнзавання змен і правядзенні незалежнага аўдыту.

Адзначаецца, што прадстаўленая адчыненая кодавая база адначасова ўжываецца пры фармаванні прапрыетарных драйвераў, у прыватнасці выкарыстоўваецца ў апублікаванай сёння бэта-галінцы 515.43.04. Пры гэтым першасным з'яўляецца зачынены рэпазітар, а прапанаваная адчыненая кодавая база будзе абнаўляцца для кожнага выпуску прапрыетарных драйвераў у форме злепка пасля вызначанай апрацоўкі і чысткі. Гісторыя асобных змен не падаецца, толькі агульны коміт для кожнай версіі драйвера (у сапраўдны момант апублікаваны код модуляў для драйвера 515.43.04).

Тым не менш, прадстаўнікам супольнасці прадстаўлена магчымасць адпраўкі pull-запытаў для пасоўвання сваіх выпраўленняў і змен у код модуляў, але гэтыя змены не будуць адлюстроўвацца ў выглядзе асобных змен у адчыненым рэпазітары, а будуць спачатку інтэгравацца ў асноўны зачынены рэпазітар і толькі потым пераносіцца з астатнімі зменамі ў адкрыты. Для ўдзелу ў распрацоўцы патрабуецца падпісанне пагаднення аб перадачы кампаніі NVIDIA маёмасных правоў на код, які перадаецца (Contributor License Agreement).

Код модуляў ядра падзелены на дзве часткі: агульныя кампаненты не прывязаныя да аперацыйнай сістэмы і праслойка для ўзаемадзеяння з ядром Linux. Для скарачэння часу ўсталёўкі агульныя кампаненты па-ранейшаму пастаўляюцца ў прапрыетарных драйверах NVIDIA у форме ўжо сабранага бінарнага файла, а праслойка збіраецца на кожнай сістэме з улікам бягучай версіі ядра і наяўных налад. Прапануюцца наступныя модулі ядра: nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko і nvidia-uvm.ko (Unified Video Memory).

Падтрымка серыі GeForce і GPU для працоўных станцый адзначана як якая мае ўзровень якасці альфа-версіі, але для спецыялізаваных GPU на базе архітэктур NVIDIA Turing і NVIDIA Ampere, якія выкарыстоўваюцца ў датацэнтрах для паскарэння апрацоўкі інфармацыі і паралельных вылічэнняў (CUDA), забяспечана поўная падтрымка, цалкам пратэставаная і прыдатная для ўжывання ў працоўных праектах (адкрыты код ужо гатовы замяніць прапрыетарныя драйверы). Стабілізацыю падтрымкі GeForce і GPU для працоўных станцый плануюць ажыццявіць у наступных выпусках. У канчатковым рахунку ўзровень стабільнасці адчыненай кодавай базы будзе даведзены да стану прапрыетарных драйвераў.

У бягучым выглядзе ўключэнне апублікаваных модуляў у асноўны склад ядра немагчыма, бо яны не адпавядаюць патрабаванням ядра да стылю кадавання і дамовам па архітэктуры, але кампанія NVIDIA мае намер сумесна Canonical, Red Hat і SUSE заняцца рашэннем гэтага пытання і стабілізацыяй праграмных інтэрфейсаў драйвераў. Акрамя таго, апублікаваны код можа выкарыстоўвацца для паляпшэння ўваходнага ў ядро ​​адчыненага драйвера Nouveau, у якім выкарыстоўваюцца тыя ж прашыўкі да GPU, што і ў прапрыетарным драйверы.

Крыніца: opennet.ru

Дадаць каментар