Categorias
Linux

Intel atualiza driver de NPU para suportar cargas de trabalho maiores

A Intel atualizou seu driver de NPU com suporte para cargas de trabalho maiores e melhorias de performance. As mudanças incluem aumento do intervalo de endereço DMA e otimização do uso de buffers de preempção.

A Intel continua a aprimorar seu driver de unidade de processamento neural (NPU) para lidar com cargas de trabalho de IA cada vez mais exigentes. Com a chegada da quinta geração de NPUs, que será apresentada na família Panther Lake, uma nova série de patches foi lançada, trazendo melhorias significativas para o driver Intel IVPU.

Entre as melhorias incluídas na atualização estão a remoção do suporte ao motor de cópia obsoleto, melhorias na performance da função open() através da alocação preguiçosa de tabelas de páginas MMU, correções no tratamento de erros e suporte para cargas de trabalho maiores, permitindo o processamento de modelos mais complexos.

Além disso, os patches incluem:

  • Não falhar quando mais de um tile está fundido.
  • Alocação adiada da tabela de páginas raiz do MMU.
  • Limpeza da entrada CDTAB em caso de falha.
  • Desmapeamento de BOs parcialmente mapeados em caso de erros.
  • Utilização de xa_alloc_cyclic() em vez de função personalizada.
  • Alocação do ID da fila de comandos em XArray.
  • Não alocar buffers de preempção quando o MIP está desabilitado.
  • Adição de uma opção de depuração no Kconfig.

O principal destaque dessa atualização é a expansão dos endereços da unidade de processamento visual (VPU), permitindo maior flexibilidade e aumento da capacidade de execução de cargas de trabalho maiores. A Intel também aumentou o intervalo de endereços DMA, passando para 128 GB nos modelos 37xx, devido a limitações do MMU, e para 256 GB nas gerações mais recentes. Além disso, nos modelos 40xx e superiores, agora é possível acessar todo o espaço de 256 GB tanto da memória DMA quanto do firmware.

Essas mudanças também incluem a união dos intervalos de usuário e DMA nos modelos 40xx, garantindo maior eficiência e desempenho. Outra melhoria importante foi o aumento do intervalo de endereços de usuário no modelo 37xx, passando de 255 MB para 511 MB, permitindo o carregamento de modelos muito grandes. O hardware do Intel NPU 37xx é utilizado nos SoCs Meteor Lake.

Para otimizar a utilização dos recursos de preempção, outro patch move a alocação do buffer secundário de preempção para o intervalo DMA, aumentando a capacidade de alocação de filas de comandos com buffers de preempção sem esgotar o intervalo de endereços.

Com essas mudanças no driver IVPU, a Intel busca garantir que sua NPU possa executar modelos de IA cada vez mais exigentes, trazendo um impacto positivo para o desenvolvimento de soluções de IA mais robustas e eficientes.

Fique atento para mais novidades sobre quando essas melhorias do driver Intel NPU serão integradas ao kernel principal do Linux.

Por Emanuel Negromonte

Fundador do SempreUPdate. Acredita no poder do trabalho colaborativo, no GNU/Linux, Software livre e código aberto. É possível tornar tudo mais simples quando trabalhamos juntos, e tudo mais difícil quando nos separamos.

Sair da versão mobile