FERRAMENTAS LINUX: Um esforço do Driver Open Source começou para o Rockchip NPU.

domingo, 17 de março de 2024

Um esforço do Driver Open Source começou para o Rockchip NPU.

 


Avanços impressionantes no desenvolvimento de drivers de código aberto para NPU

Tomeu Vizoso, conhecido por seu trabalho com o driver gráfico de código aberto Etnaviv, fez progressos significativos na extensão do suporte ao IP Vivante NPU. Com desempenho competitivo para o driver NPU proprietário e a estrutura Teflon no Mesa para lidar com a Unidade de Processamento Neural, Vizoso agora está focado em um novo desafio: desenvolver um driver NPU de código aberto para o hardware de IA encontrado em vários SoCs Rockchip.

O próximo alvo de Vizoso é o Rockchip NPU IP, encontrado em SoCs como o RK3588(S) e RK3568. Atualmente, o driver oficial da Rockchip é composto por um driver de kernel fora da árvore GPL e um espaço de usuário de código fechado.

Vizoso descreveu o estado atual do driver binário da seguinte maneira: “A versão do NPU no RK3588 afirma ter um desempenho de 6 TOPS em seus 3 núcleos. No entanto, os usuários estão enfrentando problemas para usar mais de um núcleo em paralelo com o driver de código fechado. O driver do kernel é simples e atualizado em relação ao uso de APIs internas do kernel. No entanto, a pilha do espaço do usuário é notoriamente problemática e difícil de usar, com recursos básicos ainda não implementados e o desempenho está bem abaixo do que o hardware deveria ser capaz de alcançar.”

Vizoso espera desenvolver um driver de kernel de código aberto com capacidade de linha principal e um espaço de usuário relevante para o Rockchip NPU. Até agora, ele fez progressos significativos: “Comecei a olhar para um buffer que, a partir dos logs de depuração do driver proprietário, continha gravações de registro. Ao observar as descrições de registro no TRM, vi que ele tinha que ser baseado no IP NPU de código aberto NVDLA da NVIDIA. Com a descrição (concisa) dos registros da Rockchip e a documentação e código-fonte do NVDLA para o hardware e o driver do espaço do usuário, consegui progredir muito mais rápido.”

Vizoso já é capaz de executar corretamente as operações Conv2D e DepthwiseConv2D do TensorFLow Lite com diferentes combinações de dimensões de entrada, dimensões de peso, passadas e preenchimento. O próximo passo é oferecer suporte a vários canais de saída.

Para mais informações sobre esta nova aventura de driver NPU Linux de código aberto, visite o blog de Tomeu Vizoso.






Fonte 

Até a próxima !!






Nenhum comentário:

Postar um comentário