Apresentado Tyr, um driver Linux para GPU ARM Mali, escrito em Rust

Daniel Almeida, que trabalha no desenvolvimento de codecs de vídeo na Collabora, publicou na lista de discussão dos desenvolvedores do kernel Linux uma implementação inicial do driver Tyr para GPUs ARM Mali, que utilizam a tecnologia CSF (Command Stream Frontend), como Mali G310, G510 e G710. O código do driver é escrito em Rust e contém pouco mais de 600 linhas. O desenvolvimento do driver Tyr está sendo feito em colaboração com funcionários da Collabora, Arm e Google.

Como base para criar o novo driver, foram utilizados componentes do driver abstrato rust_platform_driver e do driver Nova, desenvolvido para GPUs NVIDIA, escrito em Rust e parcialmente adicionado ao kernel 6.15. A funcionalidade para interação com GPUs Mali foi portado do driver DRM existente Panthor (Direct Rendering Manager), escrito em C. O uAPI do driver Tyr é idêntico ao uAPI do driver Panthor, permitindo que componentes de espaço do usuário existentes sejam utilizados com ele.

A tecnologia CSF, utilizada a partir da 10ª geração das GPUs Mali, é notável pela remoção de certas funções do driver para a firmware e pelo envolvimento de um novo modelo de organização de execução de trabalho na GPU. Nas GPUs com interface CSF, em vez do modelo baseado em cadeia de trabalhos, utiliza-se um modelo baseado em fluxo de comandos com agendamento dos fluxos na firmware. Para organizar o trabalho do planejador na GPU, foi incorporado um microcontrolador Cortex-M7 separado, e uma unidade especial de execução de comandos (Command Execution Unit) foi projetada para executar as instruções CSF.

A funcionalidade do Tyr ainda está atrás do driver Panthor, mas os desenvolvedores têm a intenção de reduzir gradualmente essa diferença até que um equilíbrio nas capacidades dos drivers seja alcançado. As funcionalidades faltantes exigem a integração de abstrações adicionais no kernel para a criação de drivers em Rust, portanto, o desenvolvimento do driver Tyr será sincronizado com a adição dessas abstrações ao kernel. Por exemplo, no kernel ainda não existem capacidades para mapeamento de memória em drivers Rust para GPUs, que estão sendo desenvolvidas em um conjunto de patches GPUVM ainda não aceito.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster