cambiar a curso:   2017-18   2019-20


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2018-19

Análisis de las comunicaciones de aplicaciones de Deep Learning sobre plataformas heterogéneas CPU-GPU


Tecnologías Específicas

Ingeniería de Computadores
 


Descripcion y Objetivos

Las redes neuronales se están aplicando cada vez más para resolver problemas que exceden las capacidades de los clústeres de última generación. Es el caso, por ejemplo, de aplicaciones de reconocimiento de voz e imágenes en tiempo real, detección de fraudes y anomalías, etc. En algunos casos, es necesario procesar grandes cantidades de datos, lo que requiere gran potencia de cálculo, y gran capacidad de almacenamiento.

Un factor esencial para el uso masivo y generalizado de redes neuronales para resolver problemas complejos reales ha sido el desarrollo de múltiples entornos de desarrollo de código abierto (TensorFlow[1], Caffe[2], AML[3], Singa[4], CNTK[5], Torch[6], Theano[7], etc), cuya disponibilidad ha simplificado dramáticamente el desarrollo de aplicaciones.

Sin embargo, además de este software es necesario un hardware que permita cubrir las necesidades de cómputo y almacenamiento requeridas. Las plataformas basadas en FPGAs o GPUs ofrecen buenas prestaciones pero insuficientes para abordar cierto tipo de problemas. Es por ello que se están estudiando sistemas con arquitecturas diferentes, que en algunos casos son ya una realidad (Intel Nervana chip [8], Tensor Processing Unit (TPU) [9] de Google).

Para el diseño de estas arquitecturas resulta de gran ayuda tener conocimiento del comportamiento de las aplicaciones basadas en redes neuronales, y en particular de las comunicaciones que éstas generan. Esta información permitirá determinar la arquitectura generasl, y la de la red de interconexión en particular, más eficientes para las nuevas plataformas de computación.

El objetivo principal de este trabajo fin de grado es analizar las comunicaciones generadas por la ejecución de varias aplicaciones basadas en redes neuronales sobre plataformas heterogéneas basadas en GPUs, e intentar establecer patrones de comportamiento que puedan ser fácilmente reproducidos.

 

 


Metodología y Competencias

El trabajo se desarrollará de acuerdo con la siguiente metodología:

- Selección de aplicaciones de Deep Learning. Se elegirá un entorno de desarrollo y varias aplicaciones representativas.

- Selección de la plataforma hardware basada en GPUs, en la que ejecutar las aplicaciones.

- Recoger las comunicaciones, realizando las modificaciones necesarias en el entorno y/o las aplicaciones para registrar todas las comunicaciones generadas durante la ejecución de las aplicaciones.

- Análisis de las comunicaciones. Se estudiarán los datos correspondientes a las comunicaciones generadas por las aplicaciones, y se realizará un estudio de caracterización.

- Opcionalmente, se intentarán modelar los patrones de comunicaciones, diseñando funciones que reproduzcan su comportamiento.

 

Las competencias que se aplican en el caso de la Tecnología de Ingeniería de Computadores son:

[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.

[IC5] Capacidad de analizar, evaluar y seleccionar las plataformas hardware y software más adecuadas para el soporte de aplicaciones empotradas y de tiempo real.

[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.

 

 


Medios a utilizar

En cuanto a los medios hardware, se usará, bien un servidor de altas prestaciones o bien un clúster de computación, no descartando la posibilidad de utilizar ambos. Dependerá de las aplicaciones finalmente seleccionadas y el tiempo necesario para su instalación y ejecución. Se intentará usar recursos disponibles en el la ESII o I3A, aunque si no fuera posible, se recurrirá a algunos de libre acceso ofrecidos por empresas del sector.

Por lo que respecta al software, será necesario instalar en las plataformas hardware varios de los entornos arriba mencionados, así como las aplicaciones elegidas para el estudio. Se instalarán y usarán aquellas herramientas adicionales que sean necesarias.

 

 


Bibliografía

[1] www.tensorflow.org/
[2] caffe.berkeleyvision.org/
[3] aws.amazon.com/aml/?nc2=h l3 al
[4] www.comp.nus.edu.sg/∼dbsystem/singa/
[5] www.microsoft.com/en-us/cognitive-toolkit/
[6] torch.ch/
[7] deeplearning.net/software/theano/
[8] www.tweaktown.com/news/60089/intel-nervana-neural-network-processor-32gb-hbm2-1tb-sec/index.html
[9] https://cloud.google.com/kubernetes-engine/docs/concepts/tpus

 

 


Tutores


SÁNCHEZ GARCÍA, JOSÉ LUIS
ALFARO CORTES, FRANCISCO JOSÉ
 

Alumno