Visão Geral
Com o mundo em que vivemos cada vez mais inteligente, a quantidade de processamento de dados necessária está aumentando exponencialmente. Depender exclusivamente de CPUs (unidades de processamento central) pode não ser mais suficiente. A aceleração pode ser necessária para atender às demandas de determinados aplicativos.
A computação acelerada está se tornando difundida em várias aplicações, desde o data center até a computação de borda e a rede. Mais provedores e desenvolvedores de aplicativos estão considerando a computação acelerada como a solução para as limitações de seus aplicativos.
O que é computação acelerada?
A computação acelerada é um estilo moderno de computação que separa as partes com uso intenso de dados de um aplicativo e as processa em um dispositivo de aceleração separado, deixando a funcionalidade de controle para ser processada na CPU. Isso permite que aplicativos pesados sejam executados com mais rapidez e eficiência, pois o hardware do processador subjacente é mais eficiente para o tipo de processamento necessário. Ter tipos separados de processadores de hardware, incluindo aceleradores, é conhecido como computação heterogênea porque há vários tipos de recursos de computação disponíveis para o aplicativo utilizar.
Em geral, os aceleradores de hardware têm uma estrutura de processamento paralelo que permite que executem tarefas simultaneamente, em vez de em uma forma linear ou serial. Dessa forma, eles conseguem otimizar as partes de processamento intensivo do plano de dados dos aplicativos, enquanto a CPU continua a executar o código do plano de controle que não pode ser executado em paralelo. O resultado é uma computação eficiente e de alto desempenho.

Por que você precisa de computação acelerada?
Você precisa de computação acelerada porque os aplicativos atuais exigem mais velocidade e eficiência do que as CPUs tradicionais conseguem oferecer por si só. Isso é ainda mais verdadeiro quando se considera o papel cada vez maior da inteligência artificial (IA). As empresas de todos os setores dependerão cada vez mais da computação acelerada para continuarem competitivas.
Onde a computação acelerada é usada?
A computação acelerada é usada em um grande número de aplicativos e setores atualmente, especialmente à medida que o 5G é implementado e nos tornamos mais dependentes da Internet das Coisas (IoT). As empresas de comércio financeiro a utilizam para obter negociações mais rápidas e latência mínima. O setor automotivo a utiliza para monitoramento no veículo e sistemas avançados de assistência ao motorista. As organizações a utilizam para dar sentido aos dados. Os desenvolvedores de jogos de videogame dependem dela para criar simulações e gráficos de alta qualidade.
Com toda a dependência da computação acelerada em vários setores, os aplicativos atuais precisam ter a capacidade de lidar com a demanda por maior processamento de dados para permanecerem competitivos.
Quais soluções estão disponíveis para computação acelerada?
Há diferentes tipos de soluções disponíveis para computação acelerada, cada uma com seus próprios pontos fortes e fracos. A solução que você escolher dependerá das demandas do seu aplicativo.

Unidades de processamento gráfico (GPUs)
As GPUs são chips especializados que aceleram determinadas tarefas de processamento de dados que as CPUs realizam com menos eficiência. A GPU trabalha com a CPU ajudando a descarregar grande parte do processamento de dados brutos em um aplicativo. Graças à sua arquitetura de processamento paralelo, as GPUs podem processar grandes quantidades de dados simultaneamente.
Como o nome sugere, as GPUs foram desenvolvidas para acelerar a renderização de gráficos. Atualmente, as GPUs estão mais programáveis e flexíveis do que nunca, e os desenvolvedores de vários setores as utilizam para IA e produção criativa. Você também pode usar várias GPUs juntas em supercomputadores e estações de trabalho para acelerar o processamento de vídeos, a renderização em 3D, as simulações e o treinamento de modelos de aprendizado de máquina.

Unidades de processamento de tensor (TPUs)
As TPUs são circuitos especializados que implementam o controle e a lógica aritmética necessários para executar algoritmos de aprendizado de máquina. Suas unidades lógicas aritméticas, circuitos digitais que realizam operações aritméticas e lógicas, são conectadas diretamente umas às outras. Isso permite a transferência direta de dados sem a necessidade de usar nenhuma memória. As TPUs são otimizadas para acelerar o código de ML e foram especificamente desenvolvidas para acelerar o TensorFlow, a biblioteca de software de ML e IA de código aberto do Google.
Computação adaptativa
A computação adaptativa é baseada em um tipo de tecnologia existente: FPGAs (field-programmable gate arrays, matrizes de portas programáveis em campo). As FPGAs compreendem dispositivos desenvolvidos para serem configurados após a fabricação, daí o nome "programável em campo".
A computação adaptativa é o único tipo de computação acelerada em que o hardware não é permanentemente fixado durante a fabricação. Em vez disso, a computação adaptativa envolve hardware que pode ser personalizado para um aplicativo específico ou até mesmo para uma função de aceleração específica. Ao personalizar a arquitetura para atender a necessidades específicas, as soluções de computação adaptativa podem permitir uma eficiência excepcional para vários aplicativos.