FPGA em comparação com GPU

FPGA em comparação com GPU para aprendizado profundo

Os FPGAs são uma excelente escolha para aplicativos de aprendizado profundo que exigem baixa latência e flexibilidade.

Benefícios dos FPGA para aprendizado profundo:

  • Os FPGAs oferecem flexibilidade e eficiência incríveis com circuitos que podem ser reprogramados para diferentes funcionalidades.

  • Em comparação com as GPU, os FPGAs podem oferecer desempenho superior em aplicativos de aprendizado profundo onde a baixa latência é crítica.

  • Os FPGAs podem ser ajustados para equilibrar a eficiência de energia com os requisitos de desempenho.

author-image

Por

O que é um FPGA?

Os Field programmable gate arrays (FPGAs, Arranjos de portas programáveis em campo) são circuitos integrados com uma malha de hardware programável. Ao contrário das unidades de processamento de gráficos (GPU) ou dos ASICs, os circuitos em um chip de FPGA não são gravados permanentemente — podem ser reprogramados conforme necessário. Essa capacidade torna os FPGAs uma excelente alternativa aos ASICs, que exigem um longo tempo de desenvolvimento e um investimento significativo para projetar e fabricar.

O setor de tecnologia adotou FPGAs para aprendizado de máquina e aprendizado profundo há relativamente pouco tempo. Em 2010, a Microsoft Research demonstrou um dos primeiros casos de uso de IA com FPGAs como parte de seus esforços para acelerar as pesquisas na web.1Os FPGAs ofereceram uma combinação de velocidade, programabilidade e flexibilidade, proporcionando desempenho sem o custo e a complexidade do desenvolvimento de circuitos integrados de aplicativos específicos (ASICs) personalizados. Cinco anos depois, o mecanismo de pesquisa Bing estava usando FPGAs em produção, provando seu valor para aplicativos de aprendizado profundo. A utilização de FPGAs para acelerar a classificação de pesquisa resultou em um aumento de 50% na taxa de transferência do Bing.1

Por que escolher um FPGA para aprendizado profundo?

As cargas de trabalho de IA antecipadas, como o reconhecimento de imagens, dependeram muito do paralelismo. Como as GPUs foram projetadas especificamente para renderizar vídeo e gráficos, seu uso para aprendizado de máquina e aprendizado profundo se tornou popular. As GPUs se destacam no processamento paralelo, realizando um número muito grande de operações aritméticas em paralelo. Em outras palavras, eles podem oferecer uma aceleração incrível nos casos em que a mesma carga de trabalho deve ser realizada muitas vezes em sucessão rápida.

No entanto, a execução de IA em GPUs tem limites. As GPUs não oferecem tanto desempenho quanto um ASIC, um chip construído para uma determinada carga de trabalho de aprendizado profundo.

Os FPGAs oferecem personalização de hardware com IA integrada e podem ser programados para oferecer comportamento semelhante a uma GPU ou a um ASIC. A natureza reprogramável e reconfigurável de um FPGA se presta bem a um cenário de IA em rápida evolução, permitindo que os projetistas testem algoritmos rapidamente e cheguem ao mercado mais cedo. Os FPGAs oferecem várias vantagens para aplicativos de aprendizado profundo e outras cargas de trabalho de IA:

Ótimo desempenho com alta taxa de transferência e baixa latência: os FPGAs, por natureza, proporcionam latência baixa e determinística para aplicativos que operam em tempo real, como streaming de vídeo, transcrição e reconhecimento de ação ao carregar o vídeo diretamente no FPGA, passando por uma CPU. Os projetistas podem construir uma rede neural desde o início e estruturar o FPGA para se adequar melhor ao modelo.
Excelente valor e custo: os FPGAs podem ser reprogramados para diferentes funcionalidades e tipos de dados, tornando-os uma das opções de hardware mais econômicas disponíveis. Além disso, os FPGAs podem ser usados para mais do que apenas IA. Ao integrar recursos adicionais ao mesmo chip, os projetistas podem economizar em custos e espaço na placa. Os FPGAs têm ciclos de vida de produtos longos. Portanto, os projetos de hardware baseados em FPGAs podem ter uma longa vida útil do produto, medida em anos ou décadas. Essa característica os torna ideais para uso em mercados de defesa industrial, médico e automotivo.
Baixo consumo de energia: com FPGAs, os projetistas podem ajustar o hardware ao aplicativo, ajudando a atender aos requisitos de eficiência de energia. Os FPGAs também podem acomodar várias funções, oferecendo mais eficiência de energia a partir do chip. É possível usar uma parte de um FPGA para uma função, em vez de todo o chip, permitindo que o FPGA hospede várias funções em paralelo. 

Aplicativos de IA e aprendizado profundo em FPGAs 

Os FPGAs podem oferecer vantagens de desempenho em relação às GPUs quando o aplicativo exige baixa latência e processamento de pequenos lotes, como no reconhecimento de voz e outras tarefas de processamento de linguagem natural, por exemplo. Graças à sua interface de E/S programável e à malha altamente flexível, os FPGAs também são adequados para as seguintes tarefas:

Superar os gargalos de E/S. Os FPGAs são frequentemente usados onde os dados precisam percorrer muitas redes diferentes com baixa latência. Eles são incrivelmente úteis para eliminar o buffer de memória e superar os gargalos de E/S — que estão entre os maiores limitantes do desempenho do sistema de IA. Ao acelerar a ingestão de dados, os FPGAs podem acelerar todo o fluxo de trabalho de IA.
Integração de IA às cargas de trabalho. Usando FPGAs, os projetistas podem adicionar recursos de IA às cargas de trabalho existentes, como inspeção profunda de pacotes ou detecção de fraude financeira.
Possibilitar a fusão de sensores. Os FPGAs se destacam ao lidar com a entrada de dados de vários sensores, como câmeras, LIDAR e sensores de áudio. Essa capacidade pode ser extremamente valiosa no projeto de veículos autônomos, robótica e equipamentos industriais.
Proporcionar aceleração para clusters de computação de alto desempenho (HPC). Os FPGAs podem ajudar a facilitar a convergência de IA e HPC ao servir como aceleradores programáveis para inferência. 2
Adicionando recursos extras além da IA. Os FPGAs permitem adicionar segurança, E/S, além de recursos de rede e pré/pós-processamento sem a necessidade de um chip extra.

Software e hardware Intel® FPGA

Um dos poucos desafios a superar ao usar FPGAs é que o hardware normalmente requer experiência de programação especializada. Com a adoção de um modelo de programação baseado em software, a Intel está reduzindo a exigência de conhecimento especializado. Esse modelo de programação de FPGA de nível superior permite que um cientista de dados ou desenvolvedor de modelos crie uma rede neural usando uma estrutura de IA comum, como o TensorFlow ou o Caffe, e implante em um FPGA sem conhecer os detalhes da arquitetura FPGA. A Intel desenvolveu várias ferramentas que tornam a programação de FPGAs muito mais simples:

A Distribuição Intel® do kit de ferramentas OpenVINO™ oferece aos desenvolvedores de visão computacional uma única ferramenta para acelerar modelos em várias plataformas de hardware, incluindo FPGAs.
O Intel® FPGA AI Suite fornece ferramentas e arquiteturas otimizadas para acelerar a inferência com Intel® FPGAs. Ele faz interface com o kit de ferramentas OpenVINO™, proporcionando escalabilidade para suportar redes personalizadas.
O Open FPGA Stack (OFS) é uma infraestrutura de software e hardware de código aberto que fornece uma estrutura para desenvolvimento de plataformas e cargas de trabalho personalizadas baseadas em FPGA. Todo o código-fonte está disponível no GitHub.

As soluções de tecnologia de aprendizado profundo Intel® FPGA abrangem uma variedade de famílias de produtos e ferramentas de software para reduzir o tempo e o custo de desenvolvimento. Os seguintes produtos de hardware são de valor especial para casos de uso de aprendizado profundo:

Os FPGAs Intel Agilex® 5 e SoCs são FPGAs de médio porte que apresentam o primeiro bloco DSP aprimorado do setor com Tensor de IA, oferecendo funcionalidade de IA e processamento de sinal digital (DSP) de alta eficiência. Esta família de produtos oferece, em média, desempenho de malha 50% superior e consumo total de energia até 42% inferior em comparação com os FPGAs Intel® da geração anterior.3

Portfólio Intel para IA

À medida que a adoção de IA aumenta, a variedade de aplicativos e ambientes nos quais ela é executada — desde dispositivos de terminais até servidores de borda e data centers — se tornará incrivelmente diversificada. Nenhuma arquitetura, chip ou fator de forma será qualificado para atender aos requisitos de todos os aplicativos de IA. Os arquitetos de infraestrutura devem ter acesso à sua escolha de arquitetura.

A Intel oferece quatro tipos de chip de silício que permitem o crescimento da IA: FPGAs, GPUs e ASICs para aceleração, e CPUs para computação de uso geral. Cada arquitetura atende a necessidades específicas, possibilitando que os arquitetos de infraestrutura escolham a arquitetura exata de que precisam para suportar qualquer aplicativo de IA. Com uma variedade de tipos de computação otimizados para potência e desempenho, eles sempre obterão as ferramentas certas para o trabalho em questão.