JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

GPU: ¿qué es y por qué puedes usarla en Data Science?

GPU-1

Añade aquí tu texto de cabecera

Hay dos tipos principales de GPU en los ordenadores modernos: integrada y dedicada. El primer tipo está integrado directamente en el procesador, mientras que el segundo es independiente.

Por lo general, las tarjetas gráficas para ordenadores de sobremesa son componentes de gran tamaño con ventiladores para su refrigeración. Estas tarjetas contienen el chip de procesamiento gráfico y memoria RAM dedicada para las cargas de trabajo gráficas más pesadas, como los videojuegos.

Es muy fácil sustituir una tarjeta gráfica en un ordenador de sobremesa. Basta con introducirla en una ranura PCIe x16, conectarla a la fuente de alimentación e instalar los controladores. Incluso puedes instalar varias GPU en el mismo ordenador.

Los portátiles equipados con GPU dedicadas no tienen el mismo tipo de GPU. Suele tratarse de un simple chip soldado a la placa base. Este tipo de GPU es más complicado, por no decir imposible de sustituir. Es más, son difíciles de mantener a la temperatura adecuada en condiciones de carga intensiva (por ejemplo, al entrenar un modelo de Deep Learning) debido a la escasa ventilación del ordenador. Por este motivo, las GPU de los portátiles suelen tener una potencia limitada para mantener la temperatura del ordenador bajo control. Por tanto, no se recomienda invertir en un portátil para entrenar modelos de Deep Learning.

Las GPU integradas están incorporadas directamente en el procesador Sin embargo, AMD fabrica procesadores con tarjetas gráficas integradas denominadas Accelerated Processing Unit (APUs).

Asimismo, los chips Intel Core con número de modelo que termina en F no tienen GPU. Lo mismo ocurre con las CPU de la gama Core X con números de modelo que terminan en X. Estos procesadores se venden a un precio más bajo.

Los procesadores modernos con GPU integrada pueden ser sorprendentemente potentes. Sin embargo, para un caso de uso tan intenso como la Data Science, es imprescindible contar con una GPU dedicada.

type-gpu-data-science

¿Para qué sirve una GPU?

El término GPU fue popularizado por Nvidia en la década de 1990. Su gama de tarjetas gráficas GeForce fue la primera en popularizarse y permitió la evolución de tecnologías como la aceleración por hardware, el shading programable o el procesamiento en stream.

Para un uso básico del ordenador, como navegar por Internet o utilizar programas ofimáticos, la función de una GPU es simplemente mostrar imágenes en la pantalla.

Sin embargo, para otros usos, como el gaming o la Data Science, una GPU ofrece un sinfín de posibilidades. Por ejemplo, puede utilizarse para la codificación de vídeo o el renderizado 3D, e incluso se emplea para entrenar tanto modelos de Deep Learning, como modelos de ensamblaje como LightGBM.

Los gráficos generados por ordenador, como los utilizados en videojuegos u otros medios animados, requieren una gran cantidad de energía para dibujar cada imagen individualmente a una frecuencia de actualización que puede ir mucho más allá de los 100 fotogramas por segundo.

Del mismo modo, la edición de vídeo requiere la edición de grandes volúmenes de archivos de alta definición. Una GPU potente es imprescindible para transcodificar los archivos a una velocidad aceptable.

Las GPU se diseñaron originalmente para acelerar el renderizado de gráficos 3D. Con el tiempo, se han hecho más flexibles y programables. Su capacidad se ha ampliado.

Esto ha permitido a los diseñadores crear efectos visuales más realistas, utilizando técnicas de luces y sombras. Además, los desarrolladores han empezado a sacar partido a la potencia de las GPU para acelerar cargas de trabajo en los campos del Deep Learning y la Computación de Alto Rendimiento (simulaciones físicas, compresión de archivos, etc.). Estos son los principales casos de uso de las GPU.

1. Videojuegos

En el caso de los videojuegos, la GPU se utiliza para mostrar imágenes de personajes, paisajes u objetos 3D modelados con todo lujo de detalles. Los videojuegos requieren la realización de un gran número de cálculos matemáticos en paralelo a la visualización de las imágenes en la pantalla.

La GPU está diseñada específicamente para procesar información gráfica como la geometría, el color, el tono o las texturas de una imagen. La RAM también permite manejar el gran volumen de información que se transmite a la GPU y los datos de vídeo que se dirigen a la pantalla.

Todas las instrucciones se transmiten de la CPU a la GPU, que las ejecuta para mostrar las imágenes en la pantalla. Este proceso se denomina renderizado o canal de gráficos.

La unidad básica de los gráficos 3D es el polígono. Todas las imágenes que ves en un videojuego se basan en un gran conjunto de polígonos.

Estas formas básicas se denominan «primitivas«, del mismo modo que otras líneas y puntos. Se unen para formar objetos concretos y reconocibles, como una mesa, un árbol o un mago. Cuantos más polígonos haya, más detalladas serán las imágenes finales.

Cada objeto tiene su propio conjunto de coordenadas para que la GPU sepa dónde situarlo en una escena. Esta es la razón por la que a veces los objetos se colocan en cualquier lugar de los juegos, como en el caso de un bug.

A continuación, la GPU realiza cálculos para determinar la posición de la “cámara”. Por último, las imágenes reciben las texturas, sombras y colores que las hacen tan realistas.

Este procesamiento gráfico se realiza a la velocidad del rayo. Esto requiere cálculos pesados, por lo que es esencial una GPU dedicada de alto rendimiento.

Técnicamente, es posible utilizar una CPU para los gráficos, pero será menos eficiente y el resultado final no será tan visualmente impresionante. Este componente ya está ocupado ejecutando el sistema operativo, otros programas y procesos en segundo plano.

gpu-gaming
2. Edición de vídeo

Durante muchos años, los editores de vídeo, diseñadores gráficos y otros profesionales creativos se vieron limitados por la lentitud del renderizado.

Hoy, el procesamiento paralelo que ofrecen las GPU facilita y acelera enormemente el renderizado de vídeo en formatos de alta definición. Esto acorta los tiempos de producción e iteración de vídeo.

3. Criptomoneda

Una GPU está diseñada específicamente para el procesamiento de gráficos. Esta tarea requiere que se efectúen gran cantidad de cálculos matemáticos de forma paralela.

Este enfoque en cálculos y operaciones paralelas hace que las GPU sean especialmente adecuadas para el minado de Ethereum y otras criptomonedas derivadas de Ethereum. Los mineros de criptomonedas han recurrido rápidamente a estos componentes, abandonando las CPU que son demasiado generalistas y menos eficientes para estos casos.

GPU y Data Science

La Data Science hace referencia a todos los métodos y técnicas utilizados para extraer información a partir de datos en bruto. Esta información la pueden utilizar algoritmos de Machine Learning para producir sistemas de inteligencia artificial.

Esta disciplina requiere una gran capacidad de cálculo y las GPU son especialmente adecuadas para ella porque muchas de las operaciones matemáticas utilizadas en Machine Learning se pueden paralelizar con facilidad.

Uno de los usos más recientes e importantes de las GPU es la creación de redes neuronales de inteligencia artificial. Este también es uno de los usos más exigentes de la Data Science.

La inteligencia artificial moderna depende en gran medida de la capacidad de procesar grandes cantidades de datos de forma paralela utilizando hardware especializado. Las GPU han desempeñado un papel fundamental en el desarrollo de estas nuevas tecnologías. Sin las GPU, no tendríamos el hardware necesario para entrenar redes neuronales de alto rendimiento.

Por lo general, una CPU realiza las tareas de forma secuencial. Puede dividirse en unos pocos núcleos (normalmente 8 o 16 núcleos) y cada núcleo puede realizar una tarea diferente, mientras que una GPU tiene cientos o miles de núcleos dedicados simultáneamente a una sola tarea. La paralelización del procesamiento es fundamental para el diseño de algoritmos en la GPU, por lo que la programación de instrucciones en una GPU es completamente diferente a la programación tradicional en la CPU.

Las bibliotecas de Deep Learning como TensorFlow y PyTorch se encargan de la programación en la GPU en segundo plano, lo que simplifica enormemente el desarrollo de modelos de Deep Learning en la GPU.

El uso de GPU con estas bibliotecas requiere la instalación de controladores dedicados a la computación de alto rendimiento. Las instrucciones para instalar estos controladores se encuentran en la documentación de estas bibliotecas.

gpu-machine-learning-1

¿Cómo elegir la GPU más adecuada?

La mejor forma de evaluar objetivamente el rendimiento de una GPU es utilizar benchmarks o pruebas comparativas: pruebas diseñadas para poner a prueba los límites de las GPU y asignarles una puntuación. Estas puntuaciones permiten comparar todas las GPU del mercado y así elegir la que mejor se adapte a nuestras expectativas. Dependiendo del campo de aplicación, la prueba será diferente.

En el caso de los videojuegos, las pruebas comparativas son muy populares. Por ejemplo, una GPU capaz de generar 70 fotogramas por segundo (o frames per second en inglés) en Tomb Raider será mejor que una GPU capaz de generar 55.

En el caso de la edición de vídeo, existen muchas pruebas para comparar el rendimiento de renderizado de una GPU en programas como Adobe Photoshop, Adobe Premiere Pro, Sony Vegas, etc. En este caso, se compara el tiempo que se tarda en terminar de renderizar un vídeo, y cuanto menor es el tiempo, mejor es la GPU.

En el caso del Deep Learning, existen pruebas que comparan el tiempo de entrenamiento necesario para entrenar modelos tan conocidos como VGG-16, Inception, EfficientNet en bases de datos tan conocidas como ImageNet, CIFAR-10, MNIST, etc.

Las GPU más compatibles con las bibliotecas de Deep Learning son las GPU de NVidia. No es recomendable utilizar una GPU AMD para Deep Learning porque las bibliotecas TensorFlow y PyTorch no ofrecen soporte nativo para GPU de esta marca.

¿Cómo seguir un curso de Data Science y Machine Learning?

Para aprender a sacar partido de las capacidades de las GPU para el procesamiento de datos, puedes optar por DataScientest. Nuestros cursos de Data Analyst, Data Scientist y Data Engineer incluyen módulos específicos de Machine Learning y Data Science.

Además, contamos con otros módulos que tratan sobre Big Data, bases de datos, programación en Python, Dataviz y Business Intelligence. Al final de estos cursos, tendrás todas las competencias que necesitas para trabajar en una de las profesiones de Data Science.

Nuestro innovador enfoque Blended Learning combina el aprendizaje en una plataforma en línea con Master classes grupales. Todos nuestros cursos se imparten íntegramente a distancia.

Dependiendo de tu situación, puedes elegir entre la formación continua o la modalidad BootCamp intensivo. El 80 % de nuestros antiguos alumnos ha encontrado trabajo inmediatamente después de terminar el curso.

En cuanto a la financiación, nuestros cursos son bonificables con FUNDAE. ¡No esperes más y descubre los programas de DataScientest!

Ahora ya sabes todo lo que hay que saber sobre las GPU. Para más información sobre el tema, consulta nuestro dosier sobre Machine Learning.

¿No está disponible?

Déjenos su dirección de correo electrónico para que podamos enviarle los nuevos artículos cuando se publiquen.