Por que as CPUs são melhores que as GPUs em tarefas regulares?

1

Estou tentando entender os pontos strongs relativos de CPUs vs GPUs.

Citando a opinião popular, "quanto mais núcleos, melhor", então com essa lógica, uma GPU deve sempre superar a CPU, e isso acontece com a mineração criptomoeda e quant finance, já que acabei de criar um programa rápido que calcula as volatilidades implícitas em uma fração extrema do tempo com a minha GPU vs minha CPU.

Mas, como venho investigando o assunto, encontrei perguntas como isso .

Peço desculpas se esta pergunta pode ser muito ampla, mas eu só tive treinamento de engenharia elétrica rudimentar e estava querendo saber se havia uma explicação de bala de prata por que uma CPU é preferida em cima de um GPU para tarefas normais como esses descritos no Q & linkado: "predição de ramificação, pipelining, superescalador, etc."

(Como um bônus, o que esta citação significa: "Além disso, os algoritmos necessários não precisavam lidar com as ramificações, já que praticamente qualquer ramificação que seria necessária poderia ser obtida configurando-se um coeficiente para zero ou um. ")

    
por Community 23.12.2013 / 10:19

2 respostas

1

A arquitetura de uma GPU é projetada para lidar com algoritmos e programas vetoriais, como computação matemática especialmente para gráficos, que não faz muita ramificação e salto e está mais preocupada com o fluxo de dados através do processador. Portanto, é mais simples para isso, enquanto uma CPU de uso geral tem uma arquitetura diferente que pode lidar melhor com os saltos e ramificações às custas do fluxo de dados.

Se você procurar pelo layout de qualquer um desses tipos de CPU, ficará evidente como eles são diferentes.

(Eu sei que esta resposta é um pouco chata, mas eu acabei de acordar e faz anos desde que eu fiz o design do processador.)

    
por 23.12.2013 / 14:54
1

A segunda resposta na pergunta que você ligou (não a que foi aceita, mas a que obteve mais votos) está bem escrita e suficientemente detalhada na minha opinião.

Se você estiver disposto a entender melhor os conceitos citados, acho que é melhor fazer perguntas separadas para cada um (e explicar exatamente o que você não entende). A razão é que esses conceitos são arquitetônicos e micro-arquitetônicos, e sua descrição em qualquer nível aceitável requer uma questão separada.

Em analogia, você pode pensar em CPUs como um canivete suíço - ele pode fazer muita coisa e será útil em qualquer situação. No entanto, se você sabe que está prestes a cortar uma salada para 300 pessoas - qualquer faca de cozinha vai superar o suíço mais sofisticado. A GPU é uma faca de cozinha.

As CPUs são mais adequadas para uma ampla variedade de tarefas executadas por um usuário "regular". No entanto, se um usuário souber que a tarefa exigirá cálculos matemáticos abrangentes, a GPU deverá ser considerada. Se a tarefa, além de ser cálculos matemáticos, poder ser paralelizada - essa tarefa pode ser rotulada como "adaptada à GPU".

    
por 23.12.2013 / 14:57