Implementación de autoencoders con matrices sístolicas a través de OpenCL
Autores: Gadea-Gironés, Rafael; Herrero-Bosch, Vicente; Monzó-Ferrer, Jose; Colom-Palero, Ricardo
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Implementación de autoencoders con matrices sístolicas a través de OpenCL
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Aceleración del algoritmo
Redes neuronales profundas
OpenCL
Arquitecturas de GPU
Arquitecturas de FPGA
Estructuras multikernel
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 41
Citaciones: Sin citaciones
En el mundo de la aceleración de algoritmos y la implementación de la fase de recuperación de redes neuronales profundas, las soluciones basadas en OpenCL tienen una clara tendencia a producir kernels perfectamente adaptados en las arquitecturas de unidades de procesamiento gráfico (GPU). Sin embargo, no logran obtener los mismos resultados cuando se aplican a arquitecturas basadas en matrices de compuertas programables en campo (FPGA). Esta situación, junto con un enorme avance en las nuevas arquitecturas de GPU, hace que sea inviable defender una solución de aceleración basada en FPGA, incluso en términos de eficiencia energética. Nuestro objetivo en este documento es demostrar que las estructuras de múltiples kernels pueden escribirse basadas en matrices sistólicas clásicas en OpenCL, tratando de extraer las características más avanzadas de las FPGAs sin tener que recurrir al desarrollo tradicional de FPGA utilizando lenguajes de descripción de hardware de nivel inferior (HDL) como Verilog o VHDL. Esta metodología de OpenCL se basa en el uso intensivo de canales (extensión de IntelFPGA de OpenCL) para la comunicación tanto de datos como de control y en el perfeccionamiento de las bibliotecas de OpenCL utilizando código de lógica de transferencia de registros (RTL) para mejorar el rendimiento de la implementación de las funciones base y de activación de las neuronas y, sobre todo, para reflejar la importancia de una comunicación adecuada entre las capas al implementar redes neuronales.
Descripción
En el mundo de la aceleración de algoritmos y la implementación de la fase de recuperación de redes neuronales profundas, las soluciones basadas en OpenCL tienen una clara tendencia a producir kernels perfectamente adaptados en las arquitecturas de unidades de procesamiento gráfico (GPU). Sin embargo, no logran obtener los mismos resultados cuando se aplican a arquitecturas basadas en matrices de compuertas programables en campo (FPGA). Esta situación, junto con un enorme avance en las nuevas arquitecturas de GPU, hace que sea inviable defender una solución de aceleración basada en FPGA, incluso en términos de eficiencia energética. Nuestro objetivo en este documento es demostrar que las estructuras de múltiples kernels pueden escribirse basadas en matrices sistólicas clásicas en OpenCL, tratando de extraer las características más avanzadas de las FPGAs sin tener que recurrir al desarrollo tradicional de FPGA utilizando lenguajes de descripción de hardware de nivel inferior (HDL) como Verilog o VHDL. Esta metodología de OpenCL se basa en el uso intensivo de canales (extensión de IntelFPGA de OpenCL) para la comunicación tanto de datos como de control y en el perfeccionamiento de las bibliotecas de OpenCL utilizando código de lógica de transferencia de registros (RTL) para mejorar el rendimiento de la implementación de las funciones base y de activación de las neuronas y, sobre todo, para reflejar la importancia de una comunicación adecuada entre las capas al implementar redes neuronales.