Título: | Integração de módulos de redes neurais em hardware em um sistema many-core : um estudo de caso |
Autor(es): | Roarelli, Gustavo de Medeiros |
Orientador(es): | Mandelli, Marcelo Grandi |
Assunto: | Redes neurais (Computação) Linguagem de programação (Computadores) |
Data de apresentação: | 24-Jun-2022 |
Data de publicação: | 4-Abr-2023 |
Referência: | ROARELLI, Gustavo de Medeiros. Integração de módulos de redes neurais em hardware em um sistema many-core: um estudo de caso. 2022. 85 f., il. Trabalho de conclusão de curso (Bacharelado em Engenharia Mecatrônica) — Universidade de Brasília, Brasília, 2022. |
Resumo: | Este trabalho propõe um estudo de caso de implementação de um periférico de rede neu ral. Para isso, foi utilizada uma rede neural feedforward com duas entradas, uma camada
escondida e uma saída, capaz de obter a saída de uma porta XOR. A metodologia utilizada
para atingir o sistema proposto foi a da implementação de dois módulos no periférico, sendo
estes chamados de Módulo de Rede Neural, que provê a saída da rede neural, e o Módulo de
Interfaceamento, que envia e recebe pacotes provenientes da rede gerada pela plataforma
Memphis. Além disso, a mesma rede neural foi implementada em software, na linguagem C,
com objetivo de realizar comparações de desempenho. Para acoplar o periférico à Memphis,
foram necessárias algumas adições ao software e ao hardware da mesma. O periférico de rede
neural se mostrou funcional tanto isolado quanto acoplado à plataforma. Foi observado que,
quando isolado, o periférico é capaz de enviar e receber pacotes e retornar a saída da rede
neural. Quando acoplado à plataforma Memphis, o periférico tem seu tempo de execução
individual de apenas 30 ciclos de clock para uma rede descongestionada. Ao comparar o
desempenho do sistema gerado pela plataforma com o periférico retornando a saída da rede
neural com o software em C implementado, notou-se que o tempo total de execução do
sistema em software é, em média, 4% menor. Além disso, o delay de requisição da saída da
rede neural no sistema em software é de 343 ciclos de clock, ao passo que esse tempo em
hardware é de 1246 ciclos de clock em uma rede descongestionada com apenas 2 tarefas
alocadas. Foi observado que essa diferença é decorrente principamente do tempo da chamada
de sistema na API; do tempo de envio, recebimento e tratamento de pacotes; e do tempo de
escalonamento entre tarefas. Dessa forma, concluiu-se que o desempenho entre o uso de
uma implementação em software e hardware será relativo a complexidade da rede neural
implementada. |
Abstract: | This work proposes a case study of an implementation of a neural network peripheral. In
order to do this, a feed-forward neural network with two inputs, one hidden layer and one
exit, capable of obtaining the output of a XOR logic gate was used. The methodology used
to achieve the proposed system was the implementation of two modules in the peripheral,
called Neural Network Module, that provides the output value of the neural network, and the
Interface Module, that sends and receives packets from the mesh generated by the Memphis
platform. Moreover, the same neural network was implemented in software, in C language,
for performance comparison purposes. To attach the peripheral to Memphis, some additions
were necessary to the Memphis’s software and hardware. The neural network peripheral
proved to be functional not only isolated but also attached to the platform. It was observed
that, when isolated, the peripheral is capable of sending and receiving packets and returning
the output value of the neural network. When attached to Memphis, the peripheral has its
individual execution time of only 30 clock cycles for a decongested mesh. When comparing
the performance of the system generated by the platform when the peripheral returns the
output value with the implemented software, it was observed that the total execution time of
the system is, in average, 4% smaller. Furthermore, the requisition delay of the output of the
neural network in software is 343 clock cycles, whereas in hardware is 1246 in a decongested
mesh with 2 allocated tasks. It was observed that this difference is mostly due to the API
system call time; sending, receiving and treating packets and the scheduling time between
the tasks. Therefore, it is concluded that the performance between the implementation in
software and in hardware is relative to the complexity of the neural network implemented. |
Informações adicionais: | Trabalho de conclusão de curso (graduação) — Universidade de Brasília, Faculdade de Tecnologia, 2022. |
Licença: | A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor que autoriza a Biblioteca Digital da Produção Intelectual Discente da Universidade de Brasília (BDM) a disponibilizar o trabalho de conclusão de curso por meio do sítio bdm.unb.br, com as seguintes condições: disponível sob Licença Creative Commons 4.0 International, que permite copiar, distribuir e transmitir o trabalho, desde que seja citado o autor e licenciante. Não permite o uso para fins comerciais nem a adaptação desta. |
Aparece na Coleção: | Engenharia Mecatrônica
|
Todos os itens na BDM estão protegidos por copyright. Todos os direitos reservados.