Os processadores gráficos presentes nas placas de vídeo são incrivelmente poderosos. Nos mais recentes lançamentos, as fabricantes enalteceram justamente essa questão do “poder computacional”, algo que também é usado como parâmetro de comparação entre consoles.

A evolução desses componentes foi tão significante que vários aplicativos passaram a usar a GPU para acelerar tarefas específicas. Às vezes, uma atividade que demorava horas para ser finalizada na CPU, agora é realizada em poucos minutos na GPU.

Todavia, se repararmos, gigantes como Intel e AMD continuam investindo pesado em novas arquiteturas para processadores, o que pode deixar muitas dúvidas sobre o rumo das coisas nesse avanço tecnológico. Afinal, se a GPU é tão superior, por que ainda usamos CPUs? Aliás, como é possível um chip gráfico desempenhar melhor do que um processador?

O assunto é bastante complexo, ainda mais se pensarmos justamente nas propostas de cada peça, uma vez que um chip gráfico parece muito mais apropriado para tarefas de vídeo, não é mesmo? Afinal, por que não é possível trocar os tradicionais processadores da Intel e AMD por chips gráficos da NVIDIA e AMD? Vamos esclarecer um pouco dessa história!

Propósitos completamente distintos

A resposta mais óbvia para essas perguntas pode parecer um tanto “curta e grossa”, mas é a mais sucinta possível: um chip de vídeo não pode substituir um processador, porque ele não é um processador. Essas duas peças são completamente distintas em formatos, arquiteturas, linguagens, funcionamento e características.

A CPU é a unidade central de processamento do computador e, como o nome diz, ela é o centro de tudo. O processador é instalado na placa-mãe e se conecta a todos os outros componentes da máquina, sendo até mesmo o responsável por controlar a atividade de várias dessas peças, incluindo a placa de vídeo.

O processador é o cérebro de tudo e concentra várias tarefas. Ele cuida de atividades simples, como o carregamento dos aplicativos (delegando ações para memória RAM, HD, chip de rede e placa de vídeo), até as situações mais complexas — como a execução de filtros complexos no seu editor de imagens favorito.

A GPU é a unidade de processamento gráfico, sendo responsável, essencialmente, pela parte de vídeo em quaisquer aplicações. Seja a interface do sistema operacional, os vídeos aos quais você assiste no YouTube, as imagens na sua galeria de fotos ou as texturas e polígonos de um jogo, todas essas tarefas são realizadas diretamente no processador de vídeo.

Essas são características gerais dos componentes, mas, em uma perspectiva intrínseca, podemos dizer que a CPU é focada em tarefas que demandam mais cálculos e operações complexas que necessitam de poucos núcleos e clocks mais altos. A GPU é mais voltada para cálculos simples em múltiplos núcleos, sendo que ela trabalha com clocks mais baixos. Fora isso, as duas têm arquiteturas muito diferentes, o que requisita linguagens completamente distintas.

Computadores totalmente diferentes

Essa distinção entre os componentes já evidencia como é complexo “trocar a CPU pela GPU”. Um processador de vídeo não tem em sua natureza a responsabilidade de repassar ações para outras peças ou de efetuar tarefas básicas. Trata-se de um componente focado em vídeo, que tem recursos dedicados, incluindo memória própria, para os propósitos gráficos.

No caso de uma suposta máquina em que fosse possível trocar a CPU pela GPU, toda a arquitetura deveria ser reprogramada, pois as atuais máquinas não são preparadas para centralizar o processamento na placa de vídeo. Um chip gráfico não tem os requisitos básicos para controlar a BIOS e “puxar” toda a responsabilidade no controle das peças para si.

Em uma situação hipotética, essa troca requisitaria uma reestruturação completa da placa-mãe, que deveria ter todas as trilhas alteradas e a BIOS reescrita para conseguir mudar as tarefas de um chip para o outro. Além disso, a placa de vídeo deveria receber alterações, já que ela não está pronta para conversar com HD e RAM da mesma forma que as CPUs.

Da mesma forma, os sistemas não são projetados para esse tipo de ação. Não é só mudar uma opção no software para ele concentrar tudo na GPU. A lógica de um sistema é complexa e não é preparada para uma placa de vídeo. Então, não é algo rápido e simples. Os PCs têm uma arquitetura e não convém uma alteração para supostamente agilizar o processamento.

Uma nova estrutura de programação

Bom, toda essa lógica de adotar o processador de vídeo para outras tarefas vem do fato que há alguns softwares que já propõem tal realocação de recursos. É o caso de programas como Adobe Photoshop, Adobe Premiere, Apple FinalCut, AutoCAD, Autodesk 3ds Max, Maxon Cinema 4D e Sony Vegas Pro, só para citar alguns das centenas com tais façanhas.

Todavia, para que as tarefas sejam realizadas no processador gráfico, as desenvolvedoras precisam programar parte do código com linguagens que utilizem a característica GPGPU (computação de propósito geral na unidade de processamento gráfico).

Assim, ações como a renderização de um projeto no Premiere podem ser feitas na GPU, mas, para tanto, a Adobe teve de retrabalhar alguns componentes do software para redirecionar essa tarefa para o chip gráfico.

O trabalho deve ser realizado com base em linguagens como a CUDA, FireStream, OpenCL e DirectCompute, as quais são apropriadas para “conversar” com os núcleos das placas de vídeo. Com base nessas APIs, o processador de vídeo pode realizar a computação paralela e retornar os resultados para o software, acelerando os processos em conjunto com a CPU.

É importante notar que apesar de a GPU não ser uma solução prática para substituir a CPU nos computadores pessoais, ela pode ser uma alternativa viável em servidores, data centers, máquinas focadas em deep learning e na computação em nuvem.

Todavia, para tais aplicações, em vez de usar uma GeForce ou uma Radeon tradicional, as empresas apostam em chips mais sofisticados, como o NVIDIA Tesla ou o AMD Radeon Instinct, e tecnologias avançadas de inteligência artificial, tal qual a NVIDIA Volta. Talvez, no futuro, as GPUs tomem a vez das CPUs nos computadores, mas, por ora, esta não é uma solução prática.