¿Qué es una GPU?
La unidad de procesamiento de gráficos (GPU) es un circuito electrónico que puede realizar cálculos matemáticos a alta velocidad. Algunas tareas de computación, como la renderización de gráficos, el machine learning (ML) y la edición de videos, requieren la aplicación de operaciones matemáticas similares en un conjunto de datos grande. El diseño de una GPU le permite realizar la misma operación en varios valores en paralelo. Esto vuelve más eficiente el procesamiento de muchas tareas que requieren mucha capacidad de cómputo.
¿Por qué son importantes las GPU?
Las GPU son la opción ideal para realizar procesamiento paralelo de uso general, pero históricamente no siempre fue así. Como el nombre indica, las GPU se diseñaron inicialmente para una tarea específica: controlar la visualización de imágenes.
Origen de la GPU
Antes de la GPU, teníamos pantallas de matriz de puntos, que se lanzaron en las décadas de 1940 y 1950. Las pantallas de vectores y rásteres se lanzaron después, y más tarde se empezó a usar las primeras consolas de videojuegos y PC. En ese momento, un dispositivo no programable llamado controlador de gráficos coordinaba la visualización con la pantalla. Los controladores gráficos tradicionalmente dependían de la CPU para el procesamiento, aunque algunos incluían procesadores integrados en el chip.
Casi al mismo tiempo, se desarrollaba un proyecto de imágenes en 3D que consistía en generar un solo píxel en una pantalla con un solo procesador. El objetivo era producir una imagen que combinara muchos píxeles en poco tiempo. Este proyecto fue el origen de la GPU tal y como la conocemos.
Sin embargo, no fue hasta finales de la década de 1990 que aparecieron las primeras GPU. Estaban dirigidas a los mercados de juegos y diseño asistido por computadora (CAD). La GPU integró un motor de renderizado previamente basado en software y un motor de transformación e iluminación con el controlador de gráficos, todo en un chip programable.
Evolución de la tecnología de GPU
NVIDIA fue la primera empresa en comercializar las GPU GeForce 256 de un solo chip en 1999. Las décadas de 2000 y 2010 establecieron una era de crecimiento en la que las GPU adquirieron funciones, como el trazado de rayos, el sombreado en malla y la teselación de hardware. Esto llevó a una generación de imágenes y un rendimiento gráfico cada vez más avanzados.
No fue hasta 2007 que NVIDIA lanzó CUDA, una capa de software que permite el procesamiento paralelo en la GPU. En esta misma época, quedó claro que las GPU eran muy eficaces a la hora de realizar tareas muy específicas. En particular, se destacaron en tareas que requieren una gran capacidad de procesamiento para lograr cierto resultado.
Cuando NVIDIA lanzó CUDA, llevó la programación de GPU a un público más amplio. Los desarrolladores podían entonces programar la tecnología de GPU para todo tipo de aplicaciones prácticas que requieren mucha capacidad de procesamiento. La computación con GPU comenzó a generalizarse mucho más.
Las GPU son chips muy solicitados para la cadena de bloques y otras aplicaciones emergentes. Se están orientando cada vez más hacia la inteligencia artificial y el machine learning (IA/ML).
¿Cuáles son las aplicaciones prácticas de una GPU?
Las GPU se pueden utilizar en una amplia gama de aplicaciones que requieren mucho procesamiento, incluidas las finanzas a gran escala, las aplicaciones de defensa y las actividades de investigación. Estos son algunos de los usos más frecuentes de las GPU en la actualidad.
Videojuegos
Las primeras aplicaciones de la GPU que se extendieron más allá de la visualización de grandes empresas y Gobiernos fueron los juegos personales. Se usaban en las consolas de juegos de la década de 1980 y todavía se utilizan en las PC y las consolas de juegos actuales. Las GPU son esenciales para la renderización de gráficos complejos.
Visualización profesional
Las GPU se utilizan en aplicaciones profesionales, como el dibujo con CAD, la edición de videos, los recorridos y la interacción de productos, las imágenes médicas y las imágenes sísmicas. También se aplican a otras aplicaciones complejas de edición y visualización de imágenes y videos. Las aplicaciones basadas en navegadores pueden incluso usar la GPU a través de bibliotecas, como WebGL.
Machine learning
El entrenamiento de un modelo de machine learning (ML) requiere una gran cantidad de potencia de cómputo. Ahora pueden ejecutarse en GPU para obtener resultados en menos tiempo. Con hardware propio, puede llevar mucho tiempo entrenar un modelo, pero, con una GPU en la nube, se obtienen resultados más rápido.
Cadena de bloques
Las criptomonedas se basan en cadenas de bloques. Un tipo particular de cadena de bloques, la prueba de trabajo, suele depender en gran medida de las GPU para su funcionamiento. Ahora, los circuitos integrados para aplicaciones específicas (ASIC), chips similares pero diferentes, son un sustituto común del procesamiento de GPU para la cadena de bloques.
Con las pruebas algorítmicas de la cadena de bloques de prueba de consenso, ya no es necesario contar con una enorme capacidad de procesamiento, pero la prueba de trabajo sigue siendo la opción generalizada.
Simulación
Las aplicaciones de simulación avanzada, como las que se utilizan en dinámica molecular, previsión meteorológica y astrofísica, pueden operar gracias a las GPU. Las GPU también se usan en muchas aplicaciones de diseño de automóviles y vehículos grandes, incluida la dinámica de fluidos.
¿Cómo funciona una GPU?
Las GPU modernas suelen contener varios multiprocesadores. Cada uno tiene un bloque de memoria compartida, además de varios procesadores y los registros correspondientes. La propia GPU tiene memoria constante, además de la memoria del dispositivo en la placa en la que se encuentra.
Cada GPU funciona de forma un poco diferente según su propósito, el fabricante, las características específicas del chip y el software utilizado para coordinar la GPU. Por ejemplo, el software de procesamiento paralelo CUDA de NVIDIA permite a los desarrolladores programar la GPU específicamente considerando casi todas las aplicaciones de procesamiento paralelo de uso general.
Las GPU pueden ser chips independientes, conocidos como GPU separadas, o bien, pueden ser GPU integradas a otro hardware de computación, conocidas como GPU integradas (iGPU).
GPU separadas
Las GPU separadas existen como un chip totalmente dedicado a la tarea en cuestión. Si bien esa tarea ha sido tradicionalmente gráfica, ahora las GPU separadas se pueden utilizar como procesamiento dedicado para otras tareas, como el machine learning o la simulación compleja.
Si se usa para gráficos, la GPU normalmente se encuentra en una tarjeta gráfica que se inserta en una placa base. Para otras tareas, la GPU puede encontrarse en una tarjeta o ranura diferente en la propia placa base directamente.
GPUs integradas
A principios de la década de 2010, se observó una migración hacia las GPU separadas. Los fabricantes adoptaron la combinación de CPU y GPU en un chip, conocida como iGPU. Las primeras de estas iGPU para PC fueron las líneas Celeron, Pentium y Core de Intel. Estas opciones siguen siendo populares en computadoras portátiles y PC.
Otro tipo de iGPU es el sistema en un chip (SoC) que contiene componentes como una CPU, una GPU, memoria y redes. Estos son los tipos de chips que suelen encontrarse en los teléfonos inteligentes.
Virtual
Al igual que otros tipos de infraestructura de hardware informático, las GPU también se pueden virtualizar. Las GPU virtualizadas son una representación basada en software de una GPU que comparte espacio con otras GPU virtuales en instancias de servidores en la nube. Puede utilizarlas para ejecutar sus cargas de trabajo sin tener que preocuparse por el mantenimiento del hardware subyacente.
¿En qué se diferencia una GPU de una CPU?
La principal diferencia entre una CPU y una GPU es su propósito en un sistema informático. Tienen diferentes funciones según el sistema. Por ejemplo, cumplen diferentes funciones en un dispositivo de juego portátil, una PC y una supercomputadora con varios gabinetes para servidores.
En general, la CPU se encarga del control total del sistema, además de las tareas de administración y de uso general. Por otro lado, la GPU se encarga de tareas que requieren mucho procesamiento, como la edición de videos o el machine learning.
Más específicamente, las CPU se han diseñado para realizar tareas como las siguientes:
- Administración del sistema
- Realización simultánea de múltiples tareas en diferentes aplicaciones
- Operaciones de entrada y salida
- Funciones de red
- Control de dispositivos periféricos
- Realización simultánea de múltiples tareas en el sistema almacenamiento y la memoria
¿En qué se diferencia una GPU de una tarjeta gráfica?
Los términos unidad de procesamiento gráfico y tarjeta gráfica a menudo se usan indistintamente, pero no son lo mismo.
Las tarjetas gráficas son placas complementarias (AIB) que se colocan en la placa base de una computadora. Las tarjetas gráficas no vienen integradas a la propia computadora; son tarjetas intercambiables. La tarjeta gráfica incluye una GPU.
La GPU es el componente principal de las tarjetas gráficas. Se encuentra al lado de otros componentes, como la RAM de video (VRAM) para la memoria de video, los puertos (como HDMI o DisplayPort) y un componente de refrigeración. Sin embargo, una GPU también puede integrarse directamente a la placa base o incluirse como un chip integral junto con otros componentes.
¿Con qué puede ayudarlo AWS para que cumpla sus requisitos de GPU?
Amazon Web Services (AWS) ofrece Amazon Elastic Compute Cloud (Amazon EC2), la plataforma de computación más amplia y completa.
Amazon EC2 tiene más de 500 instancias y le permite elegir entre los procesadores, las formas de almacenamiento, las redes, los sistemas operativos y los modelos de compra más nuevos. Puede adaptarse fácilmente a las necesidades de su carga de trabajo.
Con Amazon EC2, es fácil alquilar y ejecutar GPU en la nube. Aproveche la capacidad de procesamiento de las GPU para la edición de videos, el renderizado de gráficos, la inteligencia artificial (IA) y otras tareas de procesamiento paralelo.
Las instancias de Amazon EC2 pueden adaptarse a casi cualquier tipo de carga de trabajo:
- Las instancias P2 se destinan a aplicaciones de cómputo de GPU de uso general.
- Las instancias P5 de Amazon EC2 tienen ocho GPU integradas. Son la última generación de instancias basadas en GPU. Ofrecen el mayor rendimiento de Amazon EC2 para aplicaciones de aprendizaje profundo y computación de alto rendimiento (HPC).
- Las instancias G5 de Amazon EC2 funcionan con procesadores AWS Graviton2 y cuentan con GPU NVIDIA T4G Tensor Core. Ofrecen el mejor rendimiento en función del precio de Amazon EC2 para las cargas de trabajo gráficas, como el streaming de juegos en Android.
Para comenzar a usar las GPU de AWS, cree una cuenta hoy mismo.
Obtenga acceso instantáneo al nivel Gratuito de AWS.
Comience a crear en la consola de administración de AWS.