¿Cuál es la diferencia entre la arquitectura de CPU y la arquitectura de GPU?

Los libros podrían (y han sido) escritos sobre los costos y beneficios de diferentes arquitecturas de procesador.

Pero fundamentalmente, las CPU y las GPU difieren en su forma general: las CPU son estrechas y profundas , mientras que las GPU son poco profundas y anchas .

Eso significa que las CPU ejecutan entre 1 y 16 subprocesos a la vez, mientras que las GPU ejecutan miles de núcleos (llamados unidades de cómputo) en paralelo. Hay muchas diferencias entre los dos:

  • una unidad de cómputo GPU es mucho más simple que un núcleo de CPU superescalar moderno
  • una unidad de cómputo GPU no hace predicción de rama
  • Todos los núcleos de GPU ejecutan las mismas instrucciones, al mismo tiempo, pero operan con datos diferentes (SIMD)
  • un núcleo de CPU tiene un caché masivo, predicción de bifurcación y mayor velocidad de reloj

Si una CPU es un guerrero gigante con músculos ondulantes y reflejos luminosos, una GPU es un ejército completo de Pitufos de 20 lb que llevan espadas de madera.

Creo que esta pregunta se había planteado en Quora antes:

¿Cuál es la diferencia entre una CPU y una GPU?

Simplemente, en el sentido de la arquitectura, la CPU está compuesta de pocos núcleos de unidades lógicas aritméticas (ALU) para el procesamiento de propósito general con mucha memoria caché y un gran módulo de control que puede manejar algunos subprocesos de software a la vez. La CPU está optimizada para operaciones en serie ya que su reloj es muy alto. Mientras que la GPU, por otro lado, tiene muchas ALU pequeñas, pequeños módulos de control y pequeña caché. GPU está optimizado para operaciones paralelas.

Adam y Jamie de Mythbusters tienen una forma divertida de explicarlo.

Otras referencias:

¿Cuál es la diferencia entre una CPU y una GPU? El | El blog oficial de NVIDIA

GPU: el próximo must-have

Una CPU tiene solo unos pocos núcleos muy rápidos capaces de hacer ecuaciones complejas con bastante rapidez. También tienen varias características que los núcleos de GPU no tienen, como la memoria virtual.

Una GPU, por otro lado, está compuesta por miles de núcleos, que funcionan a una velocidad más lenta. Esto les permite manejar miles de hilos en paralelo en cualquier momento dado. Esto les permite ser mucho más eficientes y poderosos que una CPU.

Sin embargo, cuando una GPU se queda corta es en programas que no se pueden paralelizar, requieren más funciones o tienen operaciones complejas por las que tienen que trabajar. Un ejemplo de uno de estos programas es su sistema operativo.

Mira esto Las diferencias entre una CPU y una GPU