¿Qué diferencia a una CPU y una GPU, si ambos son procesadores?

Hardware

En un ordenador de sobremesa, así como en un ordenador portátil, entre sus componentes de hardware hay una CPU y otra GPU. Una configuración que se repite también en los teléfonos inteligentes, por ejemplo. Y sabemos que ambos son procesadores, pero ¿en qué se diferencian? La GPU se encarga específicamente de los gráficos, y hay detalles en sus especificaciones técnicas que justifican esta ‘especialización’. Ahondamos en las diferencias y similitudes con mayor detalle para comprender por qué CPU y GPU se dedican a cosas diferentes.

 

La CPU es la unidad central de procesamiento, por sus siglas, mientras que la GPU es la unidad de procesamiento gráfico. La construcción de estos componentes de hardware es similar, y ambos son procesadores compuestos por circuitos integrados con transistores dedicados a cálculo matemático basado en numeraciones binarias. Sin embargo, la CPU se dedica al procesamiento general, y la GPU se dedica al procesamiento específico.

intel core i7-9700k

¿Qué es la CPU?

La CPU, unidad central de procesamiento, es un microprocesadordesde 1970- diseñado para ejecutar secuencias de instrucciones. A esto se dedica fundamentalmente, a cargar programas. Y su trabajo se divide en cuatro pasos fundamentales según la arquitectura de von Neumann: lectura, decodificación, ejecución y escritura. 

¿Cómo funciona la CPU? Este es el esquema básico

  1. Fetch, lectura: Recupera la instrucción de la memoria localizándola gracias a un contador de programa.
  2. Decode, decodificación: Se divide la instrucción en partes que pueden ‘interpretarse’ por las diferentes unidades de la CPU.
  3. Execute, ejecución: Las unidades de la CPU realizan operaciones para ejecutar la instrucción.
  4. Writeback, escritura: Los resultados anteriores se escriben a una cierta forma de memoria.

¿Qué es la GPU?

Aunque de la GPUunidad de procesamiento gráfico se suele hablar como ‘procesador’, en realidad es un coprocesador por su trabajo respecto a la CPU. Se dedica a las operaciones de coma flotante, y está diseñada para reducir la carga de trabajo del procesador central. La elevada segmentación de la GPU, con unidades funcionales, permite el procesamiento de vértices y píxeles de una forma más rápida. Además, su memoria más rápida permite la gestión de resultados intermedios de operaciones de manera más ágil.

Es dependiente de la CPU en tanto que recibe de la misma información en forma de vértices. Estos vértices son tratados para las transformaciones de rotación y movimiento (vertex shader); se define qué parte de los vértices se visualiza (clipping) y se convierten en píxeles por rasterización. A continuación se transforman los píxeles, por ejemplo, para aplicar texturas (pixel shader). Y por último se aplican efectos, justo antes de su almacenamiento en caché.

cpu gpu

Pero entonces ¿qué diferencia a una CPU y GPU?

En la vista más amplia, la diferencia entre CPU y GPU está en su diseño: pocos núcleos muy complejos en la CPU, y miles de núcleos muy sencillos en la GPU. ¿Por qué? Por la especialización que comentábamos anteriormente. Una especialización que en el plano técnico se define como paralelización. En tanto que una GPU cuenta con unidades fundamentales de cálculo independientes, el paralelismo inherente es uno de los aspectos clave en una GPU y su diferencia frente a la CPU.

El diseño físico de una GPU, con mayor silicio, permite dedicarla a tareas muy específicas y llevarlas a cabo de forma muy eficiente. Pero es que esto, en realidad, está justificado por la forma de trabajo y su arquitectura: no sigue la arquitectura de von Neumann –en los cuatro pasos anteriores- como una CPU, sino el Modelo Circulante descrito antes en la explicación sobre qué es una GPU. Está enfocada al procesamiento paralelo, y diseñada en base a una amplia segmentación.

¿Qué hay en una tarjeta gráfica, además de la GPU?

Aunque la GPU es la unidad de procesamiento gráfico, no es lo único que hay en una tarjeta gráfica. En este componente se localizan la GPU, GRAM y RAMDACb como eslabones clave para el procesamiento gráfico, así como las salidas, refrigeración y alimentación.

La VRAM, o memoria gráfica de acceso aleatorio se dedica al almacenamiento y transporte de información. Esta unidad de memoria puede ser dedicada o compartida, en función de si sirve su espacio únicamente a la GPU, o no. El mayor rendimiento de la GPU se logra con memoria dedicada, y que la GPU pueda alcanzar su máxima potencia depende de las especificaciones y capacidad de esta VRAM.

Tienes más información sobre hardware en HardZone, y un espacio dedicado a conversar en el foro de hardware de ADSLZone

 

Escrito por Carlos González

Fuente > ADSLZone

Continúa leyendo
  • En otras palabras es como un mini computador (sin monitor) dentro de tu computador, pero solo para gráficas.

    • UnrealMitch

      No necesariamente han de ser computos de gráficos, sino cualquiera derivado de grandes cálculos matriciales, como son los gráficos. La CPU también podría realizar dichos cálculos, pero necesitando mayor tiempo (4 núcleos vs más de 1000 núcelos, ademas de un acceso más rapido a memoria). Eso sí, en la mayoria de los casos la cpu le dice a la gpu que tiene que hacer.

      • Tengo una duda, y pensaba yo que era el software quien decidia que CPU usay, su el CPU propio o intentar por el GPU…. corrijeme si me equivoco….

    • Por lo que entendí, es tareas seriales (CPU) contra tareas paralelas(GPU).

      Por eso los servidores tienen muchos mas núcleos que potencia bruta mononúcleo, mas núcleos a menor frecuencia, los servidores aprovechan mas las GPU y los 24 hilos de un CPU. Una GPU son mas muchos núcleos a mucho menos frecuencia.

      Por lo que están desarrollando procesadores de 100, 150 y 200 núcleos. Incluso AMD hablo de servidores arm con 48 núcleos-96 hilos y 64 núcleos-128 hilos :O

  • Pepitopalotes

    Pense que el articulo por fin iba a responder mi eterna pregunta pero veo que nanai…
    Así que la dejo aquí suelta a ver si alguno me sabe responder.

    ¿Por qué si una GPU que es capaz de hacer cálculos y secuencias e incluso tiene su propio OpenCV, no se puede usar una GPU sin CPU(Quitando aparte diseño de placas y buses, suponiendo un nuevo conjunto de instrucciones a periféricos, soporte(placas) y nuevo sistema operativo) ?

    • Usuario Indignado

      Se puede usar una GPU sin CPU y hay muchos ejemplos, como los sistemas HPC, en los que la CPU solo interviene para transferir los datos a y desde la GPU hacia/desde los dispositivos de almacenamiento.

  • Yevon

    Los núcleos de las GPU son mucho mas lentos que los núcleos de una CPU, básicamente, por como bien dice el artículo, son físicamente mas simples, pero por contra su número es mucho mayor en las GPU. La diferencia radica en que una GPU, es mucho mas rápida en tareas paralelizables, ya que al tener mucho mas núcleos, acaba antes. La CPU lo hace por velocidad individual de cada núcleo. Cada tipo de problema funciona mejor en uno u otro.

    Por ejemplo, una simple suma, en una CPU puede hacerse en 1 o 2 ciclos de reloj, mientras que en un núcleo de la GPU puede llevar hasta 24 ciclos. Si solo tienes que hacer una suma, ésta acabará mucho antes en una CPU, pero si tienes que hacer 3000 sumas paralelas, pues ya te sale a cuenta ejecutarlo en la GPU.

    Podria verse como si la GPU tuviera lag al procesar, pero puede procesar muchas mas cosas a la vez.

  • UnrealMitch

    En resumen, los núcleos de la CPU son como arquitectos, mientras los núcleos de la gpu son simpleos obreros.

    Es decir, no pongas a un obrero (o a cientos de ellos) a diseñar un edificio, pero tampoco pongas solo a 4 arquitectos a contruirlo. O se cae o no terminamos en 10 años.

    • Ismael Ponce

      Grandísima analogía.

  • Gabriel García

    Mi eterna pregunta es ¿Es recomendable activar la “aceleración por hardware” o “hardware acceleration” en un navegador como Google Chrome o Mozilla Firefox? o es mejor dejarla desactivada??

  • Miguel Candelario

    Supongo que a los que aun os quedan dudas (que os quedaran) simplemente hay que añadiros lo siguiente. La gran diferencia es la arquitectura interna, que basicamente quiere decir el tipo de instrucciones que “entiende” una CPU y una GPU. Una GPU podria trabajar sola, pero necesitaria incluir todo el microcodigo para interpretar las instrucciones que hoy en dia trata una CPU. Lo que nos llevaria a un diseño distinto de la GPU.
    Por tanto, la GPU es un interprete muy especializado de instrucciones que estan relacionadas con el entorno grafico (aunque hoy en dia ya es mucho mas).