Pilotes vidéo open source NVIDIA pour le noyau Linux

NVIDIA a annoncé que tous les modules du noyau inclus dans son ensemble de pilotes vidéo propriétaires sont open source. Le code est ouvert sous licences MIT et GPLv2. La possibilité de créer des modules est fournie pour les architectures x86_64 et aarch64 sur les systèmes dotés du noyau Linux 3.10 et des versions plus récentes. Les firmwares et bibliothèques utilisés dans l'espace utilisateur, tels que les piles CUDA, OpenGL et Vulkan, restent propriétaires.

On s'attend à ce que la publication du code entraîne une amélioration significative de la convivialité du travail avec les GPU NVIDIA sur les systèmes Linux, renforce l'intégration avec le système d'exploitation et simplifie la livraison des pilotes et le débogage des problèmes. Les développeurs d'Ubuntu et de SUSE ont déjà annoncé la formation de packages basés sur des modules ouverts. La présence de modules ouverts simplifiera également l'intégration des pilotes NVIDIA avec des systèmes basés sur des versions personnalisées non standard du noyau Linux. Pour NVIDIA, l'open source contribuera à améliorer la qualité et la sécurité des pilotes Linux grâce à une interaction plus étroite avec la communauté et à la possibilité d'un examen par un tiers des modifications et d'un audit indépendant.

Il est à noter que la base de code ouvert présentée est utilisée simultanément dans la formation de pilotes propriétaires, en particulier, elle est utilisée dans la branche bêta 515.43.04 publiée aujourd'hui. Dans ce cas, le principal est un référentiel fermé, et la base de code ouvert proposée sera mise à jour pour chaque version de pilotes propriétaires sous forme de cast après certains traitements et nettoyages. L'historique des modifications individuelles n'est pas fourni, seulement un commit général pour chaque version du pilote (actuellement le code des modules pour le pilote 515.43.04 est publié).

Cependant, les membres de la communauté ont la possibilité de soumettre des pull request pour pousser leurs correctifs et modifications dans le code du module, mais ces modifications ne seront pas reflétées comme des modifications distinctes dans le référentiel public, mais seront d'abord intégrées dans le référentiel privé principal. et ensuite seulement transféré avec le reste des modifications pour ouvrir. Pour participer au développement, vous devez signer un accord sur le transfert des droits de propriété sur le code transféré à NVIDIA (Contributor License Agreement).

Le code des modules du noyau est divisé en deux parties : des composants généraux non liés au système d'exploitation et une couche d'interaction avec le noyau Linux. Pour réduire le temps d'installation, les composants communs sont toujours fournis dans les pilotes propriétaires NVIDIA sous la forme d'un fichier binaire déjà assemblé, et la couche est assemblée sur chaque système, en tenant compte de la version actuelle du noyau et des paramètres existants. Les modules de noyau suivants sont proposés : nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko et nvidia-uvm.ko (Unified Video Memory).

La prise en charge des GPU des séries GeForce et des stations de travail est répertoriée comme qualité alpha, mais les GPU dédiés basés sur les architectures NVIDIA Turing et NVIDIA Ampere utilisées dans les architectures d'accélération informatique et de calcul parallèle (CUDA) des centres de données sont entièrement pris en charge et entièrement testés et adaptés à une utilisation en production. projets (l'open source est déjà prêt à remplacer les pilotes propriétaires). Une stabilisation du support GeForce et GPU pour les postes de travail est prévue pour les prochaines versions. A terme, le niveau de stabilité de la base de code open source sera porté au niveau des pilotes propriétaires.

Dans sa forme actuelle, l'inclusion de modules publiés dans le noyau principal est impossible, car ils ne respectent pas les exigences de style de codage et les conventions architecturales du noyau, mais NVIDIA a l'intention de travailler avec Canonical, Red Hat et SUSE pour résoudre ce problème et stabiliser les interfaces du logiciel pilote. De plus, le code publié peut être utilisé pour améliorer le pilote open source Nouveau inclus dans le noyau, qui utilise le même firmware GPU que le pilote propriétaire.

Source: opennet.ru

Ajouter un commentaire