FPGA-Based Accelerator for Convolutional Neural Networks
Cita com:
hdl:2117/340207
Author's e-mailnoeliacivicogmail.com
CovenanteeUniversity of California, Irvine
Document typeBachelor thesis
Date2020-07-06
Rights accessOpen Access
Except where otherwise noted, content on this work
is licensed under a Creative Commons license
:
Attribution-NonCommercial-NoDerivs 3.0 Spain
Abstract
En aquests darrers anys, l’arquitectura hardware i el disseny de nous sistemes s’han convertit en àrees de recerca predominants en el món de la intel·ligència artificial en termes d’innovació i eficiència. Aquest increment de popularitat es tradueix en un interès creixent per l’àmbit de les Xarxes Neuronals Convolucionals (l’acrònim anglès és CNN), a causa de la seva alta precisió i aplicabilitat, que varia des del reconeixement facial i de veu a la classificació i segmentació d'imatges. La intensa demanda computacional de les CNNs requereix la implementació d'acceleradors hardware per augmentar el seu rendiment. Les matrius de portes programables (l’acrònim anglès és FPGA) representen una solució interessant per afrontar les limitacions de consum d’energia i petjada de memòria en les CNNs.
L'objectiu d'aquest projecte és el disseny d’un accelerador de xarxes neuronals convolucionals basat en una matriu de portes programables. El treball presentat en aquest informe està centrat en la implementació d'una unitat de convolució bidimensional de 16 bits amb representació de coma fixa, que compta amb la capacitat de calcular convolucions bidimensional de mides arbitràries i de realitzar operacions de multiplicació-i-acumulació en un únic cicle de rellotge.
Amb l’objectiu de dissenyar i implementar la unitat de convolució, la proposta plantejada es basa en una estratègia per extreure finestres de píxels a partir d’un únic flux de dades. L'estudi inclou l'ús de diferents famílies de FPGAs de Xilinx, entre les quals es realitza un anàlisi de la portabilitat del disseny en dispositius amb diferents mides i prestacions. Els resultats obtinguts mitjançant l’optimització del model original i la comparació amb altres dissenys de referència són molt favorables. 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. 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.
SubjectsArtificial intelligence, System design, Computers, Neural networks (Computer science), Intel·ligència artificial, Disseny de sistemes, Ordinadors, Xarxes neuronals (Informàtica)
DegreeGRAU EN ENGINYERIA ELECTRÒNICA INDUSTRIAL I AUTOMÀTICA (Pla 2009)
Files | Description | Size | Format | View |
---|---|---|---|---|
Noelia_Civico_Dorado_TFG_Report.pdf | 2,960Mb | View/Open |