Presentado Tyr, el controlador de Linux para GPU ARM Mali, escrito en Rust

Daniel Almeida, quien trabaja en el desarrollo de códecs de video en Collabora, publicó en la lista de correo de desarrolladores del núcleo de Linux la implementación inicial del controlador Tyr para GPU ARM Mali, utilizando la tecnología CSF (Command Stream Frontend), tales como Mali G310, G510 y G710. El código del controlador está escrito en Rust y consta de algo más de 600 líneas de código. El desarrollo del controlador Tyr se lleva a cabo en colaboración entre empleados de Collabora, Arm y Google.

Como base para crear el nuevo controlador, se utilizaron componentes del controlador abstracto rust_platform_driver y del controlador Nova, desarrollado para GPU NVIDIA, escrito en Rust y parcialmente incorporado en el núcleo 6.15. La funcionalidad para interactuar con GPU Mali se ha portado desde el controlador DRM existente Panthor (Direct Rendering Manager), escrito en C. La uAPI del controlador Tyr es idéntica a la uAPI del controlador Panthor, lo que permite utilizar componentes de espacio de usuario ya existentes.

La tecnología CSF, utilizada desde la décima generación de GPU Mali, es notable por delegar algunas funciones del controlador al firmware y emplear un nuevo modelo de organización de tareas en la GPU. En la GPU con interfaz CSF, en lugar de un modelo basado en el envío de cadenas de trabajos, se utiliza un modelo basado en un flujo de comandos con programación de la cola de flujo de comandos en el firmware. Para organizar el trabajo del planificador, la GPU incorpora un microcontrolador Cortex-M7, y se ha previsto una unidad especial para la ejecución de comandos (Command Execution Unit) para llevar a cabo los instructivos de CSF.

La funcionalidad de Tyr aún está rezagada en comparación con el controlador Panthor, pero los desarrolladores tienen la intención de cerrar la brecha gradualmente hasta alcanzar la paridad en las capacidades de los controladores. Las funciones faltantes requieren la integración de abstracciones adicionales en el núcleo para la creación de controladores en Rust; por lo tanto, el desarrollo del controlador Tyr se sincronizará con la adición de estas abstracciones en el núcleo. Por ejemplo, actualmente no hay capacidades para mapear la memoria en controladores Rust para GPU, desarrolladas en un conjunto de parches GPUVM que aún no se ha aceptado.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster