NVIDIA a annoncé la publication en open source de tous les modules noyau inclus dans sa suite de pilotes vidéo propriétaires. Le code est distribué sous les licences MIT et GPLv2. Les modules peuvent être compilés pour les architectures x86_64 et aarch64 sur les systèmes exécutant le noyau. Linux Version 3.10 et ultérieures. Le firmware et les bibliothèques espace utilisateur, telles que les piles CUDA, OpenGL et Vulkan, restent propriétaires.
La publication de ce code devrait améliorer considérablement la facilité d'utilisation des GPU NVIDIA. Linux-systems renforcera l'intégration avec le système d'exploitation et simplifiera la distribution et le débogage des pilotes. Les développeurs ont déjà annoncé la création de paquets basés sur des modules ouverts. Ubuntu et SUSE. La disponibilité de modules ouverts simplifiera également l'intégration des pilotes NVIDIA avec les systèmes basés sur des noyaux non standard et personnalisés. LinuxPour NVIDIA, l'open source contribuera à améliorer la qualité et la sécurité. Linux- les conducteurs grâce à une interaction plus étroite avec la communauté et à la possibilité d'un examen des changements par un tiers 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 du module noyau est divisé en deux parties : des composants communs non liés au système d’exploitation et une couche permettant d’interagir avec le noyau. LinuxPour réduire le temps d'installation, les composants communs sont toujours fournis sous forme de fichiers binaires précompilés dans les pilotes propriétaires NVIDIA. L'interface intermédiaire est ensuite compilée sur chaque système en fonction de la version du noyau et des paramètres existants. Les modules noyau suivants sont disponibles : nvidia.ko, nvidia-drm.ko (Gestionnaire de rendu direct), nvidia-modeset.ko et nvidia-uvm.ko (Mémoire vidéo unifiée).
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
