Nova, trình điều khiển mới được viết bằng Rust từ Red Hat cho GPU NVIDIA

Tân tinh

Nova trình điều khiển hạt nhân Trình quản lý kết xuất trực tiếp (DRM) mới được viết bằng Rust

Kể từ khi Nvidia phát hành các mô-đun hạt nhân GPU là nguồn mở, có vẻ như cả trình điều khiển độc quyền của Nvidia và trình điều khiển nguồn mở Nouveau sẽ có những cải tiến lớn với những đóng góp mà cộng đồng có thể thực hiện và thậm chí cả điều đó vào một lúc nào đó Nouveau có thể hoàn thành nhiệm vụ.

Sau vài tháng và Sự phát triển của Nouveau sẽ chậm lại, Red Hat đã có hành động giải quyết vấn đề này và gần đây đã công bố tin tức rằng đang làm việc trong dự án Nova, trình bày dưới dạng trình điều khiển mở mới cho GPU NVIDIA đang được phát triển trong Rust.

Người lái xe này bao gồm các hoạt động khởi tạo và điều khiển GPU trong phần sụn, sử dụng bộ vi điều khiển GSP độc lập. Nova được thiết kế như một mô-đun cho nhân Linux và sử dụng hệ thống con DRM (Trình quản lý kết xuất trực tiếp). Dự án này được coi là sự tiếp nối quá trình phát triển trình điều khiển Nouveau cho GPU có phần mềm GSP.

Danilo Krummrich (Red Hat) giải thích:

Với Nova, chúng tôi có cơ hội giảm đáng kể độ phức tạp so với Nouveau vì hai lý do chính. Trước hết, kiến ​​trúc Tân lịch sử, đặc biệt là xung quanh nvif/nvkm, khá phức tạp và không linh hoạt và cần một cuộc đại tu lớn để giải quyết một số vấn đề. Tiếp theo, chúng tôi cũng muốn tận dụng cơ hội để đóng góp vào những nỗ lực của Rust trong kernel và hưởng lợi từ tính an toàn bộ nhớ tăng lên do ngôn ngữ lập trình Rust mang lại.

Ngoài ra, người ta còn đề cập rằng với sự phát triển của Nova, Red Hat dự định nhân cơ hội này để đóng góp vào nỗ lực của Rust trong kernel, vì như đã đề cập, mã trình điều khiển được viết bằng Rust và sử dụng một số lớp để phát triển trình điều khiển video bằng ngôn ngữ này. Ví dụ: trình điều khiển sử dụng các phần trừu tượng từ nhánh Rust-Device để tạo trình điều khiển, các thành phần từ nhánh Rust-Pci để hoạt động với bus PCI và các liên kết cho hệ thống con DRM và GEM từ nhánh Rust-DRM.

Cũng đề cập đến việc phát triển trình điều khiển drm-asahi Rust cho GPU chip Apple M1 và M2. Việc sử dụng Rust dự kiến ​​sẽ tăng tính bảo mật và độ tin cậy của trình điều khiển bằng cách giảm xác suất xảy ra lỗi khi làm việc với bộ nhớ và cho phép kết hợp công việc trên trình điều khiển video với việc phát triển các thành phần phổ biến trong Rust.

Mục tiêu từ Nova là cuối cùng trở thành trình điều khiển nguồn mở cho NVIDIA Linux, nhắm đến GPU Turing và các mẫu mới hơn (đặc biệt là dòng RTX 2000) hỗ trợ GSP. Bộ điều khiển mới này đang được phát triển ở Rust để đạt được độ nhẹ và tính linh hoạt cao hơn, được coi là một lựa chọn đầy hứa hẹn.

Một trong những lý do để tạo bộ điều khiển mới là đơn giản hóa quy trình so với Nouveau, nhờ sử dụng trình điều khiển sẵn sàng được cung cấp bởi phần sụn GSP. Điều này tránh được sự phức tạp không cần thiết trong mã trình điều khiển Nouveau vốn cần hỗ trợ các GPU NVIDIA cũ hơn và gây ra các sự cố như sự cố trong mã VMM/MMU. Bằng cách phát triển Nova từ đầu và chỉ tập trung vào GPU dựa trên GSP, hy vọng sẽ tránh được những vấn đề và sự phức tạp này.

Mặt khác, Red Hat cũng đề cập đến một số điểm cần giải quyết, cho rằng với việc lựa chọn Rust, vấn đề đầu tiên cần giải quyết là thiếu tính trừu tượng hóa liên kết C cho cơ sở hạ tầng kernel end-to-end:

"ví dụ: phần tóm tắt thiết bị/trình điều khiển... chúng tôi cần một người dùng cho phần tóm tắt ngược dòng, nhưng chúng tôi cũng cần phần tóm tắt để tạo trình điều khiển - chúng tôi muốn phát triển Nova ngược dòng và bắt đầu chỉ với một sơ khai chỉ sử dụng một số phần tóm tắt Rust những điều cơ bản.

cuối cùng nếu bạn là muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau, cũng như tư vấn phát triển và tham khảo mã nguồn của phần mềm này trong kho lưu trữ của bạn.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.