Nova, driver baru yang ditulis dalam Rust dari Red Hat untuk GPU NVIDIA

Nova

Nova, driver kernel Direct Rendering Manager (DRM) baru yang ditulis dalam Rust

Sejak Nvidia merilis modul kernelnya GPU sebagai open source, tampaknya driver berpemilik Nvidia dan driver open source Nouveau akan mengalami peningkatan besar dengan kontribusi yang dapat diberikan oleh komunitas dan bahkan pada titik tertentu Nouveau mungkin mampu melakukan tugas itu.

Setelah beberapa bulan dan Pengembangan Nouveau akan melambat, Red Hat telah mengambil tindakan mengenai masalah ini dan baru-baru ini mengumumkan berita itu sedang mengerjakan proyek Nova, yang hadir sebagai driver terbuka baru untuk GPU NVIDIA yang sedang dikembangkan di Rust.

Pengemudi ini termasuk inisialisasi GPU dan operasi kontrol di firmware, menggunakan mikrokontroler GSP mandiri. Nova dirancang sebagai modul untuk kernel Linux dan menggunakan subsistem DRM (Direct Rendering Manager). Proyek ini dianggap sebagai kelanjutan dari pengembangan driver Nouveau untuk GPU dengan firmware GSP.

Danilo Krummrich (Topi Merah) menjelaskan:

Dengan Nova kita mempunyai peluang untuk mengurangi kompleksitas secara signifikan dibandingkan dengan Nouveau, karena dua alasan utama. Pertama-tama, arsitektur historis Nouveau, terutama di sekitar nvif/nvkm, cukup rumit dan tidak fleksibel serta memerlukan perombakan besar-besaran untuk menyelesaikan beberapa masalah. Selanjutnya, kami juga ingin mengambil kesempatan untuk berkontribusi pada upaya Rust di kernel dan mendapatkan manfaat dari peningkatan keamanan memori yang ditawarkan oleh bahasa pemrograman Rust.

Selain itu disebutkan bahwa dengan berkembangnya Nova, Red Hat bermaksud mengambil kesempatan ini untuk berkontribusi pada upaya Rust di kernel, karena seperti disebutkan, kode driver ditulis dalam Rust dan menggunakan beberapa lapisan untuk mengembangkan driver video dalam bahasa ini. Misalnya, driver menggunakan abstraksi dari cabang Rust-Device untuk membuat driver, komponen dari cabang Rust-Pci untuk bekerja dengan bus PCI, dan binding untuk subsistem DRM dan GEM dari cabang Rust-DRM.

Disebutkan juga pengembangan driver drm-asahi Rust untuk GPU chip Apple M1 dan M2. Penggunaan Rust diharapkan dapat meningkatkan keamanan dan keandalan driver dengan mengurangi kemungkinan kesalahan saat bekerja dengan memori dan memungkinkan kombinasi pekerjaan pada driver video dengan pengembangan komponen umum di Rust.

Objektif dari Nova adalah akhirnya menjadi driver open source untuk NVIDIA Linux, ditujukan untuk GPU Turing dan model yang lebih baru (terutama pada seri RTX 2000) yang mendukung GSP. Pengontrol baru ini sedang dikembangkan di Rust untuk mencapai bobot yang lebih ringan dan fleksibilitas, yang disajikan sebagai opsi yang menjanjikan.

Satu dari Alasan untuk membuat pengontrol baru adalah untuk menyederhanakan proses dibandingkan dengan Nouveau, berkat penggunaan driver siap pakai yang disediakan oleh firmware GSP. Hal ini menghindari kerumitan yang tidak perlu dalam kode driver Nouveau, yang perlu mendukung GPU NVIDIA lama dan menimbulkan masalah seperti kerusakan pada kode VMM/MMU. Dengan mengembangkan Nova dari awal dan hanya berfokus pada GPU berbasis GSP, diharapkan masalah dan komplikasi tersebut dapat dihindari.

Di sisi lain, Red Hat juga menyebutkan beberapa poin yang perlu diatasi, dengan mengatakan bahwa dengan pilihan Rust, masalah pertama yang harus diselesaikan adalah kurangnya abstraksi pengikatan C untuk infrastruktur kernel end-to-end:

"misalnya abstraksi perangkat/driver... kami memerlukan pengguna untuk abstraksi upstream, tetapi kami juga memerlukan abstraksi untuk membuat driver - kami ingin mengembangkan Nova upstream dan memulai hanya dengan stub yang hanya menggunakan beberapa abstraksi Rust dasar-dasar.

akhirnya jika kamu tertarik untuk mengetahuinya lebih jauh, Anda dapat memeriksa detailnya Di tautan berikut, serta berkonsultasi perkembangannya dan berkonsultasi dengan kode sumber ini di repositori Anda.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.