Tyr wird vorgestellt. Linux- ein in Rust geschriebener Treiber fĂŒr die ARM Mali GPU.

Daniel Almeida, der bei Collabora an der Entwicklung von Videocodecs arbeitet, postete in der Entwickler-Mailingliste LinuxDie erste Implementierung des Tyr-Treibers fĂŒr ARM Mali GPUs mit Command Stream Frontend (CSF)-Technologie, wie beispielsweise Mali G310, G510 und G710, wurde veröffentlicht. Der Treibercode ist in Rust geschrieben und umfasst etwas mehr als 600 Zeilen. Die Entwicklung des Tyr-Treibers erfolgt in Zusammenarbeit von Collabora, Arm und Google.

Das Framework zur Erstellung des neuen Treibers verwendet Komponenten des abstrakten rust_platform_driver-Treibers und des Nova-Treibers, der fĂŒr NVIDIA-GPUs entwickelt, in Rust geschrieben und teilweise dem 6.15-Kernel hinzugefĂŒgt wurde. Die FunktionalitĂ€t fĂŒr die Interaktion mit der Mali-GPU wird vom bestehenden Panthor (Direct Rendering Manager) DRM-Treiber portiert, der in C geschrieben ist. Die uAPI des Tyr-Treibers ist identisch mit der uAPI des Panthor-Treibers, was die Verwendung vorhandener Userspace-Komponenten ermöglicht.

Die CSF-Technologie, die seit der 10. Generation der Mali-GPUs eingesetzt wird, zeichnet sich durch die Verlagerung einiger Treiberfunktionen auf die Firmware und die Verwendung eines neuen Modells zur Organisation der ArbeitsausfĂŒhrung auf der GPU aus. Bei GPUs mit CSF-Schnittstelle wird anstelle eines auf der Übermittlung einer Arbeitskette basierenden Modells ein auf einem Befehlsfluss basierendes Modell mit Planung der Befehlsflusswarteschlange auf der Firmware-Seite verwendet. Zur Organisation der Arbeit des Schedulers ist ein separater Cortex-M7-Mikrocontroller in die GPU integriert, und eine spezielle BefehlsausfĂŒhrungseinheit (Command Execution Unit) dient zur AusfĂŒhrung von CSF-Anweisungen.

Die FunktionalitĂ€t von Tyr hinkt dem Panthor-Treiber noch hinterher, die Entwickler beabsichtigen jedoch, diese LĂŒcke schrittweise zu schließen, bis Gleichheit in den Treiberfunktionen erreicht ist. Die fehlenden Funktionen erfordern die Integration zusĂ€tzlicher Abstraktionen in den Kernel, um Treiber in Rust zu erstellen. Daher wird die Entwicklung des Tyr-Treibers mit der EinfĂŒhrung dieser Abstraktionen in den Kernel synchronisiert. Beispielsweise verfĂŒgt der Kernel noch nicht ĂŒber die Funktionen fĂŒr das Speichermapping in Rust-Treibern fĂŒr GPUs, die im noch nicht ĂŒbernommenen GPUVM-Patch-Set entwickelt werden.

Source: opennet.ru

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz und VPS-VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster