Sopas de letrinhas e chips de silício
Data: Nov. 4, 2020, 11:03 p.m.
Pra que serve uma CPU ou uma GPU?
CPU (Central Processing Unit): CPUs são um tipo de cérebro generalista - processam vários tipos de tarefas, inclusive aquelas mais difíceis. Porém, várias tarefas podem ser enviadas para vários núcleos de uma CPU. São boas em fazer de tudo um pouco: contas com números quebrados (usando a Floating Point Unit ou FPU), contas com números inteiros e lógica (usando a Arithmetic Logic Unit ou ALU).
GPU (Graphics Processing Unit): GPUs são um tipo de cérebro artístico - feitas para lidar com tarefas de paralelização - partes pequenas e executadas ao mesmo tempo (programação dinâmica). GPUs são um tipo de processador com vários núcleos, especializados em fazer contas com números quebrados e com matrizes (Tensor Cores). Essas características são essenciais para uma animação 3D e para resolver problemas de inteligência artificial com operação com matrizes!
Uma CPU ou GPU tem vários componentes menores (ALUs, FPUs, …) e sua montagem padrão - um tipo de LEGO - não é direcionada para a resolução de um problema específico. Nesse caso podemos montar nosso próprio LEGO com as FPGAs e ASICs:
FPGA (Field Programmable Gate Array): Um FPGA pode ter todos os componentes básicos de uma CPU e de uma GPU, mas ele permite que você ligue esse LEGO de componentes da forma que você achar melhor para um problema específico. Um FPGA pode ser mil vezes mais rápido na resolução de um problema que uma CPU ou GPU!
ASIC (Application Specific Integrated Circuit): Os ASICs são parecidos com uma FPGA, mas com a programação fixa talhada no silício sem a possibilidade de alteração, gerando um ganho de velocidade e eficiência no uso de energia. Os ASICs são a febre na mineração de criptomoedas e parte de tecnologias de automação e controle.
Isso porque nem falamos das TPUs, DPUs, VPUs, … O universo de chips e circuitos especializados não tem fim!