2 research outputs found

    An谩lisis de desempe帽o de capas de CNN para arquitecturas heterog麓eneas basadas en FPGAs usando HLS

    No full text
    Context: Convolutional neural networks (CNNs) are currently used in a wide range of artificial intelligence applications. In many cases, these applications require the execution of the networks in real time on embedded devices. Hence the interest in these applications achieving excellent performance with low power consumption. CNNs perform operations between the input data and the network weights, with the particularity that there is no dependence between most of the operations. Thus, the inherent parallelism of Field Programmable Gate Arrays (FPGAs) can be used to perform multiple operations in parallel, maintaining the good performance per watt that characterizes these devices. This paper focuses on evaluating the convolution algorithm for a convolutional layer of neural networks by exploring parallelization directives using VIVADO HLS, and it aims to evaluate the performance of the algorithm using optimization directives. Method: The methodology consists of an exploration of the design space of a convolutional neural network layer implementation using VIVADO HLS. Performance verification of the FPGA was performed by comparing the output data with the same convolution algorithm implemented in MATLAB. A layer of the commercial version Xilinx DNNK was used as a reference for performance measurements of the different implementations obtained during the exploration of the design space. In this work, multiple variations of optimization directives are used, such as pipeline, array partition and unroll. Results: This paper presents the results of a reference implementation (without optimization directives) of the convolution algorithm concerning algorithm latency and the hardware resources used by the FPGA. The results are compared with the implementations of the algorithm, including different combinations of two optimization directives (pipeline and partition array). Conclusions: This work explores the design space of a convolution algorithm for a convolutional neural network layer on FPGAs. The exploration includes the effect of data transfer between DDR memory and the on-chip memory of the FPGA. Also, said effect is caused by the optimization directives in VIVADO HLS on the different cycles of the algorithm. Acknowledgements: This work was supported in part by the Autom麓atica, Electr麓onica y Ciencias Computacionales Group (COL0053581) - Instituto Tecnol麓ogico Metropolitano and in part by Sistemas Embebidos e Inteligencia Computacional Group (COL0010717) - Universidad de Antioquia under Grant P17224.Contexto: Las redes neuronales convolucionales (CNNs) son actualmente utilizadas en una amplia gama de aplicaciones de inteligencia artificial. En muchos casos, dichas aplicaciones requieren la ejecuci贸n de las redes en tiempo real en dispositivos integrados. Por esto, el inter茅s en que estas aplicaciones puedan alcanzar un buen desempe帽o con bajo consumo de potencia. Las CNNs realizan operaciones entre los datos de entrada y los pesos de la red, con la particularidad de que no existe dependencia entre la mayor铆a de las operaciones. Por tal motivo, el paralelismo inherente de los FPGAs puede ser usado para realizar m煤ltiples operaciones en paralelo, manteniendo el buen desempe帽o por vatio que caracteriza a estos dispositivos. Este art铆culo se enfoca en la evaluaci贸n del algoritmo de convoluci贸n para una capa convolucional de redes neuronales explorando directivas de paralelizaci贸n usando VIVADO HLS, y su objetivo es evaluar el desempe帽o del algoritmo utilizando directivas de optimizaci贸n. M茅todo: La metodolog铆a consiste en una exploraci贸n del espacio de dise帽o de la implementaci贸n de una capa de una red neuronal convolucional usando VIVADO HLS. La verificaci贸n del funcionamiento del FPGA fue realizada comparando los datos de salida con el mismo algoritmo de convoluci贸n implementado en MATLAB. Una capa de la versi贸n comercial Xilinx DNNK fue usada como referencia para las medidas de desempe帽o de las diferentes implementaciones obtenidas en la exploraci贸n del espacio de dise帽o. En este trabajo se utilizan m煤ltiples variaciones de directivas de optimizaci贸n, tales como pipeline, array partition, y unroll. Resultados: Este trabajo presenta los resultados de una implementaci贸n de referencia (sin directivas de optimizaci贸n) del algoritmo de convoluci贸n con respecto a la latencia del algoritmo y los recursos de hardware utilizados por la FPGA. Los resultados se comparan con implementaciones del algoritmo, incluyendo diferentes combinaciones de dos directivas de optimizaci贸n (pipeline y partition array). Conclusiones: Este trabajo explora el espacio de dise帽o de un algoritmo de convoluci贸n para una capa de red neuronal convolucional sobre FPGAs. La exploraci贸n incluye el efecto causado por la transferencia de los datos entre la memoria DDR y la memoria on-chip del FPGA. Adem谩s, dicho efecto es causado por las directivas de optimizaci贸n en Vivado HLS sobre los diferentes ciclos del algoritmo

    An谩lisis de desempe帽o de capas de CNN para arquitecturas heterog茅neas basadas en FPGAs usando HLS

    No full text
    Context: Convolutional neural networks (CNNs) are currently used in a wide range of artificial intelligence applications. In many cases, these applications require the execution of the networks in real time on embedded devices. Hence the interest in these applications achieving excellent performance with low power consumption. CNNs perform operations between the input data and the network weights, with the particularity that there is no dependence between most of the operations. Thus, the inherent parallelism of Field Programmable Gate Arrays (FPGAs) can be used to perform multiple operations in parallel, maintaining the good performance per watt that characterizes these devices. This paper focuses on evaluating the convolution algorithm for a convolutional layer of neural networks by exploring parallelization directives using VIVADO HLS, and it aims to evaluate the performance of the algorithm using optimization directives. Method: The methodology consists of an exploration of the design space of a convolutional neural network layer implementation using VIVADO HLS. Performance verification of the FPGA was performed by comparing the output data with the same convolution algorithm implemented in MATLAB. A layer of the commercial version Xilinx DNNK was used as a reference for performance measurements of the different implementations obtained during the exploration of the design space. In this work, multiple variations of optimization directives are used, such as pipeline, array partition and unroll. Results: This paper presents the results of a reference implementation (without optimization directives) of the convolution algorithm concerning algorithm latency and the hardware resources used by the FPGA. The results are compared with the implementations of the algorithm, including different combinations of two optimization directives (pipeline and partition array). Conclusions: This work explores the design space of a convolution algorithm for a convolutional neural network layer on FPGAs. The exploration includes the effect of data transfer between DDR memory and the on-chip memory of the FPGA. Also, said effect is caused by the optimization directives in VIVADO HLS on the different cycles of the algorithm. Acknowledgements: This work was supported in part by the Autom麓atica, Electr麓onica y Ciencias Computacionales Group (COL0053581) - Instituto Tecnol麓ogico Metropolitano and in part by Sistemas Embebidos e Inteligencia Computacional Group (COL0010717) - Universidad de Antioquia under Grant P17224.Contexto: Las redes neuronales convolucionales (CNNs) son actualmente utilizadas en una amplia gama de aplicaciones de inteligencia artificial. En muchos casos, dichas aplicaciones requieren la ejecuci贸n de las redes en tiempo real en dispositivos integrados. Por esto, el inter茅s en que estas aplicaciones puedan alcanzar un buen desempe帽o con bajo consumo de potencia. Las CNNs realizan operaciones entre los datos de entrada y los pesos de la red, con la particularidad de que no existe dependencia entre la mayor铆a de las operaciones. Por tal motivo, el paralelismo inherente de los FPGAs puede ser usado para realizar m煤ltiples operaciones en paralelo, manteniendo el buen desempe帽o por vatio que caracteriza a estos dispositivos. Este art铆culo se enfoca en la evaluaci贸n del algoritmo de convoluci贸n para una capa convolucional de redes neuronales explorando directivas de paralelizaci贸n usando VIVADO HLS, y su objetivo es evaluar el desempe帽o del algoritmo utilizando directivas de optimizaci贸n. M茅todo: La metodolog铆a consiste en una exploraci贸n del espacio de dise帽o de la implementaci贸n de una capa de una red neuronal convolucional usando VIVADO HLS. La verificaci贸n del funcionamiento del FPGA fue realizada comparando los datos de salida con el mismo algoritmo de convoluci贸n implementado en MATLAB. Una capa de la versi贸n comercial Xilinx DNNK fue usada como referencia para las medidas de desempe帽o de las diferentes implementaciones obtenidas en la exploraci贸n del espacio de dise帽o. En este trabajo se utilizan m煤ltiples variaciones de directivas de optimizaci贸n, tales como pipeline, array partition, y unroll. Resultados: Este trabajo presenta los resultados de una implementaci贸n de referencia (sin directivas de optimizaci贸n) del algoritmo de convoluci贸n con respecto a la latencia del algoritmo y los recursos de hardware utilizados por la FPGA. Los resultados se comparan con implementaciones del algoritmo, incluyendo diferentes combinaciones de dos directivas de optimizaci贸n (pipeline y partition array). Conclusiones: Este trabajo explora el espacio de dise帽o de un algoritmo de convoluci贸n para una capa de red neuronal convolucional sobre FPGAs. La exploraci贸n incluye el efecto causado por la transferencia de los datos entre la memoria DDR y la memoria on-chip del FPGA. Adem谩s, dicho efecto es causado por las directivas de optimizaci贸n en Vivado HLS sobre los diferentes ciclos del algoritmo
    corecore