GPU
El uso de la GPU (unidad de procesamiento gráfico) permite realizar operaciones de cálculo científico
o técnico de propósito general.
El modelo empleado para esta tecnología se basa en combinar una CPU y una GPU en un sistema
de cómputo heterogéneo.
La parte secuencial de la aplicación se ejecuta en la CPU y las partes de mayor carga computacional
se procesan en la GPU. Para el usuario, la aplicación simplemente se ejecuta más rápido porque
utiliza la gran capacidad de la GPU para multiplicar el rendimiento.
El desarrollador de la aplicación tiene que modificar ésta para asignar a la GPU los kernels
más complejos desde el punto de vista computacional. El resto de la aplicación permanece en
la CPU. Asignar una función a la GPU implica reescribir ésta para aprovechar el paralelismo del
procesador gráfico y agregar palabras clave de “C” a fin de transferir los datos entre la GPU y
el resto del sistema.
Los chips de gráficos empezaron siendo canales de procesamiento de gráficos con funciones fijas.
Con el paso de los años, estos chips se fueron haciendo más programables, lo que permitió a NVIDIA
introducir la primera GPU o unidad de procesamiento gráfico del mercado. Entre los años 1999 y 2000,
científicos e investigadores de disciplinas como el diagnóstico por imagen o el electromagnetismo
empezaron a usar las GPUs para ejecutar aplicaciones de cálculo de propósito general y descubrieron
que el enorme rendimiento de la GPU en operaciones de coma flotante producía un extraordinario
aumento de la velocidad de ejecución en una gran variedad de aplicaciones científicas.
Fue el nacimiento de un nuevo concepto denominado GPGPU o GPU de propósito general.
El problema era que este tipo de procesador tenía que programarse utilizando lenguajes de programación
de gráficos como OpenGL y Cg. Los desarrolladores tenían que dar a sus aplicaciones científicas la apariencia
de aplicaciones gráficas transformándolas en problemas que dibujasen triángulos y polígonos. Esto limitaba
la posibilidad de aprovechar el tremendo rendimiento de las GPUs para usos científicos.
En NVIDIA se dieron cuenta de las ventajas que supondría poner todo este rendimiento al alcance de la
comunidad científica y decidieron invertir en modificar la GPU a fin de hacerla totalmente programable
para aplicaciones científicas y añadir soporte para lenguajes de alto nivel como C y C++. El resultado
fue la arquitectura CUDA para la GPU.
La arquitectura paralela del hardware de CUDA va acompañada de un modelo de programación compuesto
por un conjunto de abstracciones que permiten implementar el paralelismo en el procesamiento de tareas
y procesos con diferentes niveles de granularidad. El programador puede expresar ese paralelismo mediante
diferentes lenguajes de alto nivel como C, C++ y Fortran, o mediante APIs como OpenCL™ y DirectX™-11 Compute.
Si deseas informarte un Poco mas.,..te dejo la url de Nvidea
http://www.nvidia.es/object/cuda_what_is_es.html
Tags: GPU, Tarjetas Graficas