Dissertação

{en_GB=Object Detection and Classification on the Versat Reconfigurable Processor } {} EVALUATED

{pt=O objectivo principal deste trabalho é o desenvolvimento do VersatCNN, um módulo IP baseado na arquitectura de matriz reconfigurável de grão grosso Versat e estendido para a computação eficiente de redes neuronais convolucionais (CNNs). O VersatCNN é validado através da implementação de um detector de objectos de estado de arte. O VersatCNN é composto por unidades de multiplicação-acumulação (MAC) embebidas em unidades vectoriais e organizadas numa matriz para explorar reuso dos dados e paralelismo ao nível da convolução e mapa de características. Unidades paralelas de leitura e escrita comunicam com a memória externa através dum barramento amplo de controlo de memória. As unidades de computação reconfiguráveis formam diferentes caminhos de dados para acelerar várias camadas das CNNs e funções de ativação. O detector de objectos é o YOLOv3-Tiny, uma versão leve do YOLOv3 para sistemas embebidos. Neste trabalho, o código-fonte é convertido para vírgula fixa e optimizado para aceleração em hardware através da aproximação das funções de activação e quantização dinâmica pós-treino. A queda de precisão é de apenas 2,1 usando a métrica da precisão média (mAP), quando comparada ao modelo original de virgula flutuante. O software optimizado do YOLOv3-Tiny é executado num CPU RISC-V de baixo desempenho, acelerado pelo VersatCNN e prototipado numa UltraScale XCKU040, atingindo um desempenho de 32,4 imagens por segundo, funcionando a 143 MHz para imagens de tamanho 768x576 e um factor de paralelismo de 832 (número de MACs)., en=The main goal of this work is the development of VersatCNN, an IP core based on the Versat Coarse-Grained Reconfigurable Array, extended to efficiently compute Convolutional Neural Networks (CNNs). VersatCNN is validated with the deployment of a state-of-art object detector. VersatCNN is composed of a large number of Multiply-Accumulate (MAC) units embedded in vector units, organized in a matrix structure to exploit parallelism at the convolution and feature map levels and to enhance data sharing. Parallel memory read and write units exchange data with the external memory over a wide memory controller bus. The reconfigurable computing units form different datapaths for accelerating different CNN layers and activation functions. The state-of-art object detector used is YOLOv3-Tiny, a lightweight version of the YOLOv3 detector targeting embedded systems, which has the best trade-off between accuracy and execution time. In this work, the source code is converted to fixed-point and optimized for hardware acceleration using approximated activation functions, batch-normalization folding and post-training dynamic quantization. The precision drop is only 2.1 using the Mean Average Precision (mAP metric), when compared to the original floating-point model. The YOLOv3-Tiny detector, running the optimized software on a minimal and low performance RISC-V CPU and using the VersatCNN IP core for acceleration, is prototyped in a UltraScale XCKU040 FPGA and achieves a performance of 32.4 frames per second, running at 143 MHz for 768x576 sized images and a parallelism factor of 832 (number of MAC units).}
{pt=Matriz Reconfigurável de Grão Grosso, Redes Neuronais Convolucionais, YOLOv3-Tiny, Versat, CPU RISC-V, en=Coarse Grained Reconfigurable Array, Convolutional Neural Networks, Versat Reconfigurable Processor, YOLOv3-Tiny, RISC-V CPU}

janeiro 11, 2021, 10:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

José João Henriques Teixeira de Sousa

Departamento de Engenharia Electrotécnica e de Computadores (DEEC)

Professor Auxiliar

ORIENTADOR

Horácio Cláudio De Campos Neto

Departamento de Engenharia Electrotécnica e de Computadores (DEEC)

Professor Associado