Ovladače videa NVIDIA s otevřeným zdrojovým kódem pro linuxové jádro

NVIDIA oznámila, že všechny moduly jádra zahrnuté v sadě proprietárních ovladačů videa jsou open source. Kód je otevřen pod licencí MIT a GPLv2. Možnost sestavovat moduly je poskytována pro architektury x86_64 a aarch64 na systémech s jádrem Linuxu 3.10 a novějšími verzemi. Firmware a knihovny používané v uživatelském prostoru, jako jsou zásobníky CUDA, OpenGL a Vulkan, zůstávají proprietární.

Očekává se, že zveřejnění kódu povede k výraznému zvýšení použitelnosti GPU NVIDIA na systémech Linux, posílí integraci s operačním systémem a zjednoduší dodávání ovladačů a ladění problémů. Vývojáři Ubuntu a SUSE již oznámili vytvoření balíčků založených na otevřených modulech. Přítomnost otevřených modulů také zjednoduší integraci ovladačů NVIDIA se systémy založenými na nestandardních vlastních sestaveních linuxového jádra. Pro NVIDIA pomůže open source zlepšit kvalitu a bezpečnost linuxových ovladačů díky užší interakci s komunitou a možnosti kontroly změn třetí stranou a nezávislého auditu.

Je třeba poznamenat, že prezentovaná základna otevřeného kódu se současně používá při vytváření proprietárních ovladačů, zejména se používá v dnes zveřejněné beta větvi 515.43.04. V tomto případě je primárním úložištěm uzavřené úložiště a navrhovaná otevřená kódová základna bude aktualizována pro každé vydání proprietárních ovladačů ve formě přetypování po určitém zpracování a vyčištění. Není uvedena historie jednotlivých změn, pouze obecný commit pro každou verzi ovladače (aktuálně je zveřejněn kód modulů pro ovladač 515.43.04).

Členové komunity však dostanou příležitost zasílat žádosti o stažení, aby vložili své opravy a změny do kódu modulu, ale tyto změny se neprojeví jako samostatné změny ve veřejném úložišti, ale budou nejprve integrovány do hlavního soukromého úložiště. a teprve poté se přenese se zbytkem změn na open. Chcete-li se podílet na vývoji, musíte podepsat smlouvu o převodu vlastnických práv k převedenému kódu společnosti NVIDIA (Contributor License Agreement).

Kód jaderných modulů je rozdělen na dvě části: obecné komponenty nevázané na operační systém a vrstvu pro interakci s linuxovým jádrem. Pro zkrácení doby instalace jsou běžné komponenty stále dodávány v proprietárních ovladačích NVIDIA ve formě již sestaveného binárního souboru a vrstva je sestavena na každém systému s přihlédnutím k aktuální verzi jádra a stávajícímu nastavení. Nabízeny jsou následující moduly jádra: nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko a nvidia-uvm.ko (Unified Video Memory).

Podpora GPU řady GeForce a pracovní stanice je uvedena jako alfa kvalita, ale vyhrazené GPU založené na architekturách NVIDIA Turing a NVIDIA Ampere používané v architekturách akcelerace výpočetní techniky datových center a paralelních výpočtů (CUDA) jsou plně podporovány a plně testovány. a vhodné pro použití v produkci projekty (open source je již připraven nahradit proprietární ovladače). V budoucích verzích se plánuje stabilizace podpory GeForce a GPU pro pracovní stanice. V konečném důsledku se úroveň stability základny open source kódu dostane na úroveň proprietárních ovladačů.

V současné podobě je zahrnutí publikovaných modulů do hlavního jádra nemožné, protože nesplňují požadavky na styl kódování jádra a architektonické konvence, ale NVIDIA hodlá spolupracovat s Canonical, Red Hat a SUSE na vyřešení tohoto problému a stabilizovat softwarová rozhraní ovladače. Publikovaný kód lze navíc použít k vylepšení open-source ovladače Nouveau obsaženého v jádře, který používá stejný firmware GPU jako proprietární ovladač.

Zdroj: opennet.ru

Přidat komentář