Qual é a diferença entre GPUs e CPUs?

Uma CPU, ou unidade central de processamento, é um componente de hardware que é a unidade computacional central em um servidor. Ela lida com todos os tipos de tarefas de computação necessárias para a execução do sistema operacional e das aplicações. Uma unidade de processamento gráfico (GPU) é um componente de hardware similar, porém mais especializado. Ela pode lidar com mais eficiência com operações matemáticas complexas executadas em paralelo do que uma CPU geral. Embora as GPUs tenham sido criadas inicialmente para lidar com tarefas de renderização gráfica em jogos e animações, seus usos agora se estendem para muito além disso.

Semelhanças entre GPUs e CPUs

Tanto as CPUs quanto as GPUs são unidades de hardware que fazem o computador funcionar. Você pode pensar nelas como o cérebro de um dispositivo de computação. Ambas têm componentes internos semelhantes, incluindo núcleos, memória e unidades de controle.

Núcleo

Tanto a arquitetura de GPU quanto de CPU têm núcleos que executam todos os cálculos e funções lógicas. O núcleo extrai instruções da memória na forma de sinais digitais, chamados de bits. Ele decodifica as instruções e as executa através de portas lógicas em um período de tempo chamado de ciclo de instruções. Inicialmente, as CPUs tinham um único núcleo, mas hoje CPUs e GPUs com vários núcleos são comuns.

Memória

Tanto as CPUs quanto as GPUs concluem milhões de cálculos a cada segundo e usam memória interna para melhorar a performance do processamento. O cache é a memória interna que facilita o acesso rápido aos dados. Nas CPUs, os rótulos L1, L2 ou L3 indicam a organização do cache. L1 é o mais rápido e o L3 é o mais lento. Uma unidade de gerenciamento de memória (MMU) controla a movimentação de dados entre o núcleo da CPU, o cache e a RAM em cada ciclo de instruções.

Unidade de controle

A unidade de controle sincroniza as tarefas de processamento e determina a frequência dos pulsos elétricos gerados pela unidade de processamento . CPUs e GPUs com maior frequência oferecem melhor performance. No entanto, como o design e a configuração desses componentes diferem em uma CPU e GPU, os dois são úteis em situações diferentes.

Principais diferenças: CPUs vs. GPUs

A chegada da computação gráfica e da animação resultou nas primeiras workloads de computação intensiva que as CPUs simplesmente não foram projetadas para suportar. Por exemplo, a animação de videogames exigia que as aplicações processassem dados para exibir milhares de pixels, cada um com sua própria cor, intensidade de luz e movimento. Os cálculos matemáticos geométricos em CPUs na época causavam problemas de performance.

Os fabricantes de hardware começaram a reconhecer que descarregar tarefas comuns orientadas à multimídia poderia aliviar a CPU e aumentar a performance. Atualmente, as workloads da unidade de processamento gráfico (GPU) lidam com várias aplicações de computação intensiva, como machine learning e inteligência artificial, com mais eficiência do que as CPUs.

Função

A principal diferença entre uma CPU e uma GPU está em suas funções. Um servidor não pode ser executado sem uma CPU. A CPU executa todas as tarefas necessárias para que todos os softwares no servidor sejam executados corretamente. Uma GPU, por outro lado, oferece suporte à CPU para realizar cálculos simultâneos. Uma GPU pode concluir tarefas simples e repetitivas com muito mais rapidez, pois pode dividi-las em componentes menores e finalizá-los em paralelo.

Design

As GPUs se destacam no processamento paralelo por meio de vários núcleos ou unidades lógicas aritméticas (ALU). Os núcleos da GPU são menos poderosos do que os núcleos da CPU e têm menos memória. Embora as CPUs possam alternar entre diferentes conjuntos de instruções rapidamente, uma GPU simplesmente pega um grande volume das mesmas instruções e as envia em alta velocidade. Como resultado, as funções da GPU desempenham um papel importante na computação paralela.

Exemplo das diferenças

Para entender melhor, considere a seguinte analogia. A CPU é como o chefe de cozinha de um grande restaurante que precisa garantir que centenas de hambúrgueres sejam vendidos. Mesmo que o chefe de cozinha possa fazer isso pessoalmente, essa não é a melhor maneira de usar seu tempo. Todas as operações da cozinha podem ser interrompidas ou desaceleradas enquanto o chefe de cozinha está concluindo essa tarefa simples, mas demorada. Para evitar isso, o chefe de cozinha pode usar assistentes juniores que cozinham vários hambúrgueres em paralelo. A GPU é mais parecida com um assistente júnior com dez mãos que pode virar 100 hambúrgueres em 10 segundos.

Quando usar GPUs em vez de CPUs

É importante observar que a escolha entre CPUs e unidades de processamento gráfico (GPU) não é uma opção. Cada servidor ou instância de servidor na nuvem exige uma CPU para ser executado. No entanto, alguns servidores também incluem GPUs como coprocessadores adicionais. Workloads específicas são mais adequadas para execução em servidores com GPUs que realizam determinadas funções com mais eficiência. Por exemplo, GPUs podem ser ótimas para cálculos de números de pontos flutuantes, processamento de gráficos ou correspondência de padrões de dados.

Aqui estão algumas aplicações em que pode ser útil usar GPUs em vez de CPUs.

Aprendizado profundo

O aprendizado profundo é um método de inteligência artificial (IA) que ensina computadores a processar dados de uma forma inspirada pelo cérebro humano. Por exemplo, os algoritmos de aprendizado profundo reconhecem padrões complexos em imagens, textos, sons e outros dados para produzir insights e previsões precisas. Os servidores baseados em GPU oferecem alta performance para tarefas de machine learning, redes neurais e aprendizado profundo.

Leia sobre aprendizado profundo »

Leia sobre machine learning »

Leia sobre redes neurais »

Computação de alta performance

O termo computação de alta performance refere-se a tarefas que exigem um poder de computação muito alto. Veja alguns exemplos:

  • Você precisa executar simulações geocientíficas e processamento sísmico em alta velocidade e grande escala
  • Você precisa projetar simulações financeiras para identificar riscos do portfólio de produtos, oportunidades de cobertura e muito mais
  • Você precisa criar aplicações de ciência de dados preditivas, em tempo real ou retrospectivas em medicina, genômica e descoberta de medicamentos

Um sistema de computador baseado em GPU é mais adequado para tarefas de computação de alta performance como essas.

Leia sobre computação de alta performance »

Veículos autônomos

Para desenvolver e implantar sistemas avançados de assistência ao motorista (ADAS) e sistemas de veículos autônomos (AV), você precisa de tecnologias de computação, armazenamento, rede e análise altamente escaláveis. Por exemplo, você precisa de recursos para coleta, rotulagem e anotação de dados, desenvolvimento de mapas, desenvolvimento de algoritmos, simulações e verificação. Essas workloads complexas exigem o suporte de sistemas de computador baseados em GPU para funcionar com eficiência.

Resumo das diferenças: CPU vs. GPU

 

CPU

Unidade de processamento gráfico (GPU)

Função

Componente generalizado que manipula as principais funções de processamento de um servidor

Componente especializado que se destaca em computação paralela

Processamento

Projetada para processamento de instruções em série

Projetada para processamento paralelo de instruções

Design

Menos núcleos mais poderosos

Mais núcleos do que CPUs, mas menos poderosos que núcleos de CPU

Mais adequada para

Aplicações de computação de uso geral

Aplicações de computação de alta performance

Como a AWS pode oferecer suporte aos seus requisitos de servidor de CPU e GPU?

A Amazon Web Services (AWS) oferece o Amazon Elastic Compute Cloud (Amazon EC2), a plataforma de computação mais ampla e profunda do mercado. Ele tem mais de 500 instâncias, e você pode escolher o processador, armazenamento, rede, sistema operacional e modelo de compra mais recente para atender melhor às necessidades da sua workload.

Aqui estão alguns destaques do que o Amazon EC2 oferece:

  • Instâncias de uso geral fornecem um equilíbrio entre recursos de computação, memória e rede. Você pode escolher entre configurações com 2 a 128 CPUs virtuais.
  • Instâncias com computação acelerada fornecem núcleos adicionais de unidade de processamento gráfico (GPU) para maior potência de computação. Você obtém até oito GPUs em cada instância.

Comece a usar instâncias de servidor na AWS criando uma conta gratuita hoje mesmo.

Próximas etapas com a AWS

Comece a criar com GPUs
Comece a criar com CPUs