¿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.
Índice de contenidos
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:
También te puede interesar conocer cuáles son las mejores procesadores.
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.
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:
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:
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:
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.
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!