Estoy tratando de comprender las fortalezas relativas de las CPU frente a las GPU.
Citando la opinión popular, "cuantos más núcleos, mejor", según esa lógica, una GPU siempre debería superar a una CPU, y lo hace con la minería de criptomonedas y las finanzas cuantitativas, ya que acabo de crear un programa rápido que calcula las volatilidades implícitas en un extremo. fracción del tiempo con mi GPU frente a mi CPU.
Pero mientras investigaba el tema, me encontré con preguntas y respuestas comoeste.
Pido disculpas si esta pregunta puede ser demasiado amplia, pero solo tuve una formación rudimentaria en ingeniería eléctrica y me preguntaba si había una explicación mágica de por qué se prefiere una CPU a una GPU para tareas normales como las descritas en el enlace. Preguntas y respuestas: "predicción de sucursales, canalización, superescalador, etc."
(Como beneficio adicional, ¿qué significa esta cita? "Además, los algoritmos necesarios no tenían que lidiar con ramas, ya que casi cualquier rama que fuera necesaria podría lograrse estableciendo un coeficiente en cero o uno").
Respuesta1
La arquitectura de una GPU está diseñada para manejar algoritmos y programas vectoriales, como cálculos matemáticos, especialmente para gráficos, que no realizan muchas ramificaciones ni saltos y se preocupan más por el flujo de datos a través del procesador. Por lo tanto, es más optimizado para esto, mientras que una CPU de uso general tiene una arquitectura diferente que puede manejar mejor los saltos y bifurcaciones a expensas del flujo de datos.
Si busca el diseño de cualquiera de estos tipos de CPU, será evidente en qué se diferencian.
(Sé que esta respuesta es un poco aburrida, pero acabo de despertar y han pasado años desde que diseñé procesadores).
Respuesta2
La segunda respuesta en la pregunta que vinculó (no la aceptada, pero la que obtuvo más votos) está bien escrita y, en mi opinión, es suficientemente detallada.
Si está dispuesto a obtener una comprensión más profunda de los conceptos mencionados allí, creo que será mejor que haga preguntas separadas para cada uno (y explique qué es exactamente lo que no comprende). La razón es que estos conceptos son tanto arquitectónicos como microarquitectónicos, y su descripción a cualquier nivel aceptable requiere una pregunta aparte.
Por analogía, puedes pensar en las CPU como una navaja suiza: pueden hacer muchas cosas y serán útiles en cualquier situación. Sin embargo, si sabes que estás a punto de cortar una ensalada para 300 personas, cualquier cuchillo de cocina superará al suizo más sofisticado. GPU es un cuchillo de cocina.
Las CPU son más adecuadas para una amplia variedad de tareas realizadas por un usuario "normal". Sin embargo, si un usuario sabe que la tarea requerirá cálculos matemáticos extensos, se debe considerar la GPU. Si la tarea, además de ser cálculos matemáticos, puede realizarse en paralelo, esta tarea puede etiquetarse como "GPU adaptada".