Red Hat představil Nova, ovladač pro GPU NVIDIA napsaný v Rustu

Společnost Red Hat zahájila práce na projektu Nova, v rámci kterého vyvíjí nový open-source ovladač pro grafické karty NVIDIA. V tomto projektu jsou operace inicializace a správy grafických karet (GPU) přesunuty do firmwaru a prováděny samostatným mikrokontrolérem GSP (GPU System Processor). Nový ovladač je implementován jako modul linuxového jádra a využívá subsystém DRM (Direct Rendering Manager). Projekt je koncipován jako pokračování ovladače Nouveau pro grafické karty s firmwarem GSP, který se používá od řady NVIDIA GeForce RTX 2000 založené na mikroarchitektuře Turing, a v dlouhodobém horizontu by mohl Nouveau nahradit.

Kód ovladače je napsán v Rustu a navíc využívá několik vrstev pro vývoj ovladačů videa v tomto jazyce, které dosud nebyly přijaty do hlavního jádra. Ovladač například využívá sadu abstrakcí pro konstrukci ovladačů z větve rust-device, komponenty pro práci se sběrnicí PCI z větve rust-pci a vazby pro subsystémy DRM a GEM z větve rust-drm, která se používá při vývoji ovladače drm-asahi Rust pro grafické karty Apple M1 a M2. Očekává se, že použití Rustu zlepší bezpečnost a spolehlivost ovladače snížením pravděpodobnosti chyb při práci s pamětí a také umožní integraci vývoje ovladačů videa s vývojem běžných komponent, vazeb a abstrakcí pro vývoj ovladačů v Rustu.

Motivací pro vytvoření nového ovladače je potenciál dosáhnout významného zjednodušení ve srovnání s ovladačem Nouveau využitím mnoha hotových obslužných programů poskytovaných firmwarem GSP. Vzhledem k nutnosti podporovat starší grafické karty NVIDIA je kód ovladače Nouveau zbytečně složitý a nepružný a řešení stávajících problémů v ovladači Nouveau, jako jsou zasekávání v kódu VMM/MMU, vyžaduje rozsáhlé přepsání kódové základny.

Nový ovladač Nova, vyvinutý od nuly, může těmto problémům a komplikacím předcházet hned od začátku, protože eliminuje potřebu implementovat mnoho abstrakcí na straně ovladače, které jsou již v nových grafických procesorech NVIDIA poskytovány firmwarem. Nouveau vyžaduje kombinování kódu pro podporu starých a nových grafických procesorů a zachování pouze podpory grafických procesorů založených na GSP v ovladači Nova eliminuje zátěž spojenou se zajištěním kompatibility se starším kódem grafických procesorů.

Zdroj: opennet.ru

Přidat komentář