Clicky

Diferenças entre CPU e GPU

CPU - Cérebro do computador

A CPU é o cérebro de um computador. Podemos pensar dessa forma porque é a CPU que vai gerenciar todas as ações que o computador estiver fazendo, o hardware do computador, os periféricos; enfim, tudo passa pelas decisões da CPU.

Então, ela é como um cérebro se compararmos com o corpo humano, isto porque o cérebro humano é preparado não apenas para pensar, mas para executar várias funções, por exemplo: que o coração continue batendo, gerenciando todo o processo de digestão, e assim por diante. Ou seja, ele executa várias tarefas no front-end, na parte do pensamento, mas no back-end, a parte que nem controlamos, ele gerencia funções no corpo humano.

Por isso podemos fazer essa analogia com a CPU. A CPU está executando funções, programas, hardware e, também, pode executar interrupções; por exemplo, quando estamos mexendo com o mouse ou o teclado, ela está gerenciando o processo, aí recebe uma ação e começa a entender o que se está fazendo com esse comando e interrompe uma tarefa para executar outra, e assim por diante ela faz toda essa gestão do que interromper, o que parar, o que fazer depois.

Por isso, as CPU’s são excelentes para o processamento serial (uma coisa que vem depois da outra).

Clock Base e Clock Boost

Mas, é evidente que a CPU não faz somente o processamento serial, ela também paraleliza várias tarefas, conseguindo gerenciar várias funções ao mesmo tempo, e a sua evolução ao longo dos anos, na história dos computadores, avançou em duas frentes principais. Uma é o clock, que é a velocidade de quantas operações feitas por segundos; e a outra é a quantidade de núcleos, ou quantas operações ela consegue paralelizar.

Falando sobre o clock quantas operações ela consegue fazer por segundo – ele é medido na unidade de Hertz (Hz): MegaHertz (MHz) ou GigaHertz (GHz). Hoje, em 2021, as CPU’s mais velozes trabalham na faixa de até cinco GigaHertz (GHz) e, geralmente, elas têm um clock que é chamado de clock base, além do chamado clock boost.

Túnel em alta velocidade

Qual é a diferença dos dois? O clock base seria aquele que está operando numa situação normal, sem exigir muito da CPU, fazendo processos corriqueiros; então ela trabalhará na taxa de clock básico, até para não consumir muita energia.

Agora, se for preciso uma computação um pouco mais intensa, então a CPU automaticamente poderá dar um boost e acelerar o seu clock até sua taxa de clock boost, que é o máximo que ela consegue operar para executar especificamente essas tarefas que exigem muita computação.

Geralmente as CPU’s têm a informação de qual é o clock base e o clock boost; e claro que o clock boost tem algumas limitações: normalmente só podem ser alcançados em single-thread, ou seja, quando estiverem operando com um único núcleo (geralmente eles não conseguem trabalhar com todos os núcleos da CPU com boost máximo em todos eles). Também é preciso que a temperatura permita isso, porque a temperatura é um fator crucial para o processamento, para a computação como um todo, porque é prejudicial para o equipamento se ele estiver operando a uma temperatura muito alta.

Então, a CPU sempre consultará a temperatura em que ela está para saber se ela realmente poderá dar o boost ou não. Se a temperatura não permitir, ela continuará trabalhando com seu clock base. Inclusive, se formos analisar grandes centros de computação, veremos que, geralmente, fala-se muito de resfriamento, que as salas são muito resfriadas, com temperaturas muito baixas, para permitir o máximo de performance possível. E, se alguém pensa em montar uma máquina que seja bastante exigida, é importante analisar bastante a questão do seu resfriamento, os coolers que serão usados, e assim por diante.

Núcleos da CPU

Além do clock, uma outra coisa que permitiu que as CPU’s ficassem mais potentes, que é a quantidade de núcleos. No início começou-se a falar de dual-core, que seriam dois núcleos, ao invés de ser um só núcleo; passaram a ser dois, quase como se tivessem “dobrando a capacidade de processamento” do que se conseguia, então, fazer em termos de paralelismo. É claro que quando se está falando de vários núcleos, podemos pensar no conceito de paralelização; então, agora há um núcleo que consegue fazer algumas atividades seriais, mas há um outro núcleo que consegue outras operações em paralelo. Com isso, podemos executar diferentes programas no computador: podemos estar com o Excel e o navegador de internet abertos, estar clicando e fazendo outras coisas, iniciando uma chamada, e a CPU consegue gerenciar todas essas tarefas simultaneamente, em paralelo. Tudo isso, graças a sua capacidade de gerenciamento de diferentes threads, tendo mais núcleos e, quanto mais núcleos uma CPU tem, mais tarefas ela consegue fazer em paralelo.

Mãe trabalhando no computador e cuidando do filho ao mesmo tempo

E como ela é responsável por, basicamente, tudo, como ela é o cérebro do computador, mesmo não tendo tantos núcleos assim, a CPU consegue paralelizar muitas tarefas. Hoje as CPU’s que estão na maior parte dos equipamentos possuem quatro núcleos e, algumas mais avançadas têm até oito núcleos físicos + 8 núcleos lógicos (as que os gamers usam). Acima de oito núcleos físicos, as CPUs são bem mais raras e caras, mas já existem CPU’s voltadas para servidores que possuem algumas dezenas de núcleos. Podemos, então, pensar nas CPU’s na casa das unidades e dezenas, em termos de quantidades de núcleos, não muito mais do que isso. Não há CPU’s na casa das centenas de núcleos ainda, apesar de que, em breve, isso deverá existir.

GPU

As GPU’s, por sua vez, operam na casa dos milhares de núcleos. O foco da GPU é processamento paralelo: elas têm milhares de núcleos enquanto as CPU’s possuem alguns apenas. Porém, a CPU tem a vantagem de conseguir fazer tudo, pois como um cérebro, ela faz operações seriais e consegue paralelizar. No entanto, a CPU tem um limite por ser usada para propósitos mais gerais; ou seja, ela faz qualquer coisa, então mais difícil permitir que ela seja multitarefa e, ao mesmo tempo, tenha uma performance muito elevada para paralelismo. Por isso as GPU’s surgiram para oferecer um foco em paralelismo.

Agora, temos o melhor dos dois mundos: CPUs rodando todas as tarefas essenciais enquanto as GPUs rodam processos puramente paralelizáveis como renderização de vídeos ou treinamento de redes neurais.

Em resumo, entenda que a GPU pode ser muito boa para coisas paralelas, mas não foi feita para o propósito geral – executar qualquer função, rodar qualquer software –, e é um pouco mais lenta no seu clock e tem mais latência do que a CPU.

Clock da GPU

O clock da GPU é mais lento do que o clock da CPU, por isso se você estiver precisando fazer uma tarefa serial não adianta pensar que, pelo fato da GPU ser mais potente, você fará tudo através dela.

É muito comum também confundir a CPU com o gabinete: muitos chamam o gabinete de CPU mas, na realidade, ela é uma pecinha pequena que está dentro do gabinete, acoplada juntamente com outras peças, conectada à placa mãe, de maneira que possa gerenciar outras peças como as memórias RAM e ROM/SSD, a própria GPU e outros periféricos. Talvez a popularização de se chamar o gabinete de CPU tenha ocorrido pelo fato dela ser uma das peças mais importantes do gabinete.

CPU x GPU na prática

Em aplicações de Deep Learning podemos ver claramente a diferença na utilização destas formas de processamento, percebendo os diferentes desempenhos apresentados.

Em nosso curso de Redes Neurais, Deep Learning e Visão Computacional mostramos de maneira detalhada essas aplicações, construindo scripts para processamento em CPU e também em GPU, e indicando as situações que favorecem uma ou outra opção.

cursos