| Title: | Projeto de uma rede neural em hardware digital para o reconhecimento de dígitos manuscritos |
| Author: | Santos, Thiago Henrique dos |
| Abstract: |
Este trabalho explora o desenvolvimento de um acelerador de hardware para inferência em aplicações de aprendizado de máquina em pequena escala, com foco na classificação de imagens em escala de cinza. Por meio do estudo de Redes Neurais Artificiais (RNAs), descreve-se a implementação de um sistema otimizado para reduzir área e atrasos, especialmente nos blocos de multiplicação e soma. Para isso, adotou-se a seleção criteriosa de arquiteturas de somadores no formato carry-save e a implementação de multiplicadores configurados a partir da multiplicação de dois fatores relacionados aos bits específicos dos pesos recebidos. Nessa abordagem, o bit mais significativo (MSB) é responsável pela indicação de sinal, de maneira que permite uma representação simplificada e uniforme para resultados positivos e negativos. A arquitetura carry-save possibilita que somas em cascata sejam executadas de forma mais eficiente, uma vez que o tratamento separado dos vetores de carry e de soma reduz a propagação de atrasos entre estágios consecutivos. O objetivo é obter uma solução eficiente quanto ao uso de memória e consumo de energia, mantendo precisão e desempenho. O sistema utiliza memória RAM de 32 x 350 bits e apresenta, para o bloco do neurônio digital, consumo de potência de 28,04 uW/MHz. Projetado na tecnologia CMOS de 65 nm, ocupa área de 0,115 mm2, incluindo a interface serial, o bloco de memória e a lógica do neurônio, chamado Digineuron. O projeto suporta o cálculo de um neurônio de 64 entradas em cada ciclo de relógio, armazenando na memória a configuração de até 32 neurônios organizados em diferentes camadas, com a frequência máxima de operação de 131 MHz. O desenvolvimento partiu de um protótipo inicial, já fabricado e avaliado em bancada. As medições preliminares evidenciaram imprecisões nas operações matemáticas devido ao overflow nos vetores de carry dos somadores, valores de escala insuficientes e deslocamento de bits na interface utilizada. As melhorias implementadas no segundo protótipo incluíram a correção do overflow, aumento do número de escalas, introdução de um vetor de bias (que no protótipo inicial era tratado como peso) e ajustes gerais na arquitetura. O novo modelo foi validado por simulação, resolvendo inicialmente o problema XOR, comprovando a capacidade de tratar problemas não linearmente separáveis, e posteriormente testado no problema de classificação MNIST. Os resultados de acurácia do segundo protótipo foram de 92,96% (treinamento), 92,84% (teste) e 92,70% (validação), enquanto a implementação em software obteve 93,49%, 92,94% e 92,87%, respectivamente, demonstrando que a aplicação em circuito apresenta desempenho próximo ao obtido em software. Abstract: This work explores the development of a hardware accelerator for inference in Tiny Machine Learning applications, focusing on grayscale image classification. Through the study of Ar- tificial Neural Networks (ANNs), it describes the implementation of a system optimized to reduce area and delays, especially in the multipliers and adders. For this purpose, a careful selection of carry-save adder architectures was adopted, along with the implementation of multipliers configured from the multiplication of two factors related to specific bits of the received weights. In this approach, the most significant bit (MSB) is responsible for the sign indication, in a way that allows a simplified and uniform representation for positive and negative results. The carry-save architecture enables cascaded additions to be performed more efficiently, as the separate handling of carry and sum vectors reduces delay propaga- tion between consecutive stages. The goal is to achieve a solution that is efficient in terms of memory usage and energy consumption, while maintaining accuracy and performance. The system uses a 32 x 350 bits of RAM and, for the digital neuron block, has a power consumption of 28.04 µW/MHz. Designed in 65 nm CMOS technology, it occupies an area of 0.115 mm2, including the serial interface, the memory block, and the neuron logic, called Digineuron. The design supports the computation of one neuron with 64 inputs per clock cycle, storing in memory the configuration of up to 32 neurons organized in different layers, with a maximum operating frequency of 131 MHz. The development started from an initial prototype, already fabricated and evaluated on the bench. Preliminary measurements re- vealed inaccuracies in mathematical operations due to overflow in the carry vectors of the adders, insufficient scaling values, and bit-shifting issues in the interface used. The improve- ments implemented in the second prototype included overflow correction, an increase in the number of scales, the introduction of a bias vector (which in the initial prototype was treated as a weight), and general architectural adjustments. The new model was validated through simulation, initially solving the XOR problem, demonstrating its ability to handle nonlinearly separable problems, and subsequently tested on the MNIST classification prob- lem. The accuracy results of the second prototype were 92.96% (training), 92.84% (testing), and 92.70% (validation), while the software implementation obtained 93.49%, 92.94%, and 92.87%, respectively, demonstrating that the in-circuit application performs close to that obtained in software. |
| Description: | Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Engenharia Elétrica, Florianópolis, 2025. |
| URI: | https://repositorio.ufsc.br/handle/123456789/269831 |
| Date: | 2025 |
| Files | Size | Format | View |
|---|---|---|---|
| PEEL2255-D.pdf | 1.780Mb |
View/ |