Este documento describe la implementación de un módulo para el entrenamiento y evaluación de redes neuronales mediante GPUs. El módulo mejora una implementación existente del algoritmo de retropropagación (BP) incluyendo una nueva versión en CUDA que permite la ejecución del algoritmo en GPUs. El documento detalla cuatro aportaciones clave del módulo: 1) mejoras en la implementación del BP para CPU, 2) una nueva formulación del BP en modo "bunch", 3) diseño del BP para ejecución en GPU, y 4) experimentación
Incremento en el desempeño de la multiplicación Matriz-VectorSotero Ordones
Este trabajo se concentra en el análisis de diversas técnicas de optimización de código en serie y en paralelo para incrementar el desempeño computacional de la multiplicación matriz-vector. Se presenta de forma detallada el estudio exhaustivo de las técnicas descritas así como los detalles de codificación. Se realizan diversos estudios numéricos en donde se determinan las características que debe tener el algoritmo para obtener el mayor rendimiento computacional en un solo núcleo y con varios núcleos de procesamiento empleando memoria compartida con OpenMP. En particular, se estudia exhaustivamente la influencia en el desempeño computacional empleando la técnica de loop unrolling y el procesamiento vectorial de datos. Mostramos numéricamente que el mejor desempeño se obtiene con unroll-8 obteniendo una ganancia de 1.6x, y empleando los registros paralelos se alcanza 2.2x. Además, empleando la programación en paralelo se determinaron 4.5, 8.2 y 9.8 Gflops 2,4,8 núcleos respectivamente.
Multiplicacion de matrices: Implementacion en clusterWalter Tejerina
La multiplicación de matrices es una de las operaciones más representativas para muchas aplicaciones, ya que involucran un elevado cálculo de datos con complejidad creciente de acuerdo a las dimensiones de las mismas. En la actualidad, dependiendo de las necesidades de cada aplicación, pueden encontrarse métodos variados para estos cálculos. En el presente trabajo se mostrará las diferencias entre un entorno paralelo, mediante una interfaz de paso de mensajes, tanto con un solo computador como con un arreglo de procesadores interconectados.
Incremento en el desempeño de la multiplicación Matriz-VectorSotero Ordones
Este trabajo se concentra en el análisis de diversas técnicas de optimización de código en serie y en paralelo para incrementar el desempeño computacional de la multiplicación matriz-vector. Se presenta de forma detallada el estudio exhaustivo de las técnicas descritas así como los detalles de codificación. Se realizan diversos estudios numéricos en donde se determinan las características que debe tener el algoritmo para obtener el mayor rendimiento computacional en un solo núcleo y con varios núcleos de procesamiento empleando memoria compartida con OpenMP. En particular, se estudia exhaustivamente la influencia en el desempeño computacional empleando la técnica de loop unrolling y el procesamiento vectorial de datos. Mostramos numéricamente que el mejor desempeño se obtiene con unroll-8 obteniendo una ganancia de 1.6x, y empleando los registros paralelos se alcanza 2.2x. Además, empleando la programación en paralelo se determinaron 4.5, 8.2 y 9.8 Gflops 2,4,8 núcleos respectivamente.
Multiplicacion de matrices: Implementacion en clusterWalter Tejerina
La multiplicación de matrices es una de las operaciones más representativas para muchas aplicaciones, ya que involucran un elevado cálculo de datos con complejidad creciente de acuerdo a las dimensiones de las mismas. En la actualidad, dependiendo de las necesidades de cada aplicación, pueden encontrarse métodos variados para estos cálculos. En el presente trabajo se mostrará las diferencias entre un entorno paralelo, mediante una interfaz de paso de mensajes, tanto con un solo computador como con un arreglo de procesadores interconectados.
Mis compañeros Data Scientist ya han hecho un modelo de Machine Learning y ahora me toca a mi ponerlo en producción para los clientes y conseguir que escale de forma masiva. En esta charla vamos a ver el lado más ingenieril: decisiones tomadas, decisiones descartadas, cosas que no nos han funcionado (y por qué) y cómo nuestro viejo amigo PySpark nunca nos defrauda. Aprenderemos lo que son las UDFs de Spark y como utilizarlas en combinación con un modelo de LightGBM para hacer predicciones. Tambén veremos la importancia de poder iterar rápido y probar cosas utilizando Databricks.
Presentación del proyecto de la materia de IAA de la UTPL.
Tema: Comparación de resultados en la convergencia de una red neuronal utilizando 1 y 2 capas ocultas respectivamente en el modelo del perceptrón multicapa utilizando el algoritmo BackPropagation al realizar el reconocimiento de señales de tránsito
En esta presentación haremos una pequeña introducción a Deep Learning. Posteriormente, veremos cómo entrenar y evaluar nuestros modelos haciendo uso del servicio de Azure ML, utilizando Cntk con Python para el entrenamiento y C# para la evaluación del modelo.
Problema #1: (x%)
¿Cuáles de las siguientes afirmaciones referentes a los sistemas Multiprocessor son ciertas?
a) En este modelo, hay una memoria compartida común (grande) para todos los procesadores.
b) Diferentes núcleos ejecutan diferentes hilos (instrucciones múltiples), operando en diferentes partes de la memoria (datos múltiples).
c) Todos los núcleos comparten la misma memoria.
d) Cada procesador tiene su propia (pequeña) memoria local, y su contenido no se replica en ningún otro lugar.
Problema #2: (x%)
¿Cuáles de las siguientes afirmaciones referentes a los sistemas Multicore son ciertas?
a) En este modelo, hay una memoria compartida común (grande) para todos los procesadores.
b) Diferentes núcleos ejecutan diferentes hilos (instrucciones múltiples), operando en diferentes partes de la memoria (datos múltiples).
c) Todos los núcleos comparten la misma memoria.
d) Cada procesador tiene su propia (pequeña) memoria local, y su contenido no se replica en ningún otro lugar.
Problema #3: (x%)
¿Cuáles de las siguientes afirmaciones son desventajas de usar Real Time Operating System (RTOS)?
a) Ninguna de las opciones
b) Requieren más memoria RAM que un Sistema sin RTOS
c) Desarrollar software para un RTOS requiere de experiencia y planeamiento cuidadoso
d) Una aplicación típica es alrededor de 15 K en tamaño, de las cuales el sistema operativo base es de aproximadamente 400 bytes.
e) Controlar acceso a recursos utilizados por más de una tarea
f) Todo byte debe ir acompañado de un bit de reconocimiento ACK
g) Un RTOS permite organizar tareas de manera lógica y sencilla, asignando una prioridad a cada una de ellas
Problema #4: (x%)
¿Cuáles de las siguientes afirmaciones son ventajas de usar Real Time Operating System (RTOS)?
a) Asegura la dependencia entre tareas
b) Refuerza conceptos de modularizarían
c) Incrementa el tiempo de desarrollo
d) El código implementado dentro de una rutina de atención a interrupción debe ocupar pocos ciclos de procesador.
e) Facilita la extensibilidad y verificación del diseño
f) Provee de métodos seguros de Comunicaciones entre tareas
Problema #5: (x%)
¿Cuáles de las siguientes afirmaciones son los requisitos para un Real Time Operating System (RTOS)?
a) Control del usuario
b) Insensibilidad
c) Tolerancia a los fallos
d) Elevada potencia en la alimentación de energía
e) Determinismo
f) Sensibilidad
g) Potente sistema de disipación de temperatura
h) Fiabilidad
i) Todas las anteriores
j) Ninguna de las anteriores.
Problema #6: (x%)
¿Cuáles de las siguientes afirmaciones son características de las colas para comunicar datos entre tareas en un Real Time Operating System (RTOS)?
a) El sistema determinista nos permite predecir el comportamiento del programador del sistema RTOs, garantizando así que se cumplan los requisitos de tiempo real.
⭐ For more information visit our blog:
https://vasanza.blogspot.com/
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
Más contenido relacionado
Similar a Implementación de un módulo para el entrenamiento y evaluación de redes neuronales mediante GPUs
Mis compañeros Data Scientist ya han hecho un modelo de Machine Learning y ahora me toca a mi ponerlo en producción para los clientes y conseguir que escale de forma masiva. En esta charla vamos a ver el lado más ingenieril: decisiones tomadas, decisiones descartadas, cosas que no nos han funcionado (y por qué) y cómo nuestro viejo amigo PySpark nunca nos defrauda. Aprenderemos lo que son las UDFs de Spark y como utilizarlas en combinación con un modelo de LightGBM para hacer predicciones. Tambén veremos la importancia de poder iterar rápido y probar cosas utilizando Databricks.
Presentación del proyecto de la materia de IAA de la UTPL.
Tema: Comparación de resultados en la convergencia de una red neuronal utilizando 1 y 2 capas ocultas respectivamente en el modelo del perceptrón multicapa utilizando el algoritmo BackPropagation al realizar el reconocimiento de señales de tránsito
En esta presentación haremos una pequeña introducción a Deep Learning. Posteriormente, veremos cómo entrenar y evaluar nuestros modelos haciendo uso del servicio de Azure ML, utilizando Cntk con Python para el entrenamiento y C# para la evaluación del modelo.
Problema #1: (x%)
¿Cuáles de las siguientes afirmaciones referentes a los sistemas Multiprocessor son ciertas?
a) En este modelo, hay una memoria compartida común (grande) para todos los procesadores.
b) Diferentes núcleos ejecutan diferentes hilos (instrucciones múltiples), operando en diferentes partes de la memoria (datos múltiples).
c) Todos los núcleos comparten la misma memoria.
d) Cada procesador tiene su propia (pequeña) memoria local, y su contenido no se replica en ningún otro lugar.
Problema #2: (x%)
¿Cuáles de las siguientes afirmaciones referentes a los sistemas Multicore son ciertas?
a) En este modelo, hay una memoria compartida común (grande) para todos los procesadores.
b) Diferentes núcleos ejecutan diferentes hilos (instrucciones múltiples), operando en diferentes partes de la memoria (datos múltiples).
c) Todos los núcleos comparten la misma memoria.
d) Cada procesador tiene su propia (pequeña) memoria local, y su contenido no se replica en ningún otro lugar.
Problema #3: (x%)
¿Cuáles de las siguientes afirmaciones son desventajas de usar Real Time Operating System (RTOS)?
a) Ninguna de las opciones
b) Requieren más memoria RAM que un Sistema sin RTOS
c) Desarrollar software para un RTOS requiere de experiencia y planeamiento cuidadoso
d) Una aplicación típica es alrededor de 15 K en tamaño, de las cuales el sistema operativo base es de aproximadamente 400 bytes.
e) Controlar acceso a recursos utilizados por más de una tarea
f) Todo byte debe ir acompañado de un bit de reconocimiento ACK
g) Un RTOS permite organizar tareas de manera lógica y sencilla, asignando una prioridad a cada una de ellas
Problema #4: (x%)
¿Cuáles de las siguientes afirmaciones son ventajas de usar Real Time Operating System (RTOS)?
a) Asegura la dependencia entre tareas
b) Refuerza conceptos de modularizarían
c) Incrementa el tiempo de desarrollo
d) El código implementado dentro de una rutina de atención a interrupción debe ocupar pocos ciclos de procesador.
e) Facilita la extensibilidad y verificación del diseño
f) Provee de métodos seguros de Comunicaciones entre tareas
Problema #5: (x%)
¿Cuáles de las siguientes afirmaciones son los requisitos para un Real Time Operating System (RTOS)?
a) Control del usuario
b) Insensibilidad
c) Tolerancia a los fallos
d) Elevada potencia en la alimentación de energía
e) Determinismo
f) Sensibilidad
g) Potente sistema de disipación de temperatura
h) Fiabilidad
i) Todas las anteriores
j) Ninguna de las anteriores.
Problema #6: (x%)
¿Cuáles de las siguientes afirmaciones son características de las colas para comunicar datos entre tareas en un Real Time Operating System (RTOS)?
a) El sistema determinista nos permite predecir el comportamiento del programador del sistema RTOs, garantizando así que se cumplan los requisitos de tiempo real.
⭐ For more information visit our blog:
https://vasanza.blogspot.com/
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
Trabajo tecnología sobre Conceptos Básicos De Programación
Implementación de un módulo para el entrenamiento y evaluación de redes neuronales mediante GPUs
1. Implementaci´on de un m´odulo para el entrenamiento y
evaluaci´on de redes neuronales mediante GPUs
Adri´an Palacios
Universidad Polit´ecnica de Valencia
27 de Septiembre del 2012
1 de 27
2. Introducci´on
• Las redes neuronales artificiales son un modelo matem´atico
utilizado en diversas ´areas por su capacidad de aprendizaje a partir
de muestras.
• El algoritmo de aprendizaje m´as popular es el Backpropagation
(BP), un algoritmo iterativo de descenso por gradiente.
• Uno de los problemas de este modelo es que se necesita realizar
una gran cantidad de c´alculos para resolver algunos problemas,
llegando a necesitar incluso semanas de CPU para su compleci´on.
• El objetivo de este proyecto es mejorar una implementaci´on ya
existente del algoritmo BP, incluyendo una nueva versi´on en
lenguaje CUDA que posibilite la ejecuci´on de este algoritmo en
GPUs.
2 de 27
3. Forma matricial del algoritmo BP
En un dise˜no est´andar, la red tendr´ıa el siguiente aspecto para redes
con conexiones todos a todos y usando la forma matricial de BP:
i o
i+1
o
o+1
s
s
3 de 27
4. Aportaciones
1. Redise˜no del algoritmo BP para ejecutarse en CPU: Se ha
mejorado e implementado el dise˜no de redes neuronales en April
(realizado en C++) para mejorar la ejecuci´on del algoritmo BP en
CPU.
2. El modo “bunch”: Nueva formulaci´on del BP en modo “bunch”
con momentum y weight decay, algo que no est´a en la literatura.
3. Dise˜no del algoritmo BP para ejecutarse en GPU: Sobre el
dise˜no anterior, se han a˜nadido los elementos necesarios para que
la ejecuci´on ´ıntegra del BP pueda ser efectuada en GPU.
4. Experimentaci´on exhaustiva: La implementaci´on ha sido validada
mediante la resoluci´on de un conjunto de tareas complejas y se ha
elaborado un estudio sobre la influencia de los par´ametros en ellas.
4 de 27
5. Aportaci´on 1: Dise˜no del BP
• El BP de April ha sufrido cambios desde 2005 para cumplir nuevos
requisitos: Redise˜no aprovechando los conocimientos previos.
• Otras implementaciones ofrecen flexibilidad a costa de eficiencia
(neuronas independientes) o eficiencia utilizando topolog´ıas
especializadas. Este dise˜no combina lo mejor de ambas
aproximaciones.
• El modo “on-line” ha sido mejorado.
5 de 27
6. Aportaci´on 2: El modo bunch
Dise˜no de la red sin bunch:
i
o
i+1
o
o+1
s
s
Dise˜no de la red con bunch (b muestras):
b
i
o
i+1
b
o
b
o+1
s
s
6 de 27
7. Bibliotecas de ´algebra lineal
La API de BLAS declara un conjunto de funciones aplicables sobre
vectores y matrices.
´Esta se divide en 3 niveles:
• Nivel 1: Operaciones aplicables sobre un conjunto de vectores, de
la forma y ← αx + y.
• Nivel 2: Operaciones aplicables sobre matrices y vectores, de la
forma: y ← αAx + βy.
• Nivel 3: Operaciones aplicables sobre un conjunto de matrices, de
la forma: C ← αAB + βC.
7 de 27
8. Implementaciones de la API de BLAS
Las bibliotecas que implementan esta API aceleran la ejecuci´on de
este tipo de operaciones mediante el uso de:
• Instrucciones vectoriales especializadas.
• Memoria alineada.
• M´ultiples n´ucleos de la CPU.
• La GPU.
En este proyecto se usan tres implementaciones de la API de BLAS:
• ATLAS: Una biblioteca de c´odigo abierto que podemos usar para
cualquier tipo de procesador.
• Intel MKL: La biblioteca de Intel. Permite el uso de m´ultiples
n´ucleos del procesador.
• CUBLAS: La biblioteca de CUDA. Permite el uso de la GPU.
8 de 27
9. Aportaci´on 3: Implementaci´on con CUDA
Las GPUs son procesadores SIMD con unos
300 n´ucleos (comparado con los 8 de una
CPU), pensados inicialmente para c´alculo de
gr´aficos 3D, pero utilizados en el campo de
la computaci´on de altas prestaciones.
Las GPU de Nvidia disponen de la
arquitectura CUDA que facilita la realizaci´on
de operaciones de forma paralela, mediante el
uso del lenguaje CUDA.
9 de 27
10. Bloques de memoria y wrappers
Hemos dise˜nado una clase para
representar memoria compartida entre
CPU y GPU: El bloque de memoria. Estos
bloques de memoria se encargan de
suministrar el tipo de memoria pedido de
forma actualizada.
Tambi´en se han dise˜nado los wrappers
para el ´algebra lineal, que nos permiten
realizar la llamada de funciones de
´algebra lineal de forma independendiente
a la biblioteca usada para compilar.
10 de 27
11. Aportaci´on 4: Experimentaci´on
Correcci´on: La correcci´on de todas las versiones ha sido validada
mediante la resoluci´on de las tareas d´ıgitos y xor.
Rendimiento: El rendimiento ha sido valorado en base a la resoluci´on
de una tarea no trivial, en donde se realiza:
1. Un barrido de par´ametros del entrenamiento.
2. Un barrido de topolog´ıas.
3. Un estudio del paralelismo.
11 de 27
12. Experimentaci´on: Rendimiento (Tarea)
La tarea MNIST es una tarea de clasificaci´on de d´ıgitos manuscritos
formada a partir de las bases de datos publicadas por el NIST. El
corpus de entrenamiento est´a formado por 60000 im´agenes de
28 × 28 p´ıxeles cada una.
Las redes con las cuales realizaremos el entrenamiento comparten
estas caracter´ısticas:
• La capa de entrada estar´a formada por 784 neuronas.
• La capa de salida estar´a formada por 10 neuronas.
• La funci´on de activaci´on en las capas ocultas ser´a la tangente
hiperb´olica y en la capa de salida ser´a la softmax.
• La funci´on de error de la red ser´a la entrop´ıa cruzada.
12 de 27
13. Experimentaci´on: Rendimiento (Parte 1)
Objetivo: Buscar un conjunto de par´ametros cuyo resultado
represente un buen compromiso entre el error de validaci´on y el
tiempo de ejecuci´on.
Se realizar´an un total de 132 experimentos por build, resultantes de
las siguientes combinaciones de valores:
• Bunch: 1, 4, 8, 16, 32, 64, 96, 128, 256, 512 y 1024.
• Factor de aprendizaje: 0,01, 0,02 y 0,04.
• Momentum: 0,0 y 0,02.
• Weight decay: 0,0 y 10−6.
13 de 27
14. Experimentaci´on: Rendimiento (Parte 1)
Errores de validaci´on respecto al valor bunch para todas las builds:
1
1.5
2
2.5
3
3.5
4
1 4 8 16 32 64 96 128 256 512 1024
Errorenvalidacion(%)
Valor bunch
ATLAS
MKL
CUDA
minimo
14 de 27
15. Experimentaci´on: Rendimiento (Parte 1)
Tiempos por ´epoca respecto al valor bunch para todas las builds:
0
0.5
1
1.5
2
2.5
3
3.5
4
1 4 8 16 32 64 96 128 256 512 1024
Tiempo(segundos)
Valor bunch
ATLAS
MKL
CUDA
minimo
15 de 27
16. Experimentaci´on: Rendimiento (Parte 2)
Objetivo: Encontrar un n´umero de neuronas en las capas ocultas que
disminuya el error en los conjuntos de test y validaci´on.
Se realizar´an 30 experimentos para cada build, resultantes de las
siguientes combinaciones de valores:
• Primera capa oculta: 32, 64, 128, 256, 512 y 1024 neuronas.
• Segunda capa oculta: 0, 32, 64, 128 y 256 neuronas.
16 de 27
17. Experimentaci´on: Rendimiento (Parte 2)
Errores de clasificaci´on del conjunto de validaci´on y test respecto al
n´umero de neuronas en la primera capa para la build con MKL:
1
1.5
2
2.5
3
3.5
4
32 64 128 256 512 1024
Errorenvalidacion(%)
Neuronas en la primera capa
0 neuronas
32 neuronas
64 neuronas
128 neuronas
256 neuronas
1
1.5
2
2.5
3
3.5
4
32 64 128 256 512 1024
Errorentest(%)
Neuronas en la primera capa
0 neuronas
32 neuronas
64 neuronas
128 neuronas
256 neuronas
17 de 27
18. Experimentaci´on: Rendimiento (Parte 2)
Errores de clasificaci´on del conjunto de validaci´on y test respecto al
n´umero de neuronas en la primera capa para la build con CUDA:
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
6
6.5
32 64 128 256 512 1024
Errorenvalidacion(%)
Neuronas en la primera capa
0 neuronas
32 neuronas
64 neuronas
128 neuronas
256 neuronas
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
6
6.5
32 64 128 256 512 1024
Errorentest(%)
Neuronas en la primera capa
0 neuronas
32 neuronas
64 neuronas
128 neuronas
256 neuronas
18 de 27
19. Experimentaci´on: Rendimiento (Parte 3)
Objetivo: Examinar qu´e ocurre al lanzar varios experimentos en
paralelo, para encontrar el modo de ejecuci´on con mayor
productividad.
Se realizar´an experimentos para las siguientes combinaciones de
valores:
• N´umero de experimentos: 1, 2 y 4.
• N´ucleos a usar por cada proceso: 1, 2 y 4.
19 de 27
20. Experimentaci´on: Rendimiento (Parte 3)
Tiempos wall por ´epoca respecto al n´umero de n´ucleos empleados en
la ejecuci´on del experimento para la build con MKL:
0
1
2
3
4
5
6
7
8
9
10
1 2 4
Tiempowall(segundos)
Valor OMP_NUM_THREADS
1 hilo
2 hilos paralelos
4 hilos paralelos
20 de 27
21. Experimentaci´on: Rendimiento (Parte 3)
Tiempos wall por ´epoca respecto al n´umero de n´ucleos empleados en
la ejecuci´on del experimento para la build con CUDA:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
1 2 4
Tiempowall(segundos)
Valor OMP_NUM_THREADS
1 hilo
2 hilos paralelos
4 hilos paralelos
21 de 27
22. Experimentaci´on: Rendimiento (Parte 3)
An´alisis de la productividad al lanzar varios procesos de forma
concurrente usando la build con MKL:
Valor de Hilos Tiempo Productividad
OMP NUM THREADS concurrentes por ´epoca por ´epoca
1 1 4,017 4,017
2 1 2,671 2,671
4 1 2,062 2,062
1 2 4,266 2,133
2 2 2,893 1,4465
4 2 3,496 1,748
1 4 4,733 1,18325
2 4 5,158 1,2895
4 4 8,074 2,0185
22 de 27
23. Uso de la aplicaci´on
April est´a siendo utilizado en numerosos trabajos de investigaci´on
desde el a˜no 2005 aproximadamente.
La nueva implementaci´on del BP de April ya est´a siendo utilizada
para tareas de limpieza de im´agenes, traducci´on autom´atica [Zam12]
y predicci´on de temperaturas [ZRP+].
Estamos preparando un art´ıculo en donde se describen las
aportaciones de la herramienta April para enviarlo a alguna revista o
congreso relacionado con el reconocimiento de formas.
23 de 27
24. Conclusiones
Los objetivos que nos hab´ıamos propuesto al principio del proyecto
han sido alcanzados con ´exito:
1. Se ha hecho un redise˜no completo de las redes neuronales de April
para ejecutar el algoritmo BP en CPU de un modo eficiente.
2. Este dise˜no incluye la formulaci´on del BP en modo “bunch” con
momentum y weight decay.
3. Sobre el nuevo dise˜no, se ha incorporado la opci´on de utilizar la
GPU para efectuar los c´alculos de forma paralela y eficiente.
4. Exhaustiva experimentaci´on para comprobar la correcci´on y el
rendimiento de la aplicaci´on. Estudio del efecto de determinados
par´ametros de entrenamiento y configuraci´on sobre tareas no
triviales (MNIST).
24 de 27
25. Cuantificando la mejora
April: Unas 600 veces m´as r´apido que SNNS (utilizado en pr´acticas de
Redes Neuronales).
Un experimento de la primera parte con MNIST:
• Con SNNS: 1 d´ıa y 6 horas.
• Con April: 3 minutos.
TODOS los experimentos de la primera parte con MNIST:
• Con SNNS: 5 meses y 1 semana.
• Con April: 6 horas y 20 minutos.
25 de 27
26. Ampliaciones futuras
Algunas de las propuestas para ampliar la herramienta son:
• Interfaz gr´afica.
• Adaptaci´on al uso de otras librer´ıas.
• Uso de m´ultiples GPUs, computaci´on en grid.
• Implementaci´on de otros algoritmos con GPU.
26 de 27
27. ¿Preguntas?
Para conocer m´as sobre el proyecto, la memoria estar´a disponible para
su consulta en el Repositorio Institucional de la UPV (RiuNet).
Muchas gracias por asistir a esta exposici´on.
27 de 27