Red Hat представил Nova, драйвер для GPU NVIDIA, написанный на языке Rust

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3250
Зарегистрирован: 20.08.2022

#

Red Hat представил Nova, драйвер для GPU NVIDIA, написанный на языке Rust
Дата публикации:Thu, 21 Mar 2024 13:56:03 +0300




Компания Red Hat начала работу над проектом Nova, развивающим новый открытый драйвер для GPU NVIDIA, в которых операции инициализации и управления GPU вынесены в прошивку и выполняются отдельным микроконтроллером GSP (GPU System Processor). Новый драйвер оформлен в виде модуля для ядра Linux и использует подсистему DRM (Direct Rendering Manager). Проект позиционируется как продолжение развитие драйвера Nouveau для GPU с GSP-прошивками, используемыми начиная с серии NVIDIA GeForce RTX 2000 на базе микроархитектуры Turing, и в долгосрочной перспективе может заменить Nouveau.



Код драйвера написан на языке Rust и дополнительно использует несколько прослоек для разработки видеодрайверов на данном языке, ещё не принятых в основной состав ядра. Например, в драйвере задействован набор абстракций для построения драйверов из ветки rust-device, компоненты для работы с шиной PCI из ветки rust-pci и обвязки для подсистем DRM и GEM из ветки rust-drm, используемой при разработке Rust-драйвера drm-asahi для GPU чипов Apple M1 и M2. Предполагается, что применение языка Rust повысит безопасность и надёжность драйвера из-за снижения вероятности совершения ошибок при работе с памятью, а также позволит совместить работу над видеодрайвером с развитием общих компонентов, обвязок и абстракций для разработки драйверов на Rust.




Среди причин для создания нового драйвера упоминается возможность добиться значительного упрощения по сравнению с драйвером Nouveau, благодаря задействованию многих готовых обработчиков, предоставляемых прошивкой GSP. Из-за необходимости поддержки старых GPU NVIDIA код драйвера Nouveau излишне усложнён и негибок, а для решения имеющихся в драйвере Nouveau проблем, например, связанных с блокировками в коде VMM/MMU, требуется существенная переработка кодовой базы.




В развиваемом с нуля новом драйвере Nova можно изначально не допустить появления подобных проблем и усложнений, так как нет необходимости реализации многих абстракций на стороне драйвера, которые в новых GPU NVIDIA уже предоставляются прошивкой. В Nouveau приходится совмещать код для поддержки старых и новых GPU, и оставление в драйвере Nova только поддержки GPU на базе GSP даст возможность отбросить весь груз по обеспечению совместимости с кодом для работы со старыми GPU.



Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60821

Жизнь за Нер'зула!

Ответить