Design of a library of generic accelerators of DNN-based inference algorithms for low-end FPGAs

dc.contributor.advisorCastro-Godínez, Jorgees
dc.contributor.authorLeón-Vega, Luis Gerardo
dc.date.accessioned2023-05-17T15:16:45Z
dc.date.available2023-05-17T15:16:45Z
dc.date.issued2022-12-08
dc.descriptionProyecto de Graduación (Maestría en Electrónica) Instituto Tecnológico de Costa Rica, Escuela de Ingeniería Electrónica, 2022.es
dc.description.abstractEl bajo consumo de potencia, recursos computacionales escasos y los pocos grados de libertad para la optimización limitan la implementación de soluciones para la inferencia de aprendizaje profundo en el edge. La computación aproximada y la síntesis de modelos de alto nivel en C++ resultan prometedoras para el diseño de aceleradores genéricos especializables. Este trabajo propone un marco de trabajo de código abierto con librerías incluidas para la generación y evaluación automática de elementos de procesamiento (PE, Processing Element) vectorizados y aceleradores personalizables para la multiplicación-adición de matrices y para la convolución con tamaño de operandos, longitud y tipo de dato, y operandos aritméticos adaptables, usando síntesis de alto nivel desde descripciones en C++ genérico. A través de una exploración del espacio de diseño (DSE, Design Space Exploration) que varía la longitud del dato de 4 a 16 bits, los tamaños de operando de 2 a 8 elementos y los fi ltros desde 3x3 hasta 7x7, se evalúa el escalamiento del consumo de recursos, ciclos de reloj, e ciencia de diseño y la distribución del error, presentando una vista comprensible de cómo los parámetros afectan las implementaciones genéricas. La multiplicación-adición de matrices presenta un compromiso entre granularidad vs e ciencia, donde PEs grandes con longitudes de datos cortas son favorecidas por la e ciencia de diseño. La configuración más idónea es un acelerador con un único PE de 2x2, requiriendo anchos de dato de 16 bits con 4 bits de parte entera para mantener el error de 20%, logrando 9 GOP/s con 3.2% de efi ciencia en una ZYNQ XC7Z020. En la convolución, se presenta la implementación de dos algoritmos: la convolución espacial y Winograd. La convolución espacial es mejor en términos de desempeño, mientras que Winograd en términos de consumo de recursos y tolerancia a los errores, requiriendo no menos de 4 bits para obtener 28 dB de PSNR con 10% de error medio. Finalmente, esta contribución puede ser adoptada en otros proyectos diferentes de redes neuronales dada la versatilidad de la programación genérica realizada en C++ y parametrización del diseño.es
dc.description.abstractLow-power consumption, scarce computational resources, and reduced degrees of freedom for optimisation limit the implementation of deep learning inference solutions at the edge. Approximate computing and the synthesis from high-level C++ models report promising techniques for designing specialisable generic accelerators. This research proposes an open-source framework with built-in libraries for the automatic generation and evaluation of vector processing elements (PEs) and customisable accelerators for matrix multiplication-addition and convolution, with adaptable operand size, data bit-width, datatype, and arithmetic operands, using generic C++ high-level synthesis. Through the design space exploration (DSE) that varies the data bit-width from 4 to 16 bits, the operand sizes from 2 to 8, and the kernels from 3 x 3 to 7 x 7, this work evaluates the resource consumption scaling, clocks-to-solution, design efficiency, and error distribution, presenting a comprehensive view of how the parameters affect the properties of the generic implementations. The matrix multiplication-addition presents a trade-off between granularity vs efficiency, where the design efficiency favours large PEs with short data widths. The most suitable configuration was a single-PE accelerator with 2 x 2 operands, requiring 16-bit data width with a 4-bit integer part to keep the error below 20%, achieving 9 GOP/s with 3.2% efficiency in a ZYNQ XC7Z020. Regarding the convolution PEs, this document shows the implementation of two algorithms: a window-based spatial convolution and Winograd. The spatial convolution is better in terms of performance, whereas, the Winograd in terms of resource consumption and error tolerance, requires no less than 4 bits to get 28 dB PNSR values and 10% of mean error. Finally, this contribution can be adopted in other projects different from neural networks because of the versatility of the generic programming performed in C++ and design parameterisation.es
dc.identifier.urihttps://hdl.handle.net/2238/14360
dc.language.isospaes
dc.publisherInstituto Tecnológico de Costa Ricaes
dc.rightsacceso abiertoes
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/*
dc.subjectAprendizaje automáticoes
dc.subjectRedes neuronaleses
dc.subjectAceleradores genéricoses
dc.subjectComputaciónes
dc.subjectAlgoritmos de inferenciaes
dc.subjectMatriz de puertas programable en campoes
dc.subjectAceleración -- Hardwarees
dc.subjectAutomatic learninges
dc.subjectNeural networkses
dc.subjectGeneric acceleratorses
dc.subjectInference algorithmes
dc.subjectField programmable gate arrayes
dc.subjectAcceleration -- Hardwarees
dc.subjectResearch Subject Categories::TECHNOLOGY::Electrical engineering, electronics and photonicses
dc.titleDesign of a library of generic accelerators of DNN-based inference algorithms for low-end FPGAses
dc.typetesis de maestríaes

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TF9537_BIB309865_Luis_Gerardo_Leon_Vega.pdf
Size:
4.17 MB
Format:
Adobe Portable Document Format
Description:

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.77 KB
Format:
Item-specific license agreed upon to submission
Description: