Estou tentando entender os pontos fortes relativos de CPUs versus GPUs.
Citando a opinião popular, "quanto mais núcleos, melhor", então, por essa lógica, uma GPU deve sempre superar uma CPU, e isso acontece com a mineração de criptomoedas e o financiamento quantitativo, já que acabei de criar um programa rápido que calcula volatilidades implícitas em um extremo fração do tempo com minha GPU versus minha CPU.
Mas enquanto investigava o assunto, me deparei com perguntas e respostas comoesse.
Peço desculpas se esta pergunta pode ser muito ampla, mas eu só tive treinamento rudimentar em engenharia elétrica e queria saber se havia uma explicação mágica para por que uma CPU é preferida a uma GPU para tarefas normais, como as descritas no link Perguntas e respostas: "previsão de ramificação, pipeline, superscaler, etc."
(Como bônus, o que esta citação significa: "Além disso, os algoritmos necessários não precisavam lidar com ramificações, uma vez que quase qualquer ramificação necessária poderia ser alcançada definindo um coeficiente como zero ou um.")
Responder1
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 fazem muitas ramificações e saltos e estão mais preocupados com o fluxo de dados através do processador. Portanto, é mais simplificado para isso, enquanto uma CPU de uso geral possui uma arquitetura diferente que pode lidar melhor com saltos e ramificações em detrimento do fluxo de dados.
Se você procurar o layout de qualquer um desses tipos de CPU, ficará evidente como eles são diferentes.
(Eu sei que esta resposta é um pouco idiota, mas acabei de acordar e já faz anos que não projetei o processador.)
Responder2
A segunda resposta da pergunta que você vinculou (não a aceita, mas a que obteve mais votos) está bem escrita e suficientemente detalhada na minha opinião.
Se você deseja obter uma compreensão mais profunda dos conceitos mencionados ali, acho melhor fazer perguntas separadas para cada um (e explicar exatamente o que você não entende). A razão é que estes conceitos são tanto arquitectónicos como micro-arquitecturais, e a sua descrição em qualquer nível aceitável requer uma questão separada.
Por analogia, você pode pensar nas CPUs como um canivete suíço – elas podem fazer muitas coisas e serão úteis em qualquer situação. No entanto, se você sabe que vai cortar uma salada para 300 pessoas, qualquer faca de cozinha terá desempenho superior ao da suíça mais sofisticada. GPU é uma faca de cozinha.
As CPUs são mais adequadas para uma ampla variedade de tarefas executadas por um usuário “normal”. No entanto, se um usuário souber que a tarefa exigirá cálculos matemáticos extensos, a GPU deverá ser considerada. Se a tarefa, além de ser cálculos matemáticos, puder ser paralela - esta tarefa pode ser rotulada como "GPU adaptada".