Como os FPGAs Tornam a IA de Borda Mais Eficiente

FPGAs Otimizados por Custo Aceleram a IA com Lógica Configurável

Em muitas aplicações, o processamento de inteligência artificial (IA) na borda oferece dois benefícios importantes: baixa latência para tarefas em tempo real, como inspeção industrial, e maior segurança em situações em que os dados são sensíveis, como em imagens médicas. CPUs e GPUs conseguem executar muitas tarefas de IA, mas dispositivos de borda têm restrições rigorosas de energia, espaço e custo, além da necessidade de resultados determinísticos. O tempo de resposta inconsistente de CPUs e GPUs pode gerar problemas em aplicações que exigem respostas em tempo real garantidas.

Por outro lado, os FPGAs (Field-Programmable Gate Arrays) oferecem uma arquitetura lógica flexível que pode ser configurada para executar algoritmos de IA como circuitos lógicos, em vez de rotinas de software.[1] Como os FPGAs rodam modelos de IA como circuitos lógicos personalizados, eles utilizam a energia de forma mais eficiente que CPUs ou GPUs, tornando-se uma opção robusta para implementar modelos de IA treinados na borda. Neste artigo, exploramos as vantagens oferecidas pelos FPGAs e analisamos soluções de projeto para esses circuitos integrados.

Por Que os FPGAs Superam CPUs e GPUs na Borda

Quando decisões rápidas são necessárias, a velocidade de processamento de IA se torna crucial. Como os FPGAs podem ser configurados com caminhos lógicos adaptados a cargas de trabalho específicas, eles oferecem latência de processamento previsível e repetível, essencial para aplicações em alta velocidade e em tempo real.[2]

Outra vantagem dos FPGAs em sistemas de IA na borda é a flexibilidade de entrada e saída (I/O). Sua lógica reconfigurável suporta tanto interfaces de alta velocidade com CPUs quanto conexões diretas de sensores para FPGA. Em sistemas com múltiplos sensores e câmeras, isso pode aliviar significativamente os recursos da CPU e também reduzir a latência durante inferências de IA baseadas em FPGA.

Os FPGAs são ideais para aplicações dinâmicas, onde os requisitos mudam rápido demais para que um circuito integrado específico (ASIC) seja viável, ou em casos onde os volumes não justificam comercialmente o desenvolvimento de ASICs. A flexibilidade dos FPGAs também permite atualizar modelos de IA conforme as necessidades e avanços tecnológicos. Nesses cenários, a reconfigurabilidade ajuda os engenheiros a ajustar o desempenho à medida que o projeto evolui.

Considerações de Projeto para Sistemas de IA Baseados em FPGA

Uma abordagem comum ao usar FPGAs para IA na borda é utilizá-los como aceleradores para CPUs host. Nessa arquitetura, o processador host delega tarefas especializadas de IA ao FPGA, que as executa de forma mais eficiente, aumentando o desempenho geral do sistema. Alternativamente, os FPGAs podem atuar como processadores autônomos, caso seus recursos de CPU internos sejam suficientes.

Um dos maiores desafios ao executar cargas de trabalho de IA em FPGAs é equilibrar o tamanho e a precisão do modelo com as limitações de hardware, como memória e capacidade de processamento. Se o modelo for muito pequeno, ele pode perder recursos importantes; se for muito grande, não funcionará de forma eficiente no dispositivo. Para resolver isso, os desenvolvedores usam técnicas de otimização que reduzem a complexidade do modelo mantendo um desempenho aceitável. Algumas dessas técnicas incluem:

  • Weight sharing: reduz o número de parâmetros permitindo que neurônios semelhantes usem os mesmos pesos, ajudando o modelo a reconhecer características mesmo que elas mudem de posição [3].
  • Model pruning: elimina parâmetros com impacto mínimo, reduzindo o tamanho do modelo e a sobrecarga computacional [4].
  • Quantization: converte os pesos do modelo para tipos de dados de menor precisão (por exemplo, de ponto flutuante de 32 bits para inteiro de 8 bits), diminuindo o uso de memória e melhorando a velocidade de processamento [5].

Após a otimização, o modelo é transferido para as unidades lógicas do FPGA utilizando software dedicado. A implementação resultante pode então ser testada para confirmar que atende aos objetivos de precisão e desempenho.

Software Projetado para Simplificar a Implementação de IA em FPGAs

Uma pergunta comum é: “Como adiciono IA ao meu FPGA?” A maioria dos desenvolvedores de FPGA tem familiaridade limitada com IA, e o mesmo geralmente vale para desenvolvedores de IA com relação a FPGAs. Uma forma simplificada de integrar IA em FPGAs é desenvolver a parte de IA como um bloco de Propriedade Intelectual (IP), que pode ser instanciado no FPGA da mesma forma que qualquer outro bloco de IP. Esse método permite que cada desenvolvedor seja especialista em sua própria área, mas ainda trabalhe de forma colaborativa para integrar o processamento de IA em FPGAs.

O FPGA AI Suite da Altera ajuda a resolver o desafio de converter o modelo de IA em IP. Ele permite que desenvolvedores de IA trabalhem com modelos usando seus frameworks existentes, como PyTorch, e alcancem o desempenho desejado com mínimas alterações no código. O modelo é otimizado por meio do OpenVINO e do FPGA AI Suite, que gera o IP correspondente. Ao conectar o IP a um sistema de processamento host, a equipe de FPGA pode integrar facilmente o IP de inferência e o runtime, implantando a inferência de IA em FPGAs Altera de forma mais rápida.

FPGAs Projetados para Aplicações de IA na Borda

Para engenheiros que desejam integrar um FPGA compacto em aplicações de IA na borda, a família Agilex™ 3 da Altera oferece uma solução de alto desempenho e otimizada em custo. Em comparação com dispositivos Altera anteriores otimizados para custo, os FPGAs Agilex 3 proporcionam até 38% menos consumo de energia, além de diversas melhorias que suportam processamento de IA na borda:

  • 2ª Geração do HyperFlex Core Fabric: A malha FPGA aprimorada oferece processamento mais rápido e eficiente por meio do uso de registradores distribuídos pelo tecido de roteamento. A redução da largura dos barramentos ajuda a diminuir o tamanho do pacote, permitindo mais funcionalidade em designs compactos [6].
  • I/O eficiente em energia: Conectividade avançada permite interface direta de sensores com o FPGA, reduzindo a latência no processamento de IA. Conforme mostrado na Figura 1, as interfaces disponíveis incluem sinalização diferencial verdadeira (TDS), MIPI D-PHY, PCIe 3.0, Ethernet 10GbE e LPDDR4.
  • Projetado para IA: O tecido lógico inclui blocos de tensores para IA e capacidades avançadas de processamento digital de sinais (DSP) para suportar inferência de IA de alto desempenho. Essa integração proporciona uma ligação estreita entre o tecido lógico e as capacidades de IA, reduzindo tempo e latência do sistema de IA. Usar o modo tensor para IA permite 20 operações INT8 por ciclo de clock, um aumento de 5x em relação às arquiteturas DSP anteriores.
  • Hierarquia de memória otimizada: Os FPGAs Agilex 3 oferecem uma hierarquia de memória adequada para IA, incluindo MLABs pequenos e blocos maiores M20K conectados aos blocos de tensores para armazenar pesos do modelo e resultados de computação. Além disso, controladores LPDDR4 integrados permitem uma interface simplificada com buffers de dados externos maiores.
  • Processador integrado: Um processador dual Arm Cortex-A55 embutido permite que o FPGA opere como unidade de processamento de IA autônoma em muitas aplicações, eliminando a necessidade de uma CPU host.
Figura 1: Diagrama em blocos do FPGA Agilex 3, ilustrando suas opções de interface. (Fonte: Altera)

Com um módulo de segurança integrado, a série Agilex é ideal para desenvolvedores que visam aplicações de IA na borda com dados sensíveis, como vigilância industrial, eletrônicos de consumo e imagens médicas.

Começando com os FPGAs Agilex 3

Para engenheiros que estão avaliando os recursos de IA dos FPGAs Agilex 3, o C-Series Development Kit (Figura 2) oferece prototipagem rápida e desenvolvimento de aplicações, com uma placa filha opcional que adiciona conectividade PCIe para expansão das interfaces.

O kit oferece diversas opções de I/O e recursos de hardware para prototipagem rápida, incluindo:

  • Dois conectores DisplayPort 1.4, suportando vídeo até 8K;
  • Dois conectores MIPI para interface com câmeras e displays de dispositivos móveis;
  • Um conector Pmod e um conector Raspberry Pi HAT para periféricos comuns de desenvolvimento;
  • Dois módulos de memória LPDDR4 de 2 GB para desempenho eficiente;
  • Placa de expansão opcional suportando PCIe 3.0 x1.
Figura 2: O C-Series Development Kit do FPGA Agilex 3 oferece diversas opções de I/O para suportar prototipagem rápida e desenvolvimento de aplicações de modelos de IA treinados na borda. (Fonte: Altera)

FPGAs Expandem as Possibilidades da IA na Borda

Dispositivos de borda muitas vezes são limitados em energia e desempenho, mas os FPGAs enfrentam esse desafio executando modelos de IA como lógica de hardware em vez de software. Com isso, eles entregam desempenho determinístico e eficiente que CPUs e GPUs nem sempre conseguem igualar.

A Altera incorporou ao Agilex 3 um FPGA com blocos de tensor de IA e recursos avançados integrados, permitindo que a plataforma execute tarefas de IA de forma independente, sem depender de um processador host. Além disso, o FPGA AI Suite da Altera simplifica significativamente a implementação de algoritmos de IA em FPGAs. À medida que a IA se espalha por todas as áreas da tecnologia, essas melhorias tornam os FPGAs uma peça cada vez mais importante na computação de borda.

Fontes

  • [1] https://qbaylogic.com/fpga/
  • [2] https://www.velvetech.com/blog/fpga-in-high-frequency-trading/
  • [3] https://www.kaggle.com/code/residentmario/notes-on-weight-sharing
  • [4] https://datature.io/blog/a-comprehensive-guide-to-neural-network-model-pruning
  • [5] https://huggingface.co/docs/optimum/en/concept_guides/quantization
  • [6] https://www.mouser.com/pdfDocs/agilex-3-fpgas-socs-product-brief.pdf

Artigo escrito por Brandon Lewis e publicado no blog da Mouser Electronics: How FPGAs Enable Efficient Edge AI

Traduzido pela Equipe Embarcados. Visite a página da Mouser Electronics no Embarcados

Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Hardware » Como os FPGAs Tornam a IA de Borda Mais Eficiente

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: