Skip to content

Instantly share code, notes, and snippets.

@Miunich
Created May 18, 2012 20:43
Show Gist options
  • Save Miunich/2727494 to your computer and use it in GitHub Desktop.
Save Miunich/2727494 to your computer and use it in GitHub Desktop.
Aplicaciones de la GPU
APLICACIONES
En este apartado hablaremos sobre diferentes aplicaciones que utilizan la tecnología CUDA en su funcionamiento y que sacan un buen provecho de ella.
Las aplicaciones que emplean CUDA pueden ser de tipo científico, matemático, físico, químico, etc.
Entre dichas aplicaciones podemos destacar las siguientes:
Una aplicación de la empresa Elcomsoft aprovecha la tecnología CUDA para reventar las claves WPA y WPA2 casi sin problemas, lo que ha hecho que varios analistas avisen del peligro que tiene ahora cualquier tipo de red inalámbrica. La potencia bruta de las nuevas tarjetas gráficas se está convirtiendo en un gran aliado a la hora de romper todo tipo de sistemas de cifrado.
La seguridad en redes inalámbricas siempre ha sido un tema muy polémico: los primeros sistemas WEP de protección de datos demostraron que eran bastante vulnerables ante sencillos ataques que podían ser realizados por usuarios con unos mínimos conocimientos del tema, pero parece que el asunto puede ser mucho peor.
En teoría, los sistemas WPA y WPA2 ofrecían un nivel de seguridad bastante mayor, y aunque los ataques por fuerza bruta podían dar resultado en ciertas ocasiones a los hackers que buscasen romper ese tipo de claves, la potencia actual de las CPUs hacían menos preocupantes este tipo de procesos.
La aplicación de Elcomsoft está destinada a romper todo tipo de sistemas de cifrado y claves a base de algoritmos de fuerza bruta que no son procesados por la CPU, sino por la GPU de tarjetas NVIDIA. Estos procesadores gráficos disponen de una potencia mucho mayor que la de cualquier procesador actual, y Elcomsoft ha logrado trasladar este tipo de tareas a un lenguaje que la GPU puede comprender y ejecutar gracias a la tecnología CUDA de NVIDIA. De hecho, la velocidad de descifrado es diez mil veces superior a la que lograría una CPU en la gran parte de los casos. También se ha comprobado que ese mismo software sirve del mismo modo para descifrar contraseñas WPA y WPA2 en tiempos récord.
Pegasys usa la tecnología CUDA para incrementar el rendimiento en la descodificación multiformato de vídeo en el programa TMPGEnc 4.0 Xpress. La versión beta de dicho programa es un 446% más rápida que la versión estándar gracias a que aprovecha el procesamiento en paralelo de las tarjetas GeForce.
TMPGEnc 4.0 Xpress convierte y descodifica todo tipo de formatos de vídeo que pueden ser reproducidos en un PC incluyendo MPEG, AVI, WMV, DivX, FLV, DVD…
La interfaz “Video Mastering Engine” de Pegasys es única y se ha ganado la reputación de ser agradable para el usuario, permitiendo editar y convertir de una manera muy sencilla los distintos formatos de vídeo.
Existen plugins para Matlab y Photoshop que usan CUDA para acelerar los cálculos que realizan, ya que con esta tecnología se pueden ejecutar miles de hilos (threads) en cada uno de los núcleos que contiene la GPU a una velocidad superior a la de una CPU actual. Son aplicaciones que realizan una gran cantidad de cálculos matemáticos donde es fundamental que las operaciones duren lo menos posible.
El software BadaBOOM, desarrollado por Elemental Technologies, nos permite codificar vídeo desde y hacia distintos formatos, un proceso que puede ocupar intensivamente nuestra CPU. Pero, la diferencia de BadaBOOM con cualquier otro software de conversión de vídeos es que no ocupa masivamente la CPU, sino que realiza los cálculos utilizando la GPU.
NVIDIA está apoyando a muchos grupos de desarrolladores que están programando software para GPU mediante CUDA, donde podemos encontrar desde clientes de Folding@Home a programas profesionales de cálculo científico.
El software CUDA beta para Mac anunciado por NVIDIA se puede definir como un kit desarrollador que permite a los usuarios crear trabajos para objetivos académicos, comerciales o personales.
Además de las tarjetas NVIDIA usadas para los juegos, algunas firmas de investigación usan CUDA para hacer modelado molecular usando implementaciones de procesamiento en paralelo.
La tarjeta PhysX, creada en su día por AGEIA, integrará su motor software o API en la arquitectura CUDA desarrollada por NVIDIA. De este modo, los desarrolladores pueden usar los procesadores gráficos para diferentes cálculos sin que tengan relación con la información que se vaya a visualizar en 3D.
El software S3FotoPro fue presentado por el fabricante S3, bastante desconocido para el público en general. Con él, pretenden utilizar los procesadores de las gráficas de S3 como sistemas de propósito general, para el procesado de otro tipo de datos.
El S3FotoPro permite crear varios miles de hilos de ejecución en paralelo dentro del procesador de la tarjeta S3. Con esto generan varios gigaFLOPS (operaciones de punto flotante por segundo) de procesamiento que pueden utilizarse para diferentes tareas tales como el procesado de imágenes, la edición de vídeos y su conversión a formatos de uso general, para el procesado de sistemas de datos con fines medicinales o científicos, e incluso también para
crear motores físicos basados en la realidad. En todos estos casos se trata de liberar a la CPU del mayor trabajo posible y dividir las tareas cuando la GPU esté libre.
SciFinance es el producto estrella de la empresa americana SciComp, con sede en Austin, Texas. Dispone de un software de derivados avanzado para acortar el tiempo de desarrollo y acelerar el resultado de las simulaciones realizadas mediante el método de Monte Carlo. La compañía ha perfeccionado SciFinance para acelerar el cálculo de los modelos de valoración de derivados mediante la tecnología CUDA de NVIDIA, lo que permite ejecutar estos modelos hasta 100 veces más rápido de lo que se ejecutan con código no paralelo. Pero lo más importante es que esta aceleración puede lograrse sin ningún trabajo o programación manual extra, algo que en un mercado donde las esperas o la falta de precisión pueden generar millones de pérdidas, es una avance esencial.
La clave para este aumento de la velocidad es utilizar la unidad de procesamiento gráfico, la GPU, para efectuar los cálculos. Una GPU es un procesador paralelo formado por múltiples núcleos que puede ejecutar aplicaciones de forma simultánea con una rapidez mucho mayor a la de la CPU del PC. Esta extraordinaria capacidad de procesamiento se logra con la ayuda de la arquitectura CUDA de NVIDIA, un entorno de programación basado en el lenguaje C estándar que permite a los desarrolladores escribir código para resolver problemas de cálculo complejos en fracciones de segundo.
Apple está adaptando y publicando sus nuevas herramientas de desarrollo basadas en la tecnología CUDA para, de esta forma, poder facilitar el lanzamiento de aplicaciones de computación paralela.
La compañía parece estar muy interesada en esta nueva tecnología y de hecho, está planeando realizar su propia versión de herramientas de desarrollo aprovechando los APIs (Interfaz de Programación de Aplicaciones) de CUDA para desarrollar aplicaciones de todo tipo que utilizan el procesamiento en paralelo de los últimos chips de las tarjetas gráficas de NVIDIA.
El Adobe Creative Suite 4 es un conjunto de programas de edición de imágenes, fotografías, vídeos y páginas web de la famosa compañía Adobe. Entre otros programas incluye el Adobe PhotoShop y el Adobe Premiere por citar dos ejemplos.
Estas aplicaciones utilizan la tarjeta NVIDIA Quadro CX, una gran novedad perteneciente a la gama más potente y profesional de todo el catálogo que posee NVIDIA. Esta tarjeta hace uso del motor CUDA para mejorar el rendimiento de todas estas nuevas aplicaciones de Adobe en aspectos como los movimientos, el uso del zoom, la carga de ficheros, la exportación de vídeo o la velocidad de aplicación de filtros.
La tecnología CUDA también es utilizada en el raytracing, una técnica de renderizado que representa la luz de una manera muy eficaz y que la aprovecha para crear gráficos en tres dimensiones por ordenador. Consiste en el trazado de rayos en tiempo real.
Gracias a la arquitectura creada por NVIDIA, el raytracing ha evolucionado a un nivel de trabajo de 30 imágenes por segundo. Existen GPUs que realizan el trazado de rayos a 30 fps (frames por segundo) y con una resolución de 1920 x 1080 píxeles.
Otras tareas que se pueden realizar con el raytracing pueden ser la realización de polígonos, imágenes de pintura con base de Shader, trazado de rayos y sombras, refracciones y reflexiones.
La interpolación cúbica B-spline CUDA es una aplicación de interpolación que emplea la tecnología CUDA de NVIDIA. Consiste en la construcción de nuevos puntos partiendo del conocimiento de un conjunto discreto de puntos.
Muchas aplicaciones podrían beneficiarse de la interpolación de orden superior, algo a lo que se puede aplicar especialmente la arquitectura CUDA, que consigue que el poder de procesamiento de la GPU esté disponible para aplicaciones de propósito general.
GpuCV, GPU-Accelerated Computer Vision Library es un acelerador de procesamiento de imágenes en código abierto. Aprovecha la potencia de cálculo de las últimas GPUs utilizando la arquitectura CUDA y con unos resultados que mejoran más de 100 veces la velocidad de la aplicación.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment