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:

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:

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:

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

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