Mostrar el registro sencillo del ítem

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.identifier.urihttps://hdl.handle.net/2238/14360
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.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


Ficheros en el ítem

Thumbnail
Thumbnail

Este ítem aparece en la(s) siguiente(s) colección(ones)

Mostrar el registro sencillo del ítem

acceso abierto
Excepto si se señala otra cosa, la licencia del ítem se describe como acceso abierto