robot de la enciclopedia para niños

GPGPU para niños

Enciclopedia para niños

La computación de propósito general en unidades de procesamiento gráfico (conocida como GPGPU, por sus siglas en inglés) es una forma de usar las tarjetas gráficas de las computadoras, llamadas GPU, para hacer cálculos que no son solo para mostrar imágenes. Normalmente, las GPU están diseñadas para crear los gráficos 3D que ves en los videojuegos o programas.

Las GPU son muy buenas para hacer muchos cálculos al mismo tiempo, son bastante rápidas para su precio y son excelentes con números decimales. Estas características las hacen muy útiles para tareas que van más allá de los gráficos, especialmente en ciencia y simulaciones. Por ejemplo, se usan para simular cómo se mueven los líquidos, para organizar grandes cantidades de datos o para agrupar información de manera inteligente.

¿Cómo funciona la programación de GPU?

Las GPU y las CPU (el procesador principal de tu computadora) funcionan de manera diferente. Por eso, no todos los problemas se pueden resolver mejor con una GPU. La forma en que acceden a la memoria es una de las mayores diferencias.

Acceso a la memoria en GPU y CPU

Las CPU están hechas para acceder a cualquier parte de la memoria en cualquier momento. Esto es útil para programas que usan estructuras de datos complejas. En cambio, las GPU tienen un acceso a la memoria más limitado. Por ejemplo, cuando una GPU procesa los puntos de un objeto 3D (llamados vértices), lee datos de un lugar específico y escribe los resultados en varios lugares. Cuando procesa los puntos de color de una imagen (píxeles), puede leer de varios lugares, pero solo escribe en un lugar específico.

Adaptando los algoritmos para GPU

Para que un programa funcione bien en una GPU, los programadores deben adaptar cómo se guardan y se acceden los datos. Generalmente, los datos se guardan en una especie de "cuadrícula" de dos dimensiones, como si fuera una imagen. Si un cálculo necesita leer y escribir en el mismo lugar, el programa debe dividirse en varias partes.

Los algoritmos que mejor aprovechan las GPU son aquellos que pueden dividirse en muchas tareas pequeñas que se hacen al mismo tiempo, que no necesitan estructuras de datos complicadas y que realizan muchos cálculos matemáticos.

Herramientas para programar GPU

Al principio, programar para GPGPU era complicado y se usaban lenguajes específicos para gráficos, como GLSL o Cg. Pero ahora existen herramientas que hacen el trabajo más fácil.

Lenguajes y plataformas de programación

Estas herramientas permiten a los programadores escribir código de una manera más sencilla, sin preocuparse tanto por los detalles de cómo la GPU maneja los gráficos. Algunas de estas herramientas son:

  • BrookGPU: Una extensión del lenguaje C que ayuda a la GPU a hacer cálculos sin que el programador tenga que hacer mucho trabajo extra.
  • Sh: Una extensión de C++ que también ayuda a que los programas se ejecuten automáticamente en la GPU.
  • CUDA: Desarrollada por NVidia, es una extensión del lenguaje C que permite programar directamente las GPU de NVidia. Es una de las opciones más usadas hoy en día.
  • OpenCL: Es una combinación de una interfaz y un lenguaje de programación que permite crear programas que pueden ejecutarse en diferentes tipos de procesadores, como CPU o GPU, sin importar el fabricante.

Otros usos de las GPU

Las GPU no solo se usan para gráficos o cálculos científicos. También tienen otras aplicaciones interesantes.

Direct3D 11 y la computación de sombreadores

Microsoft desarrolló una nueva versión de su tecnología Direct3D, la versión 11. Esta versión permite que las GPU no solo se usen para gráficos 3D, sino que también puedan realizar cálculos complejos. Esto ayuda a los desarrolladores a usar las tarjetas gráficas como potentes procesadores para muchas tareas al mismo tiempo.

Proyectos de computación distribuida

Un ejemplo de cómo se aprovecha la potencia de las GPU es el proyecto Folding@home, de la Universidad de Stanford. Este proyecto usa la capacidad de cálculo de miles de computadoras en todo el mundo para investigar enfermedades. Han descubierto que usar la GPU puede hacer que los cálculos sean hasta 40 veces más rápidos que usando solo una CPU, dependiendo de la tarjeta gráfica.

Véase también

Kids robot.svg En inglés: General-purpose computing on graphics processing units Facts for Kids

kids search engine
GPGPU para Niños. Enciclopedia Kiddle.