En post anteriores hemos hablado de la CPU como el cerebro del ordenador, y quizás, se haya podido sacar la conclusión de que es el único componente con capacidad de procesamiento, es decir, de ejecutar instrucciones. Pues bien, también la GPU (Graphics process unit) es capaz de ejecutar instrucciones. En realidad, se trata de un procesador especializado en el renderizado, en el dibujo de gráficos.

Aquí te dejo una imagen de una GPU, que como puedes apreciar es idéntica a una CPU, prácticamente sólo puedes adivinar que se trata de una GPU por la palabra “GRAPHICS” escrita sobre ella.

Inicialmente, la GPU aparece como un coprocesador integrado en la CPU para liberar a esta de la alta carga de computación que suponía el renderizado de imágenes. El asunto era que con la evolución tan increíble de los gráficos, especialmente en los juegos, el proceso de renderizado se había convertido en el que más capacidad de computación requería con diferencia, por lo que se opto por colocar un coprocesador en la CPU, dedicado a este menester.

Hoy en día, encontramos GPUs integradas en CPUs y también GPUs independientes, actuando como procesadores completos. La captura de pantalla que se muestra abajo, es del administrador de tareas en un portátil de gama media, donde puede apreciarse la “GPU 0” y la “GPU 1”. La primera integrada en la CPU del ordenador y la segunda es un procesador independiente en la tarjeta gráfica.

Acceso a la memoria

Lógicamente la GPU, como buen procesador que es, necesita instrucciones y datos, los cuales va a buscar a la memoria RAM. Y aquí, nos encontramos todo tipo de arquitecturas:

  • Memoria dedicada: La GPU cuenta con su propia RAM para ella solita. Es lo habitual en las tarjetas de video modernas, que incluyen GPU y RAM.
  • Memoria del Sistema: En el otro extremo, tenemos las GPUs que comparten con la CPU la RAM del sistema. Esta situación es lo más habitual para las GPUs, coprocesadores integrados en la CPU.
  • Uso de ambas memorias: Como no podría ser de otra forma, también nos encontramos con la situación intermedia. Algunas GPUs disponen de una memoria limitada que utilizan para las tareas más urgentes, disminuyendo la latencia que tendrían si sólo funcionaran con la RAM del Sistema.

Diferencias entre una CPU y una GPU

Las CPUs están diseñadas para funcionar a altas frecuencias de reloj e integran unos pocos núcleos, mientras que las GPUs funcionan a velocidades sensiblemente más bajas pero tienen centenares de núcleos. Algo así como lo que muestro en la siguiente figura:

Los fabricantes de GPUs, además diseñan sus núcleos pensando en que puedan ejecutar la mayor cantidad de cálculos simultáneamente.

Otros usos de las GPUs

El gran número de núcleos de los que disponen las GPUs , está haciendo que estas se empleen para otras funciones distintas del tratamiento gráfico. La alta capacidad de computo las hace idóneas para aplicaciones como la inteligencia artificial o la minería de criptomonedas.

Te dejo aquí un gráfico en el que puedes apreciar la subida de precios de este componente durante el boom de las criptomonedas:

Para aquellos que queráis profundizar en este tema, os recomiendo que investiguéis sobre los CUDA Core de Nvidia y los procesadores Stream de AMD.

 

NOTA:

Este post es parte de la colección “Arquitectura de Sistemas” que reproduce los apuntes de la clase que imparto sobre este tema. Puedes ver el índice de esta colección aquí.