[en] In recent years, hardware architecture and system design have become relevant research areas for artificial intelligence in terms of innovation and efficiency. This growing popularity leads to increasing interest in Convolutional Neural Networks (CNNs), due to its high accuracy and applicability, ranging from facial and speech recognition to image classification and segmentation. The intense computational demand of CNNs requires the implementation of hardware accelerators for boosting their performance. Field-programmable devices (FPGAs) represent an interesting solution for dealing with CNNs power consumption and memory footprint constraints. FPGAs high energy efficiency, computing capabilities and reconfigurability offer a strong ground for meeting CNNs latency, accuracy and complexity requirements. The aim of this project is to design a FPGA-based accelerator for CNNs, which presents good energy-efficiency and high-speed results. The work presented in this report is focused on the implementation of a two-dimensional 16-bit fixed-point hardware convolver with the capability of computing arbitrary-size 2-D convolutions and performing single-cycle multiply-and-accumulate operations. In order to design and implement the convolver unit, which will constitute the core block of the CNN hardware accelerator, the adopted approach is based on a strategy to extract windows of pixels from a single data stream. This study involves the use of different FPGA families by Xilinx, analyzing design portability on devices with different sizes and performances. Promising comparative results have been achieved by optimizing the original convolver model and comparing it with other reference designs.

[es] En los últimos años, la arquitectura hardware y el diseño de nuevos sistemas se han convertido en áreas de investigación relevantes en el mundo de la la inteligencia artificial en términos de innovación y eficiencia. Esta creciente popularidad se traduce en un creciente interés por las Redes Neuronales Convolucionales (el acrónimo inglés es CNN), debido a su alta precisión y aplicabilidad, que va desde el reconocimiento facial y del habla hasta la clasificación y segmentación de imágenes. La intensa demanda computacional de las CNNs requiere la implementación de aceleradores de hardware para aumentar su rendimiento. Las matrices de puertas lógicas programables (el acrónimo en inglés es FPGA) representan una solución interesante para lidiar con el consumo de energía y las limitaciones de huella de memoria de las CNNs. El objetivo de este proyecto es diseñar un acelerador de redes neuronales convolucionales basado en una matriz de puertas lógicas programables. El trabajo presentado en este informe se centra en la implementación de una unidad de convolución hardware bidimensional de 16 bits con representación de coma fija, que cuenta con la capacidad de calcular convoluciones bidimensionales de tamaño arbitrario y realizar operaciones de multiplicación-y-acumulación de ciclo único. Para diseñar e implementar la unidad de convolución, la propuesta adoptada se basa en una estrategia para extraer ventanas de píxeles de un solo flujo de datos. El estudio incluye el uso de diferentes familias de FPGAs de Xilinx, entre las cuales se realiza un análisis de la portabilidad del diseño en dispositivos con diferentes tamaños y prestaciones. Se han logrado resultados comparativos prometedores al optimizar el modelo original y compararlo con otros diseños de referencia.