Nvidia fait le premier pas vers les pilotes de GPU Linux open source

Agrandir / Le RTX 3080Ti.

Sam Machkovech

Après des années d’allusions, Nvidia a annoncé hier qu’elle serait en open source pour une partie de son pilote GPU Linux, comme Intel et AMD le font depuis des années maintenant. Auparavant, les utilisateurs de Linux qui voulaient éviter le pilote propriétaire de Nvidia devaient s’appuyer sur des logiciels de rétro-ingénierie comme le projet Nouveau, qui fonctionnaient mieux sur du matériel plus ancien et offraient au mieux une prise en charge incomplète de toutes les fonctionnalités GPU de Nvidia.

« Cette version est une étape importante vers l’amélioration de l’expérience d’utilisation des GPU NVIDIA sous Linux, pour une intégration plus étroite avec le système d’exploitation, et pour que les développeurs déboguent, intègrent et contribuent en retour », indique un article de blog attribué à plusieurs employés de Nvidia. « Pour les fournisseurs de distribution Linux, les modules open source augmentent la facilité d’utilisation. Ils améliorent également l’expérience utilisateur prête à l’emploi pour signer et distribuer le pilote NVIDIA GPU. Canonical et SUSE sont en mesure de conditionner immédiatement les modules de noyau ouverts avec Distributions d’entreprise Ubuntu et SUSE Linux. »

Nvidia publie spécifiquement un pilote de noyau open source sous une double licence MIT/GPL et est ne pas actuellement des parties open source du pilote qui s’exécutent dans l’espace utilisateur. Cela inclut les pilotes pour OpenGL, Vulkan, OpenCL et CUDA, qui sont toujours à source fermée, en plus du micrologiciel du processeur système GPU (GSP). Nvidia dit que ces pilotes « resteront à source fermée et publiés avec des binaires pré-construits », il ne semble donc pas qu’il y ait des plans immédiats pour publier des versions open source.

Nvidia est toujours derrière Intel et AMD en ce qui concerne les pilotes GPU open source – les deux sociétés maintiennent des pilotes de noyau et d’espace utilisateur open source, ainsi que des micrologiciels à source fermée. Mais c’est un premier pas vers la parité open source pour les packages de pilotes Linux de Nvidia.

Les pilotes open source de Nvidia ne prennent en charge que les GPU basés sur Turing de la société et plus récents, y compris la série GeForce GTX 1600, les séries RTX 2000 et 3000 et les GPU de station de travail Quadro basés sur la même architecture. Les pilotes propriétaires de la société remontent à l’architecture Kepler de 2012.

Les pilotes open source ne seront pas non plus intégrés en amont dans le noyau Linux, car, comme le rapporte Phoronix, l’API, l’ABI et l’interface entre le pilote du noyau et l’interface du micrologiciel GSP n’ont pas été finalisées. Cela signifie que tout, du micrologiciel au pilote du noyau en passant par les pilotes de l’espace utilisateur, doit correspondre aux versions pour fonctionner correctement (la version d’aujourd’hui est la version R515.43.04). Une fois ces interfaces finalisées, le pilote peut être intégré en amont dans le noyau, et différentes versions du micrologiciel, du pilote du noyau et des pilotes de l’espace utilisateur doivent pouvoir interagir.

Nvidia indique que la prise en charge de ses GPU de centre de données dans les pilotes actuels est « prête pour la production » dans cette version initiale, mais que la prise en charge de GeForce, Quadro et d’autres GPU grand public est de « qualité alpha » – ce n’est pas un logiciel que vous voudrez précipitez-vous pour l’installer à moins que vous ne vouliez lancer ses pneus sur un système de banc d’essai ou contribuer vous-même au code.

Hector Martin, l’un des développeurs de la distribution Asahi Linux, critiqué Nvidia pour avoir déplacé de nombreuses fonctions dans son micrologiciel à source fermée, que le pilote open source appelle ensuite. Martin appels le pilote open source « une victoire nette à des fins pratiques » puisque la goutte de code propriétaire peut être mise en bac à sable plus facilement. « Mais aucune liberté n’a été acquise, pour les gens qui s’en soucient », écrit-il. « [About] la même quantité de code est fermée [as before]. »

Source-147