CPU o GPU: Diferencias, qué son y su importancia en el PC

¿CPU o GPU? Esta es la pregunta que muchos usuarios se hacen. Sin duda, son dos de los componentes más críticos e importantes de un ordenador. Ambas trabajan juntas para hacer posible todas las tareas que puedas imaginar.

Sin embargo, a pesar de su estrecha colaboración, existen diferencias fundamentales entre ambas que determinan su uso y rendimiento. Aquí podremos ver cuáles son esas diferencias a nivel arquitectónico y de funcionamiento.

¿Qué es un CPU o procesador?

La CPU, o microprocesador, es el componente fundamental de un ordenador, el cerebro. Sin entrar en demasiados detalles, se encarga de ejecutar las instrucciones del software, procesar datos para así hacer que el software funcione. Debes entender que un programa es un proceso compuesto por una serie de instrucciones (operaciones aritméticas, lógicas…) que se deben ejecutar en serie y que se aplican a unos datos (variables, constantes,…). La CPU es el circuito electrónico que trae las instrucciones, las interpreta para saber qué operación realizar sobre los datos y ejecuta la operación para obtener el resultado.

Para ello, la microarquitectura de la CPU debe constar de unas partes fundamentales, como la unidad de control donde se traen las instrucciones y se decodifican, y según la instrucción generará las señales de control para manejar las unidades de ejecución, como la ALU o FPU, que serán las encargadas de realizar operaciones como sumas, restas, multiplicaciones, divisiones, comparaciones, AND, OR, NOT, desplazamientos, etc., según el comando de control recibido.

Para que lo anterior funcione, también se necesitan un conjunto de registros, memorias basadas en flip-flops muy rápidas y en las que se pueden almacenar tanto los datos como las instrucciones que se necesitan en cada momento. Y, por supuesto, también habrá una serie de buses o canales de comunicación para interconectar las distintas partes.

Para poder completar todo este proceso en el que intervienen las distintas unidades funcionales de la CPU, se lleva a cabo en varios pasos o ciclos que son:

  • Fetch (Recuperación): la unidad de control recupera la primera instrucción del software desde la memoria principal, o desde la caché, y la almacena en un registro de instrucciones. La dirección de la siguiente será el resultado del registro PC (Program Counter) +1, y así hasta terminar la serie de instrucciones que componen al proceso. No obstante, actualmente, debido a la pipeline, las unidades superescalares y la ejecución fuera de orden, no es exactamente así, ya que se llevan varias operaciones en paralelo, pero para entenderlo de forma sencilla es suficiente…
  • Decode (Decodificación): la unidad de control analiza la instrucción para determinar su significado, para ello usará el microcódigo, una memoria ROM en la que se encuentran las instrucciones y su correspondientes códigos de control que serán enviados a las unidades funcionales para indicarles lo que deben hacer. Por ejemplo, una instrucción ADD es una suma, por lo que la ALU recibirá un código para ejecutar una suma con los datos indicados según el modo de direccionamiento usado.
  • Execute (Ejecución): la ALU o FPU, realiza la operación aritmético-lógica o lógica especificada en la instrucción y la aplica a los datos. Por ejemplo, puede sumar dos valores, y así ofrece su resultado a la salida.
  • Store (Almacenamiento): finalmente los resultados de la operación se almacenan en un registro o en la memoria principal.

También te puede interesar conocer cuáles son las mejores procesadores.

¿Qué es una tarjeta gráfica o GPU? ¿Y como funciona?

La GPU, o procesador gráfico, es un componente especializado en el procesamiento de gráficos y la aceleración de tareas relacionadas con la imagen y el vídeo. A diferencia de la CPU, que se enfoca en instrucciones generales, la GPU está optimizada para el procesamiento masivo de datos en paralelo, lo que la convierte en una herramienta ideal para aplicaciones como juegos, edición de vídeo, diseño gráfico y computación científica, que necesitan de este tipo de flujos paralelos.

La GPU está compuesta por miles o incluso millones de núcleos de procesamiento especializados, denominados shaders, que pueden asemejarse a una CPU muy básica y elemental. Estos shaders trabajan en conjunto para realizar cálculos complejos relacionados con los gráficos de forma eficiente y paralela. Además, la GPU cuenta con una memoria propia de alta velocidad, denominada VRAM, que almacena los datos gráficos que se están procesando en ese momento. Se podría considerar el equivalente a la RAM de la CPU…, aunque en el caso de ser una GPU integrada, también usará un espacio reservado de la misma RAM, compartiendo ésta con la CPU.

A diferencia de la CPU, que es una unidad muy compleja, cada uno de los núcleos de la GPU son más simples, pero tiene muchos de ellos trabajando en paralelo, con ALUs o FPUs sencillas, pero que básicamente funcionan igual que la CPU. Es decir, la GPU también tiene una ISA o conjunto de instrucciones posibles. Éstas provienen de la CPU, que le dirá a la GPU lo que tiene que ejecutar. Una vez comienza el flujo de instrucciones a travesar la pipeline de la GPU, se interpretará (deco) y se enviarán las señales de control a las unidades de cálculo para ejecutar las instrucciones sobre matrices o vectores de datos y obtener los resultados.

También te puede interesar conocer cuáles son las mejores tarjetas gráficas.

CPU vs GPU: similitudes y diferencias

Ahora que hemos entendido qué es cada unidad de una forma básica, lo siguiente es ver las similitudes y diferencias entre la CPU vs GPU:

CPU o GPU, te explico sus similitudes

A pesar de sus diferencias, las CPU y las GPU comparten algunas características básicas que las convierten en componentes cruciales para el procesamiento de información:

  • Arquitectura central: tanto las CPU como las GPU cuentan con una arquitectura que incluye núcleos, memoria, unidades de control y ejecución. Los núcleos son los responsables de ejecutar instrucciones y realizar cálculos, mientras que la memoria almacena datos y la unidad de control coordina las operaciones.
  • Procesamiento de instrucciones: ambas unidades procesan instrucciones almacenadas en la memoria, decodificándolas y ejecutándolas a través de un ciclo de instrucciones. La velocidad de este ciclo, determina en parte el rendimiento general del procesador.

Las diferencias entre un CPU y una GPU

CPU

GPU

Para propósito general. Para procesamiento gráfico.
Consume más memoria que la GPU. Consume menos memoria que la CPU.
Trabaja a menor velocidad que la GPU. Trabaja con mayor velocidad que la GPU.
Tiene uno o varios núcleos complejos. Tiene muchos núcleos simples.
Mejor para procesamiento de instrucciones en serie. Con pocas unidades de ejecución y alta frecuencia de reloj. Mejora para procesamiento de instrucciones en paralelo. Muchas ALUs y baja frecuencia de reloj.
Diseñada para tener una baja latencia. Diseñada para tener un alto rendimiento.
Baja densidad de cómputo. Alta densidad de cómputo.
Lógica de control compleja. Más computo por acceso a memoria.
Grandes memorias caché. Memoria caché más reducida.
Pipeline poco profunda de menos de 30 etapas. Pipeline muy profunda, de cientos de etapas.
Tolerancia de latencia baja. Tolerancia a latencia alta.
Los nuevos diseños van orientados a mejorar el paralelismo. Los nuevos modelos van orientados a mejorar el flujo de control, mejoras en el ancho de banda de acceso a memoria, y nuevas unidades funcionales especiales.
Consumo de energía menor que la GPU. Gran consumo energético respecto a la CPU.

Las diferencias fundamentales entre las CPU y las GPU radican en su diseño, función y optimización para tareas específicas:

  • Diseño: las CPU generalmente tienen menos núcleos que las GPU, pero cada núcleo es más potente y versátil. Las GPU, por otro lado, tienen una gran cantidad de núcleos más pequeños y especializados, optimizados para el procesamiento paralelo de datos masivos.
  • Función: la CPU es el cerebro general del sistema, responsable de ejecutar una amplia gama de tareas, desde la gestión del sistema operativo hasta la ejecución de aplicaciones. La GPU, por otro lado, está diseñada específicamente para el procesamiento de gráficos y tareas relacionadas con la imagen, como renderizado 3D, edición de vídeo y juegos.
  • Optimización: las CPU están optimizadas para el procesamiento secuencial de instrucciones complejas, mientras que las GPU se destacan en el procesamiento paralelo de grandes cantidades de datos simples. Esta diferencia se refleja en la arquitectura de memoria, donde las CPU tienen cachés más grandes y las GPU tienen mayor ancho de banda de memoria.

Ejemplo práctico

Para ilustrar la diferencia entre CPU y GPU, imaginemos un escenario donde se procesan miles de instrucciones. Una CPU, analizará cada instrucción individualmente, aplicando las ejecuciones necesarias en un proceso algo más «lento».

En contraste, una GPU, tiene muchas unidades de procesamiento individuales, dividirá las instrucciones en grupos más pequeños y las procesará simultáneamente. Cada unidad se enfocaría en una tarea específica, como ajustar el brillo o aplicar un filtro, lo que resultaría en un procesamiento mucho más rápido.

GPGPU

Antes de finalizar, me gustaría decir que, actualmente la GPU también se usa como acelerador para propósito general, es decir, como una GPGPU (General Purpose GPU). Debido a este alto paralelismo y al potencial en FLOPS superior a la CPU, esto puede ser una buena solución para aplicaciones científicas que necesitan ejecutar datos en coma flotante muy numerosos, como en el HPC.

A lo que quiero llegar es que, a nivel arquitectónico, todo lo dicho anteriormente es válido. Pero si se compara una CPU vs GPGPU, ambas se utilizan para propósito general en este caso. No obstante, pese a este parecido extra, lo cierto es que para conseguir que una GPGPU pueda dedicarse a cargas de trabajo genéricas, se necesitan APIs como OpenCL y CUDA, drivers especiales y reprogramar el software para adaptarlo a estas unidades.

Si quieres saber más sobre procesadores o tarjetas gráficas te aconsejamos que miras nuestros video guías en nuestro canal. ¡Si tienes dudas pregúntanos!