Design of a library of generic accelerators of DNN-based inference algorithms for low-end FPGAs
Abstract
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.
Description
Proyecto de Graduación (Maestría en Electrónica) Instituto Tecnológico de Costa Rica, Escuela de Ingeniería Electrónica, 2022.
Share
Metrics
Collections
The following license files are associated with this item: