Tyr, der Linux-Treiber fĂŒr GPU ARM Mali, geschrieben in Rust, vorgestellt

Daniel Almeida, der an der Entwicklung von Video-Codecs bei Collabora arbeitet, hat in der Entwickler-Mailingliste des Linux-Kernels eine erste Implementierung des Tyr-Treibers fĂŒr ARM Mali GPUs veröffentlicht, die die CSF-Technologie (Command Stream Frontend) verwendet, einschließlich Mali G310, G510 und G710. Der Treibercode ist in Rust geschrieben und umfasst etwas mehr als 600 Zeilen. Die Arbeit am Tyr-Treiber erfolgt in Zusammenarbeit mit Mitarbeitern von Collabora, Arm und Google.

FĂŒr die Erstellung des neuen Treibers wurden Komponenten des abstrakten Treibers rust_platform_driver und des fĂŒr NVIDIA-GPUs entwickelten Nova-Treibers verwendet, der in Rust geschrieben und teilweise in den Kernel 6.15 integriert wurde. Die FunktionalitĂ€t zur Interaktion mit der Mali-GPU wurde aus dem bestehenden Panthor-DRM-Treiber (Direct Rendering Manager), der in C geschrieben ist, portiert. Die uAPI des Tyr-Treibers ist identisch mit der uAPI des Panthor-Treibers, was es ermöglicht, bereits vorhandene Komponenten im Benutzerspace zu nutzen.

Die CSF-Technologie, die seit der 10. Generation der Mali GPUs zum Einsatz kommt, zeichnet sich dadurch aus, dass einige Funktionen des Treibers auf die Firmware ausgelagert werden und ein neues Modell zur Organisation der AusfĂŒhrung von Arbeiten auf der GPU genutzt wird. Bei GPUs mit CSF-Schnittstelle wird anstelle des modells, das auf der Übermittlung einer Arbeitskette basiert, ein Modell verwendet, das auf einem Befehlsstrom basiert und die Warteschlange fĂŒr den Befehlsstrom auf der Firmware-Seite plant. FĂŒr die Organisation der Arbeit des Planers ist ein separater Mikrocontroller Cortex-M7 in die GPU integriert, und zur AusfĂŒhrung von CSF-Befehlen ist eine spezielle Einheit zur AusfĂŒhrung von Befehlen (Command Execution Unit) vorgesehen.

Die FunktionalitĂ€t von Tyr hinkt derzeit hinter dem Panthor-Treiber hinterher, aber die Entwickler beabsichtigen, die LĂŒcke schrittweise zu schließen, bis ein ParitĂ€tsniveau zwischen den Treibern erreicht ist. Fehlende Funktionen erfordern die Integration zusĂ€tzlicher Abstraktionen in den Kernel zur Erstellung von Treibern in Rust, weshalb die Entwicklung des Tyr-Treibers mit der HinzufĂŒgung dieser Abstraktionen in den Kernel synchronisiert wird. Derzeit fehlen im Kernel beispielsweise Möglichkeiten zur Speicherabbildung in Rust-Treibern fĂŒr GPUs, die in einem noch nicht akzeptierten Patch-Set GPUVM entwickelt werden.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster