Já se passaram 8 anos de chips de IA para telefones – e eles ainda estão desperdiçando seu potencial

Já se passaram pouco mais de oito anos desde que começamos a falar sobre Unidades de Processamento Neural (NPUs) dentro de nossos smartphones e as primeiras perspectivas da IA ​​no dispositivo. Grandes pontos se você lembrar que o processador Kirin 970 do HUAWEI Mate 10 foi o primeiro, embora ideias semelhantes já estivessem circulando, principalmente em imagens, antes disso.

É claro que muita coisa mudou nos últimos oito anos – a Apple finalmente adotou a IA, embora com resultados mistos, e o Google obviamente se apoiou fortemente em sua Unidade de Processador Tensor para tudo, desde imagens até tradução de idiomas no dispositivo. Pergunte a qualquer uma das grandes empresas de tecnologia, desde Arm e Qualcomm até Apple e Samsung, e todas dirão que a IA é o futuro do hardware e software dos smartphones.

Mesmo assim, o cenário da IA ​​móvel ainda parece bastante confinado; estamos restritos a um conjunto pequeno, mas crescente, de recursos de IA no dispositivo, com curadoria principalmente do Google, com muito pouco em termos de um cenário de desenvolvedor criativo, e os NPUs são parcialmente culpados – não porque sejam ineficazes, mas porque nunca foram expostos como uma plataforma real. O que levanta a questão: para que exatamente esse silício presente em nossos telefones é realmente bom?

Afinal, o que é um NPU?

SoC apoiado no telefone Google Pixel

Robert Triggs / Autoridade Android

Antes de podermos responder de forma decisiva se os telefones realmente “precisam” de um NPU, provavelmente deveríamos nos familiarizar com o que ele realmente faz.

Assim como a CPU de uso geral do seu telefone para executar aplicativos, a GPU para renderizar jogos ou seu ISP dedicado ao processamento de dados de imagem e vídeo, um NPU é um processador desenvolvido especificamente para executar cargas de trabalho de IA da maneira mais rápida e eficiente possível. Bastante simples.

Especificamente, uma NPU é projetada para lidar com tamanhos de dados menores (como modelos minúsculos de 4 bits e até mesmo de 2 bits), padrões de memória específicos e operações matemáticas altamente paralelas, como multiplicação-adição fundida e multiplicação-acumulação fundida.

As NPUs móveis passaram a executar cargas de trabalho de IA com as quais os processadores tradicionais têm dificuldade.

Agora, como eu disse em 2017, você não precisa estritamente de um NPU para executar cargas de trabalho de aprendizado de máquina; muitos algoritmos menores podem ser executados até mesmo em uma CPU modesta, enquanto os data centers que alimentam vários modelos de linguagem grande são executados em hardware que está mais próximo de uma placa gráfica NVIDIA do que do NPU do seu telefone.

No entanto, uma NPU dedicada pode ajudá-lo a executar modelos que sua CPU ou GPU não consegue controlar no ritmo certo e, muitas vezes, pode executar tarefas com mais eficiência. O que essa abordagem heterogênea da computação pode custar em termos de complexidade e área de silício, ela pode recuperar em potência e desempenho, que são obviamente essenciais para smartphones. Ninguém quer que as ferramentas de IA do seu telefone consumam a bateria.

Espere, mas a IA também não funciona em placas gráficas?

Oliver Cragg / Autoridade Android

Se você tem acompanhado a atual crise de preços da RAM, sabe que os data centers de IA e a demanda por poderosos aceleradores de IA e GPU, especialmente os da NVIDIA, estão impulsionando a escassez.

O que torna a arquitetura CUDA da NVIDIA tão eficaz para cargas de trabalho de IA (bem como gráficos) é que ela é massivamente paralelizada, com núcleos tensores que lidam com operações de multiplicação e acumulação (MMA) altamente fundidas em uma ampla variedade de formatos de matriz e dados, incluindo as pequenas profundidades de bits usadas para modelos quantizados modernos.

Embora as GPUs móveis modernas, como a linha Mali da Arm e a linha Adreno da Qualcomm, possam suportar tipos de dados de 16 bits e cada vez mais de 8 bits com matemática altamente paralela, elas não executam modelos muito pequenos e altamente quantizados – como INT4 ou inferior – com quase a mesma eficiência. Da mesma forma, apesar de suportarem esses formatos no papel e oferecerem paralelismo substancial, eles não são otimizados para IA como carga de trabalho principal.

As GPUs móveis focam na eficiência; eles são muito menos poderosos para IA do que rivais de desktop.

Ao contrário dos robustos chips gráficos de desktop, as arquiteturas de GPU móveis são projetadas principalmente para eficiência energética, usando conceitos como pipelines de renderização baseados em blocos e unidades de execução fatiadas que não são totalmente propícios a cargas de trabalho sustentadas e com uso intensivo de computação. As GPUs móveis podem definitivamente realizar computação de IA e são muito boas em algumas situações, mas para operações altamente especializadas, geralmente há opções mais eficientes em termos de energia.

O desenvolvimento de software é a outra metade igualmente importante da equação. O CUDA da NVIDIA expõe os principais atributos arquitetônicos aos desenvolvedores, permitindo otimizações profundas em nível de kernel ao executar cargas de trabalho de IA. As plataformas móveis carecem de acesso comparável de baixo nível para desenvolvedores e fabricantes de dispositivos, contando em vez disso com abstrações de nível superior e muitas vezes específicas do fornecedor, como o Neural Processing SDK da Qualcomm ou a Arm’s Compute Library.

Isso destaca um ponto problemático significativo para o ambiente de desenvolvimento de IA móvel. Embora o desenvolvimento de desktops tenha se baseado principalmente em CUDA (embora o ROCm da AMD esteja ganhando força), os smartphones executam uma variedade de arquiteturas NPU. Há o Tensor proprietário do Google, o Snapdragon Hexagon, o Neural Engine da Apple e muito mais, cada um com seus próprios recursos e plataformas de desenvolvimento.

NPUs não resolveram o problema da plataforma

Taylor Kerns / Autoridade Android

Os chipsets de smartphones que possuem recursos de NPU (que são essencialmente todos eles) são construídos para resolver um problema – suportando valores de dados menores, matemática complexa e padrões de memória desafiadores de maneira eficiente, sem a necessidade de reequipar as arquiteturas de GPU. No entanto, NPUs discretas introduzem novos desafios, especialmente quando se trata de desenvolvimento de terceiros.

Embora APIs e SDKs estejam disponíveis para chips Apple, Snapdragon e MediaTek, os desenvolvedores tradicionalmente tinham que construir e otimizar seus aplicativos separadamente para cada plataforma. Mesmo o Google ainda não fornece acesso fácil e geral ao desenvolvedor para seus Pixels de vitrine de IA: o SDK do Tensor ML permanece em acesso experimental, sem garantia de lançamento geral. Os desenvolvedores podem experimentar recursos de nível superior do Gemini Nano por meio do kit de ML do Google, mas isso fica muito aquém do acesso verdadeiro e de baixo nível ao hardware subjacente.

Pior ainda, a Samsung retirou completamente o suporte para seu Neural SDK, e o Android NNAPI, mais universal do Google, foi descontinuado desde então. O resultado é um labirinto de especificações e APIs abandonadas que tornam extremamente difícil o desenvolvimento eficiente de IA móvel de terceiros. As otimizações específicas do fornecedor nunca seriam escalonadas, deixando-nos presos a modelos compactos internos e baseados em nuvem, controlados por alguns fornecedores importantes, como o Google.

LiteRT executa IA no dispositivo em ambientes Android, iOS, Web, IoT e PC.

Felizmente, o Google apresentou LiteRT em 2024 — reposicionando efetivamente o TensorFlow Lite — como um tempo de execução único no dispositivo que oferece suporte a CPU, GPU e NPUs de fornecedores (atualmente Qualcomm e MediaTek). Ele foi projetado especificamente para maximizar a aceleração do hardware em tempo de execução, cabendo ao software escolher o método mais adequado, abordando a maior falha do NNAPI. Embora a intenção da NNAPI fosse abstrair o hardware específico do fornecedor, ela acabou padronizando a interface em vez do comportamento, deixando o desempenho e a confiabilidade para os drivers do fornecedor – uma lacuna que o LiteRT tenta fechar ao possuir o próprio tempo de execução.

Curiosamente, o LiteRT foi projetado para executar inferência inteiramente no dispositivo em Android, iOS, sistemas embarcados e até mesmo em ambientes de desktop, sinalizando a ambição do Google de torná-lo um tempo de execução verdadeiramente multiplataforma para modelos compactos. Ainda assim, diferentemente das estruturas de IA de desktop ou dos pipelines de difusão que expõem dezenas de parâmetros de ajuste de tempo de execução, um modelo TensorFlow Lite representa um modelo totalmente especificado, com precisão, quantização e restrições de execução decididas antecipadamente para que possa ser executado de forma previsível em hardware móvel restrito.

Embora abstrair o problema do fornecedor-NPU seja uma grande vantagem do LiteRT, ainda vale a pena considerar se os NPUs permanecerão tão centrais como antes, à luz de outros desenvolvimentos modernos.

Por exemplo, a nova extensão externa SME2 da Arm para sua mais recente série C1 de CPUs fornece aceleração de IA do lado da CPU de até 4x para algumas cargas de trabalho, com amplo suporte de estrutura e sem necessidade de SDKs dedicados. Também é possível que as arquiteturas de GPU móveis mudem para suportar melhor cargas de trabalho avançadas de aprendizado de máquina, possivelmente reduzindo totalmente a necessidade de NPUs dedicadas. A Samsung está explorando sua própria arquitetura de GPU especificamente para aproveitar melhor a IA no dispositivo, que pode estrear já na série Galaxy S28. Da mesma forma, a série E da Immagination foi construída especificamente para aceleração de IA, estreando suporte para FP8 e INT8. Talvez o Pixel adote esse chip, eventualmente.

O LiteRT complementa esses avanços, liberando os desenvolvedores para se preocuparem menos com a forma exata como o mercado de hardware está evoluindo. O avanço do suporte a instruções complexas nas CPUs pode torná-las ferramentas cada vez mais eficientes para executar cargas de trabalho de aprendizado de máquina, em vez de um substituto. Enquanto isso, GPUs com suporte de quantização superior podem eventualmente se tornar os aceleradores padrão em vez de NPUs, e o LiteRT pode lidar com a transição. Isso faz com que o LiteRT pareça mais próximo do equivalente móvel do CUDA que estávamos perdendo – não porque ele expõe o hardware, mas porque finalmente o abstrai adequadamente.

É improvável que NPUs móveis dedicados desapareçam, mas os aplicativos podem finalmente começar a aproveitá-los.

É improvável que NPUs móveis dedicados desapareçam tão cedo, mas a abordagem centrada em NPU e bloqueada pelo fornecedor que definiu a primeira onda de IA no dispositivo claramente não é o fim do jogo. Para a maioria dos aplicativos de terceiros, as CPUs e GPUs continuarão a arcar com grande parte da carga de trabalho prática, especialmente à medida que ganham suporte mais eficiente para operações modernas de aprendizado de máquina. O que importa mais do que qualquer bloco de silício é a camada de software que decide como – e se – esse hardware será usado.

Se o LiteRT for bem-sucedido, os NPUs se tornarão aceleradores em vez de guardiões, e a IA móvel no dispositivo finalmente se tornará algo que os desenvolvedores podem atingir sem apostar no roteiro de um fornecedor de chip específico. Com isso em mente, provavelmente ainda há um caminho a percorrer antes que a IA no dispositivo tenha um ecossistema vibrante de recursos de terceiros para aproveitar, mas finalmente estamos chegando um pouco mais perto.

Não quero perder o melhor de Autoridade Android?

Obrigado por fazer parte da nossa comunidade. Leia nossa Política de Comentários antes de postar.

Sair da versão mobile