1 pièce(s) jointe(s)
Le passage de Nvidia à l'open source est officiel
Le passage de Nvidia à l'open source est officiel, la société publie des modules du noyau GPU de Linux en open source avec une double licence GPL/MIT
pour améliorer le support des GPU sous Linux
Nvidia annonce de manière inattendue des modules de noyau GPU à code source ouvert. L'entreprise a annoncé mercredi qu'elle allait mettre en libre accès les pilotes Linux de ses GPU, à partir de la version R515, en utilisant une double licence GPL et MIT. Elle a annoncé que le code source des modules du noyau sera disponible dans un référentiel nommé "NVIDIA Open GPU Kernel Modules" sur GitHub, mais que pour l'instant, seul le code pour les GPU des centres de données est considéré comme prêt pour la production. Les GPU GeForce et Workstation sont considérés comme étant de "qualité alpha" pour le moment.
Nvidia adopte enfin l'open source. En effet, ces deux dernières décennies, Nvidia a offert un excellent support des pilotes Linux avec sa pile de pilotes propriétaires. Mais avec le succès de l'effort d'AMD en matière de pilotes open source qui dure depuis plus d'une décennie, beaucoup ont demandé à Nvidia d'ouvrir le code source de ses pilotes. Leur logiciel d'espace utilisateur reste fermé, mais depuis ce mercredi 11 mai, ils ont officiellement ouvert le code source de leurs modules de noyau de GPU Linux. Dans un billet de blogue publié hier, la société a annoncé qu'elle ouvrait le code source à partir de la version du pilote R515.
Nvidia a déclaré que le code est actuellement prêt à être utilisé pour les GPU des centres de données des familles Turing et Ampere, pour donner suite au déploiement progressif de l'architecture du pilote GSP au cours de l'année dernière. Il a été testé sur une grande variété de charges de travail afin d'assurer la parité des fonctionnalités et des performances avec le pilote propriétaire en mode noyau, mais il apporte également de nouvelles fonctionnalités, telles que le cadre DMA-BUF pour le partage des tampons entre les périphériques et les sous-systèmes, qui prendra tout son sens avec l'architecture Hopper.
Toute personne utilisant des GPU avec une architecture antérieure à Turing devra continuer à utiliser les anciens pilotes propriétaires. Il est clair que l'un des principaux objectifs de Nvidia en ouvrant le code source de ces pilotes est d'améliorer le support des GPU et la fonctionnalité pour les superordinateurs et les grandes installations de centres de données. Tous les grands superordinateurs fonctionnent sous une version de Linux, ou presque, et le fait d'avoir des pilotes à code source fermé n'est probablement pas du goût des personnes responsables de ces installations.
Pour les particuliers, le tableau n'est pas aussi rose pour le moment, car seul le module noyau monolithique propriétaire et déprécié est considéré comme n'étant pas de qualité Alpha. Selon Nvidia, des améliorations sont prévues tout au long de l'année. Le nouveau pilote open source fonctionne avec le même micrologiciel que le pilote précédent, et les mêmes piles en mode utilisateur telles que CUDA, OpenGL et Vulkan. En outre, la société a déclaré que les correctifs soumis par la communauté seront pris en compte pour être intégrés dans les futures versions du pilote.
Grâce à la disponibilité de paquets entièrement construits et du code source, les gestionnaires de distributions pourront plus facilement inclure les pilotes dans leurs dépôts de logiciels. Canonical (fabricant d'Ubuntu) et SUSE sont cités parmi les développeurs qui peuvent désormais intégrer les modules ouverts du noyau dans leurs distributions. « Les nouveaux modules GPU open source de Nvidia simplifieront les installations et renforceront la sécurité des utilisateurs d'Ubuntu, qu'il s'agisse de développeurs AI/ML, de joueurs ou d'utilisateurs de cloud computing », a déclaré Cindy Goldberg, VP Silicon alliances chez Canonical.
Les nouveaux pilotes devraient faire leur chemin dans Ubuntu 22.04 LTS de Canonical dans les prochains mois. Nvidia a travaillé avec Canonical et SUSE, ainsi qu'avec Red Hat, pour améliorer le déploiement des paquets et créer de meilleurs modèles de support pour les clients. Fournissant plus de contexte, le directeur de Red Hat, Christian Schaller, a déclaré dans un billet de blogue que les mainteneurs du pilote Nouveau (un projet visant à produire des pilotes libres pour les cartes graphiques Nvidia par rétro-ingénierie) et du noyau avaient rencontré Nvidia au cours du dernier mois.
« Il ne s'agit que de la partie noyau, une grande partie d'un pilote graphique moderne se trouve dans le micrologiciel et les composants de l'espace utilisateur et ceux-ci sont toujours fermés. Mais cela signifie que nous avons maintenant un pilote de noyau Nvidia qui va commencer à être capable de consommer les API sous licence GPL uniquement dans le noyau Linux, bien que cette version initiale ne consomme aucune API que l'ancien pilote n'utilisait pas déjà », a écrit Schaller. Ce dernier a ajouté que le binaire Nvidia existant et le pilote Nouveau resteraient en place, même lorsque le nouveau pilote open source sera développé.
« Dans l'immédiat, à court terme, cela n'aura pas un impact majeur. Mais au fil du temps, il offre un moyen de simplifier radicalement la prise en charge du matériel Nvidia. À long terme, nous espérons être en mesure d'obtenir une expérience similaire avec le matériel Nvidia à celle que nous pouvons offrir aujourd'hui avec le matériel Intel et AMD, en matière de fonctionnalités prêtes à l'emploi. Cela signifie un support au jour le jour pour les nouveaux chipsets, un pilote Mesa open source de haute performance pur Nvidia et cela nous permettra de signer le pilote Nvidia avec le reste du noyau pour permettre des choses comme le support de secureboot », a déclaré Schaller.
L'état du support Nvidia pour Linux est un problème de longue date. En 2012, Linus Torvalds, créateur du noyau Linux, a déclaré que Nvidia était « la pire entreprise avec laquelle nous ayons jamais traité », avant de lui faire un doigt d'honneur. Pour l'instant, ce changement ne concerne que Linux, au moins à partir de la branche R515. En ce qui concerne le support de FreeBSD, rien n'a été annoncé. Rappelons que Nvidia supporte depuis longtemps les systèmes BSD avec son pilote propriétaire et que ce code open source est suffisamment portable pour fonctionner sur tous les BSD.
En somme, c'est l'étape actuelle des efforts de Nvidia en matière de pilote de noyau open source. Cependant, plusieurs sources rapportent que Nvidia a laissé entendre mercredi : « ces modules de noyau ouverts hors arbre ne sont qu'une étape vers un meilleur support de Linux ».
Sources : référentiel GitHub NVIDIA Open GPU Kernel Modules, Nvidia, Christian Schaller
Et vous ?
:fleche: Quel est votre avis sur le sujet ?
:fleche: Que pensez-vous de l'initiative de Nvidia d'ouvrir ses pilote en open source ?
:fleche: Selon vous, en quoi cela pourrait impacter l'avenir des pilotes de cartes graphiques sur Linux ?
Voir aussi
:fleche: Le limiteur Nvidia LHR officiellement craqué, apportant la pleine vitesse aux opérations de minage sur Windows et Linux
:fleche: Nouveau, le pilote NVIDIA libre pour Linux, s’ouvre à CUDA
:fleche: Nvidia et Valve apportent le DLSS, cette technologie permet aux gamers d'obtenir plus de performances sous Linux, Nvidia contre AMD sous Linux pour le bien de la communauté
6 pièce(s) jointe(s)
NVIDIA s'oriente entièrement vers des modules de noyau GPU open source
NVIDIA passe entièrement aux modules de noyau GPU Linux open source, suite à l'amélioration des performances des applications et les nouvelles capacités substantielles avec les noyau GPU open source.
NVIDIA annonce la transition complète vers les modules GPU kernel open source, après avoir obtenu des performances applicatives équivalentes ou supérieures avec ses modules de noyau GPU open source. Elle effectuera ce changement dans la prochaine version du pilote R560.
Nvidia est une société multinationale et technologique américaine qui conçoit et fournit des processeurs graphiques (GPU). La gamme professionnelle de GPU de Nvidia est utilisée pour l'informatique de bout en bout et dans les superordinateurs et les stations de travail pour des applications dans différents domaines. Outre la conception et la fabrication de GPU, Nvidia fournit la plateforme logicielle et l'API CUDA qui permettent la création de programmes massivement parallèles utilisant les GPU.
Jusqu'à 2013, Nvidia n'avait publié aucune documentation sur son matériel avancé, ce qui signifie que les programmeurs ne pouvaient pas écrire de pilote de périphérique open source et gratuit pour ses produits. Cette nature propriétaire des pilotes de Nvidia a suscité le mécontentement des communautés de logiciels open source.
Avec le pilote R515, NVIDIA a publié en mai 2022 un ensemble de modules de noyau GPU Linux en open source sous double licence GPL et MIT. La version initiale ciblait les GPU de calcul des centres de données, avec les GPU GeForce et les stations de travail dans un état alpha. À l'époque, NVIDIA avait annoncé qu'un support Linux plus robuste et plus complet pour les GeForce et les stations de travail suivrait dans les versions suivantes et que les modules NVIDIA Open Kernel finiraient par supplanter le pilote à code source fermé.
Les GPU NVIDIA partagent une architecture de pilotes et un ensemble de capacités communs. Le même pilote pour votre ordinateur de bureau ou portable fait tourner les charges de travail d'IA les plus avancées du monde dans le cloud. Il était important de parvenir à un résultat parfait.
Deux ans plus tard, NVIDIA annonce avoir obtenu des performances applicatives équivalentes ou supérieures avec ses modules de noyau GPU open source et ajouté de nouvelles capacités substantielles :
- Prise en charge de la gestion de la mémoire hétérogène (HMM)
- Calcul confidentiel
- Les architectures de mémoire cohérentes des plateformes Grace
- Et bien plus encore
Ainsi, NVIDIA annonce être arrivé à un point où la transition complète vers les modules GPU kernel open source est la bonne décision, et elle effectue ce changement dans la prochaine version du pilote R560.
GPU pris en charge
Tous les GPU ne sont pas compatibles avec les modules open source du noyau GPU. Pour les plates-formes de pointe telles que NVIDIA Grace Hopper ou NVIDIA Blackwell, vous devez utiliser les modules de noyau GPU open source. Les pilotes propriétaires ne sont pas pris en charge sur ces plateformes. Pour les GPU plus récents des architectures Turing, Ampere, Ada Lovelace ou Hopper, NVIDIA recommande de passer aux modules GPU kernel open source.
Pour les GPU plus anciens des architectures Maxwell, Pascal ou Volta, les modules GPU kernel open source ne sont pas compatibles avec votre plateforme. Continuez à utiliser le pilote propriétaire de NVIDIA. Pour les déploiements mixtes avec des GPU plus anciens et plus récents dans le même système, continuez à utiliser le pilote propriétaire.
En cas de doute, NVIDIA fournit un nouveau script d'aide à la détection pour vous guider dans le choix du pilote.
Changements dans l'installateur
En général, la version par défaut du pilote installé par toutes les méthodes d'installation passe du pilote propriétaire au pilote open source. Quelques scénarios spécifiques méritent une attention particulière :
- Les gestionnaires de paquets avec le métapackage CUDA
- Fichier d'exécution
- Script d'aide à l'installation
- Détails du gestionnaire de paquets
- Sous-système Windows pour Linux
- Boîte à outils CUDA
Utilisation des gestionnaires de paquets avec le métapackage CUDA
Lorsque vous installez CUDA Toolkit à l'aide d'un gestionnaire de paquets (et non du fichier .run), des métapaquets d'installation existent et sont couramment utilisés. En installant un paquetage cuda de premier niveau, vous installez une combinaison de CUDA Toolkit et de la version du pilote associé. Par exemple, en installant cuda pendant la période de publication de CUDA 12.5, vous obtenez le pilote propriétaire NVIDIA 555 ainsi que CUDA Toolkit 12.5.
La figure suivante illustre la structure de ce paquet.
Auparavant, l'utilisation des modules open source du noyau GPU signifiait que vous pouviez utiliser le métapackage de haut niveau. Vous deviez installer le paquetage ouvert du pilote NVIDIA spécifique à votre distro ainsi que le paquetage cuda-toolkit-X-Y de votre choix.
À partir de la version 12.6 de CUDA, le flux s'inverse.
Utilisation du fichier run
Si vous installez CUDA ou les pilotes NVIDIA à l'aide du fichier .run, le programme d'installation interroge votre matériel et installe automatiquement le pilote le mieux adapté à votre système. Des boutons de l'interface utilisateur sont également disponibles pour choisir entre le pilote propriétaire et le pilote open source, selon votre choix.
Si vous effectuez l'installation à l'aide du fichier .run CUDA et que vous utilisez l'interface utilisateur ncurses, un menu similaire à celui-ci s'affiche :
Si vous procédez à l'installation à l'aide du fichier .run du pilote, un choix similaire s'offre à vous.
Vous pouvez également passer des dérogations en utilisant la ligne de commande pour installer sans l'interface utilisateur ou si vous utilisez des outils d'automatisation tels qu'Ansible.
Code:
1 2 3
| # sh ./cuda_12.6.0_560.22_linux.run --override --kernel-module-type=proprietary
# sh ./NVIDIA-Linux-x86_64-560.run --kernel-module-type=proprietary |
Utilisation du script d'aide à l'installation
Comme indiqué précédemment, si vous ne savez pas quel pilote choisir pour les GPU de votre système, NVIDIA a créé un script d'aide pour vous guider dans le processus de sélection.
Pour l'utiliser, installez d'abord le paquet nvidia-driver-assistant avec votre gestionnaire de paquets, puis exécutez le script :
Code:
$ nvidia-driver-assistant
Détails du gestionnaire de paquets
Pour une expérience cohérente, NVIDIA recommande d'utiliser les gestionnaires de paquets pour installer CUDA Toolkit et les pilotes. Cependant, les détails spécifiques des systèmes de gestion de paquets utilisés par les différentes distributions ou la façon dont les paquets sont structurés peuvent varier en fonction de votre distribution.
Voici les détails spécifiques, les mises en garde ou les étapes de migration nécessaires pour les différentes plates-formes.
- apt : Distributions basées sur Ubuntu et Debian
Exécutez la commande suivante :
Code:
$ sudo apt-get install nvidia-open
Pour effectuer une mise à niveau à l'aide du métapaquet cuda sur Ubuntu 20.04, passez d'abord aux modules ouverts du noyau :
Code:
1 2 3
| $ sudo apt-get install -V nvidia-kernel-source-open
$ sudo apt-get install nvidia-open |
- dnf : Red Hat Enterprise Linux, Fedora, Kylin, Amazon Linux ou Rocky Linux
Exécutez la commande suivante :
Code:
$ sudo dnf module install nvidia-driver:open-dkms
Pour effectuer une mise à niveau à l'aide du métapackage cuda sur les distros basées sur dnf, les flux de modules doivent être désactivés :
Code:
1 2 3
| $ echo "module_hotfixes=1" | tee -a /etc/yum.repos.d/cuda*.repo
$ sudo dnf install --allowerasing nvidia-open
$ sudo dnf module reset nvidia-driver |
- zypper : SUSE Linux Enterprise Server ou OpenSUSE
Exécutez l'une des commandes suivantes :
Code:
1 2
| # default kernel flavor
$ sudo zypper install nvidia-open |
Code:
1 2
| # azure kernel flavor (sles15/x86_64)
$ sudo zypper install nvidia-open-azure |
Code:
1 2
| # 64kb kernel flavor (sles15/sbsa) required for Grace-Hopper
$ sudo zypper install nvidia-open-64k |
Résumé du gestionnaire de paquets
Pour simplifier, voici les recommandations du gestionnaire de paquets condensées sous forme de tableau. Toutes les versions au-delà de la version 560 du pilote et de CUDA Toolkit 12.6 utiliseront ces conventions d'empaquetage.
Sous-système Windows pour Linux
Le sous-système Windows pour Linux (WSL) utilise le pilote de noyau NVIDIA du système d'exploitation Windows hôte. Vous ne devez pas installer de pilote sur cette plate-forme en particulier. Si vous utilisez WSL, aucune modification ou action n'est nécessaire.
CUDA Toolkit
L'installation de CUDA Toolkit reste inchangée via les gestionnaires de paquets. Exécutez la commande suivante :
Code:
$ sudo apt-get/dnf/zypper install cuda-toolkit
Pour plus d'informations sur l'installation des pilotes NVIDIA ou du kit d'outils CUDA, y compris sur l'installation des pilotes propriétaires si vous ne pouvez pas migrer vers les modules GPU kernel open source pour le moment, voir Installation des pilotes dans le Guide d'installation CUDA.
Source : NVIDIA
Et vous ?
:fleche: Pensez-vous que cette transition à l'open source de NVIDIA est crédible ou pertinente ?
:fleche: Pensez-vous qu'il s'agisse vraiment d'open source comme l'annonce NVIDIA ou pas ?
:fleche: Quel est votre avis sur le sujet ?
Voir aussi :
:fleche: Le passage de Nvidia à l'open source est officiel, la société publie des modules du noyau GPU de Linux en open source avec une double licence GPL/MIT, pour améliorer le support des GPU sous Linux
:fleche: Google, Samsung, Intel, ARM et Fujitsu s'allient pour tenter de vaincre la domination de Nvidia sur le marché des puces d'IA, en créant une alternative open source à la plateforme CUDA de Nvidia
:fleche: Red Hat travaille à la mise sur pied d'un nouveau pilote Linux pour les GPU Nvidia en Rust. L'initiative ravive le débat sur la pertinence de l'abandon des langages C et C++ pour le Rust
C'est de la poudre aux yeux
Tant que les pilotes sont fermés, ce genre d'initiative me pousse à aller voir ailleurs.
Je refuse CUDA pour utiliser l'IA en faveur de Vulkan, je me tâte à passer à d'autres GPU pour ne plus entendre parler de NVIDIA. Ils nous la jouent à l'envers depuis 15 ans.
Il faut que la concurrence avance et qu'ils comprennent l'importance de tout mettre en open source. NVIDIA inonde le gaming et le machine learning, se rendant incontournable pour tous les fournisseurs de machine de calcul. Et on les laisse faire...