O ecossistema de inteligência artificial de código aberto no Linux alcançou uma nova etapa de maturidade. O driver Etnaviv, projeto focado em suportar de forma livre o hardware da família Vivante, agora é capaz de executar o YOLOX, um modelo avançado de detecção de objetos.
O anúncio foi feito pelo desenvolvedor Tomeu Vizoso, marcando a vigésima segunda atualização do progresso do suporte aberto a essas unidades de processamento neural (NPUs). A implementação traz aceleração de IA de alto desempenho para a linha Vivante VIP, presente em processadores amplamente utilizados no mercado de edge computing, como o NXP i.MX 8M Plus e o Amlogic A311D.
Segundo Vizoso, a inclusão do YOLOX um projeto de código aberto desenvolvido pela Megvii sob a licença Apache 2.0 oferece aos desenvolvedores mais flexibilidade na hora de equilibrar a precisão na detecção de objetos e a disponibilidade de recursos de hardware.
O que isso significa na prática
Historicamente, tirar proveito de aceleradores neurais (NPUs) integrados em chips ARM exigia o uso de drivers proprietários fornecidos pelas fabricantes (conhecidos como blobs). Esses drivers fechados dificultam a atualização de sistemas, atrasam o suporte em versões recentes do Kernel Linux e limitam a auditoria de segurança.
Com o driver Etnaviv ganhando capacidade de rodar modelos complexos de visão computacional nativamente, fabricantes de dispositivos IoT, câmeras inteligentes e robótica podem construir produtos dependendo apenas de uma base de software livre e padrão. O YOLOX é particularmente otimizado para tarefas de borda (edge), o que significa que o reconhecimento de imagem ocorre localmente no dispositivo, reduzindo a latência e protegendo a privacidade dos dados, já que nada precisa ser enviado para a nuvem.
O trabalho por trás da implementação

Fazer o YOLOX funcionar na NPU Etnaviv não foi uma tarefa trivial. O modelo é substancialmente mais complexo do que o SSDLite MobileDet, o sistema de detecção que era suportado anteriormente pelo projeto.
Para suportar essa complexidade arquitetural, a equipe precisou desenvolver e integrar uma série de novas operações no driver, otimizando o uso dos núcleos da NPU para evitar gargalos:
- FullyConnected: a operação agora roda diretamente nos núcleos de rede neural (NN), responsáveis pelas convoluções.
- Eficiência de Metadados: operações de Reshape, Split e Concatenate passaram a ser tratadas exclusivamente por alterações de metadados. Elas não executam cálculos no hardware, economizando preciosos ciclos de processamento.
- Fused ReLU: ativou o suporte de hardware para essa função de ativação matemática na saída dos dados.
- Absolute e Logistic: foram implementadas como operações de tabela de pesquisa (lookup table) nos núcleos de processamento de tensores (TP).
- Subtract e Transpose: a subtração foi convertida em uma operação de convolução (método similar ao já usado para a adição), enquanto a transposição agora é fundida à próxima operação da fila ou tratada diretamente como uma operação de TP.
Além do mapeamento dessas operações matemáticas, o driver recebeu suporte para mapas de características utilizando números inteiros com sinal de 8 bits (signed 8-bit integers). Essa adaptação técnica permite que alguns modelos obtenham um aumento perceptível na precisão dos resultados sem gerar nenhum custo computacional adicional para o chip.
O avanço é fruto de um trabalho contínuo realizado em parceria com a consultoria de software livre Ideas On Board.