Nova, le nouveau pilote écrit en Rust de Red Hat pour les GPU NVIDIA

La Nova

Nova, un nouveau pilote de noyau Direct Rendering Manager (DRM) écrit en Rust

Depuis que Nvidia a publié ses modules du noyau GPU en open source, il semblait que le pilote propriétaire Nvidia et le pilote open source Nouveau auraient de grandes améliorations avec les contributions que la communauté pourrait apporter et même cela à un moment donné Nouveau pourrait être à la hauteur.

Après plusieurs mois et Le développement de Nouveau va ralentir, Red Hat a pris des mesures en la matière et a récemment annoncé la nouvelle que travaille sur le projet Nova, qui se présente comme un nouveau pilote ouvert pour les GPU NVIDIA en cours de développement dans Rust.

Ce pilote inclut les opérations d'initialisation et de contrôle du GPU dans le firmware, à l’aide d’un microcontrôleur GSP autonome. Nova est conçu comme un module pour le noyau Linux et utilise le sous-système DRM (Direct Rendering Manager). Ce projet est considéré comme une continuation du développement du pilote Nouveau pour les GPU avec firmware GSP.

Danilo Krummrich (Red Hat) explique :

Avec Nova, nous avons la possibilité de réduire considérablement la complexité par rapport à Nouveau, pour deux raisons principales. Tout d’abord, l’architecture historique du Nouveau, notamment autour de nvif/nvkm, est assez compliquée et rigide et nécessite une refonte majeure pour résoudre certains problèmes. Ensuite, nous voulons également profiter de l'occasion pour contribuer aux efforts de Rust dans le noyau et bénéficier de la sécurité accrue de la mémoire offerte par le langage de programmation Rust.

De plus, il est mentionné qu'avec le développement de Nova, Red Hat compte profiter de l'occasion pour contribuer aux efforts de Rust dans le noyau, puisque comme mentionné, le code du pilote est écrit en Rust et utilise plusieurs couches pour développer des pilotes vidéo dans ce langage. Par exemple, le pilote utilise des abstractions de la branche Rust-Device pour créer des pilotes, des composants de la branche Rust-Pci pour fonctionner avec le bus PCI et des liaisons pour les sous-systèmes DRM et GEM de la branche Rust-DRM.

Le développement du pilote drm-asahi Rust pour les GPU à puces Apple M1 et M2 est également mentionné. L'utilisation de Rust devrait augmenter la sécurité et la fiabilité du pilote en réduisant la probabilité d'erreurs lors du travail avec la mémoire et en permettant de combiner le travail sur le pilote vidéo avec le développement de composants communs dans Rust.

L'objectif de Nova est deviendra finalement un pilote open source pour NVIDIA Linux, destiné aux GPU Turing et aux modèles plus récents (en particulier dans la série RTX 2000) prenant en charge GSP. Ce nouveau contrôleur est développé chez Rust pour obtenir une plus grande légèreté et flexibilité, ce qui est présenté comme une option prometteuse.

Un les raisons pour créer un nouveau contrôleur est de simplifier le processus par rapport au Nouveau, grâce à l'utilisation de pilotes prêts à l'emploi fournis par le firmware GSP. Cela évite une complexité inutile dans le code du pilote Nouveau, qui doit prendre en charge les anciens GPU NVIDIA et introduit des problèmes tels que des plantages dans le code VMM/MMU. En développant Nova à partir de zéro et en se concentrant uniquement sur les GPU basés sur GSP, on espère éviter ces problèmes et complications.

D'un autre côté, Red Hat mentionne également certains des points qu'il doit aborder, affirmant qu'avec le choix de Rust, le premier problème à résoudre est le manque d'abstractions de liaison C pour l'infrastructure du noyau de bout en bout :

"par exemple, les abstractions de périphérique/pilote... nous avons besoin d'un utilisateur pour les abstractions en amont, mais nous avons également besoin des abstractions pour créer un pilote - nous voulons développer Nova en amont et commencer avec juste un stub qui n'utilise que quelques abstractions Rust les bases.

enfin si tu es intéressé à en savoir plus, vous pouvez vérifier les détails Dans le lien suivant, ainsi que consulter le développement et consulter le code source de ce dans votre référentiel.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.