Design of a library of generic accelerators of DNN-based inference algorithms for low-end FPGAs
Resumen
El 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. Low-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.
Descripción
Proyecto de Graduación (Maestría en Electrónica) Instituto Tecnológico de Costa Rica, Escuela de Ingeniería Electrónica, 2022.
Colecciones
El ítem tiene asociados los siguientes ficheros de licencia: