← Todos os guias

Guia · Hardware

CPU e GPU: como dividem uma tarefa?

CPU e GPU podem cooperar num programa. A CPU atende funções gerais e organiza trabalho; a GPU pode executar muitas operações compatíveis em paralelo. Dividir a tarefa exige considerar dependências, movimentação de dados e custo de preparação.

Escrito pela equipe Compuzilla

Publicado em . Atualizado em .

Nesta leitura
Compuzilla sorrindo ao lado de um diagrama: CPU e GPU: como dividem uma tarefa.

CPU e GPU: como dividem uma tarefa

  1. Organizar tarefa
  2. Distribuir cálculo compatível
  3. Usar resultados
A divisão depende do trabalho e da plataforma. Movimentação de dados e sincronização também têm custo. Ilustração: equipe Compuzilla.

Uma imagem como exemplo

Imagine aplicar a mesma transformação de cor a milhares de pixels. A decisão de qual arquivo abrir, o tratamento de um erro e a preparação do trabalho envolvem uma lógica geral. O cálculo repetido sobre muitos pixels pode oferecer paralelismo adequado a uma GPU.

Esse exemplo isola uma transformação simples. Nem todo processamento de imagem permite tratar cada pixel de forma independente: algumas operações precisam de informações de regiões vizinhas ou de etapas anteriores.

Preparar, calcular e continuar

A aplicação organiza dados e decide o que enviar ao recurso de processamento. Conforme a plataforma, pode ser necessário transferir dados, iniciar trabalho e esperar um resultado. Na programação CUDA, o modelo organiza execuções em grupos de threads; outras plataformas oferecem interfaces próprias.

O programa precisa considerar esses passos, além do cálculo. Se preparar e mover os dados custa mais que a operação economizada, usar a GPU pode não trazer ganho.

Dependências limitam a divisão

Uma sequência em que cada operação precisa do resultado da anterior não se divide da mesma maneira que milhares de operações semelhantes. Há também custos de sincronização quando partes precisam esperar umas pelas outras.

Por isso, contar unidades de execução e comparar esse número diretamente com núcleos de CPU produz uma conclusão incompleta. As arquiteturas e o tipo de trabalho importam.

Um sistema combina funções

Uma GPU pode estar numa placa com memória própria ou integrada a outro conjunto de componentes. Essa diferença altera a organização da memória e das transferências. O modelo introdutório aqui descreve funções, sem exigir que todos os dispositivos sigam a mesma montagem.

CPU e GPU não competem pela substituição completa uma da outra em todo uso. Uma aplicação pode aproveitar ambas, desde que tenha suporte e um trabalho apropriado.

Próxima leitura

Leia como um computador executa um programa para situar processamento, sistema e memória.

Continue aprendendo

  • Verbete CPU — A CPU é a parte do computador que executa instruções de programas, como calcular, comparar valores e movimentar dados. Ela trabalha com a memória e outros componentes para realizar as tarefas.
  • Verbete GPU — GPU é um processador projetado para executar muitas operações em paralelo, com uso frequente em gráficos e cálculos sobre conjuntos de dados. O resultado depende de o programa organizar trabalho compatível com essa forma de execução.
  • Verbete Memória RAM — A memória RAM mantém temporariamente os dados que o computador está usando. A RAM comum perde seu conteúdo quando deixa de receber energia.
  • Verbete Algoritmo — Algoritmo é uma sequência bem definida de passos para realizar uma tarefa ou resolver um problema. Ele descreve um procedimento; o código de um programa é uma maneira de expressar e executar esse procedimento.

Fontes para aprofundar