Concurso de programación CUDA

Se plantea un concurso de programación abierto a los participantes en las jornadas. Es obligatoria la inscripción y asistencia para poder participar. El concurso consistirá en la paralelización usando el lenguaje CUDA de un algoritmo propuesto por los organizadores. Entre los criterios para evaluar los programas presentados primarán el mayor ratio de aceleración y eficiencia en el uso de los recursos del procesador gráfico.

  • El primer premio consistirá en una tarjeta gráfica GTX 480 valorada en 400 euros y el segundo en una beca para la realización del curso de verano de programación CUDA.

Más información y envío de programas de participantes: jgpu@dtic.ua.es

Implementación GPU Mapas de Kohonen

ALGORITMO

Se reta a los participantes de las jornadas a desarrollar una implementación CUDA de los mapas de Kohonen que obtenga el máximo rendimiento.

Los mapas de Kohonen también conocidos como mapas auto-organizativos son un tipo de red neuronal artificial que son entrenados utilizando aprendizaje no supervisado para producir una representación del espacio de entrada discreta y de dimensionalidad reducida. Los mapas auto-organizativos son muy útiles para la visualización de datos con alta dimensionalidad. El modelo de los mapas fue inicialmente propuesto por el catedrático Teuvo Kohonen y también es conocido como mapa autoorganizativo.

Un mapa de Kohonen está compuesto por un conjunto de nodos o neuronas. Asociado a cada neurona se encuentra un vector de la misma dimensionalidad que el espacio de entrada así como su posición en el mapa. La organización tradicional de las neuronas es en forma de malla bidimensional tomando formas rectangulares o hexagonales. El procedimiento para posicionar un vector del espacio de entrada en el mapa consiste en la búsqueda de la neurona con la distancia más cercana a ese vector. En la Figura 1, se muestra el proceso de posicionamiento a lo largo de varias iteraciones de aprendizaje.



Figura 1. Proceso de posicionamiento de un mapa de Kohonen sobre el espacio de entrada.


Múltiples implementaciones utilizando distintos lenguajes de programación han sido publicadas en Internet ( implementación C/C++, Python, Matlab C#, … ) y por lo tanto pueden utilizarse como punto de partida para medir la aceleración obtenida con la implementación GPU propuesta. Los mapas de Kohonen han sido utilizando desde su aparición para un número distinto de aplicaciones:

  • Clustering
  • Clasificación datos
  • Representación topológica 2D/3D
  • Reducción de la dimensionalidad de los datos
  • Compresión de imágenes

La aplicación del mapa de Kohonen es de libre elección por los participantes así como la elección del conjunto de datos sobre el que se va a entrenar. El tipo de datos seleccionado es muy dependiente de la aplicación que se quiera realizar de los mapas auto-organizativos, aunque un mismo tipo de datos puede utilizar la red neuronal para distintas aplicaciones: clustering y clasificación. Es posible encontrar varios datasets públicos en el siguiente enlace: ://archive.ics.uci.edu/ml/ , también podemos encontrar datasets para representación topológica 3D en el siguiente repositorio: http://graphics.stanford.edu/data/3Dscanrep/

NORMAS DE PARTICIPACIÓN

  • La fecha límite de entrega es el día domingo 16 de Junio de 2013 a las 24:00 horas, vía correo electrónico a la dirección jgpu@dtic.ua.es
  • Participación limitada a los asistentes a las jornadas
  • Se entregará un informe que detalle los siguientes aspectos
    • Aplicación y conjunto de datos utilizado.
    • Implementación CPU: Análisis de rendimiento y estudio de las partes del algoritmo con mayor coste computacional y mayor nivel de paralelismo.
    • Implementación GPU: Análisis de rendimiento y estudio de las estrategias utilizadas para su aceleración en la GPU.
    • Comparativa entre versión CPU y GPU: Aceleración obtenida
    • Conclusiones
  • Entre los criterios para evaluar los programas presentados primarán el mayor ratio de aceleración y eficiencia en el uso de los recursos del procesador gráfico, así como la calidad del informe presentado (experimentos propuestos, conjunto de datos elegido, etcétera).
  • El primer premio consistirá en una tarjeta gráfica GTX 480 valorada en 400 euros y el segundo en una beca para la realización del curso de verano de programación CUDA.