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

CPU e GPU: como dividem uma tarefa
- Organizar tarefa
- Distribuir cálculo compatível
- Usar resultados
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.
Fontes para aprofundar
- NVIDIA — CUDA Programming Guide: introdução e modelo de programação (fonte primária)