HARS1DE: Arquitetura de hardware para processamento de CNNs-1D na borda
Computação na borda, arquitetura de hardware, aprendizado de máquina, redes neurais convolucionais, sensoriamento remoto.
Atualmente há uma tendência ao uso do paradigma de cloud computing, onde os recursos, armazenamento e processamento de informação são realizados nas chamadas "nuvens", gerenciadas por provedores. Tal paradigma é aproveitado para o uso, por exemplo, de algoritmos de aprendizado de máquina sobre grandes volumes de dados. Em contrapartida, há o paradigma de computação na borda (edge computing), onde essa carga de processamento é transferida para próximo de onde os dados são gerados (na borda da rede). O investimento de empresas de tecnologia sobre esse tipo de computação e suas técnicas têm crescido, pois essa pode promover ganhos, por exemplo, em termos de latência no processamento, consumo de energia e recursos que eventualmente não estejam disponíveis na nuvem. Analogamente à computação na nuvem, também é possível realizar a aplicação de modelos preditivos de aprendizado de máquina na borda, onde arquiteturas de hardware dedicadas à aceleração desses processos podem ser empregadas. Dessarte, esse trabalho tem como objetivo principal a implementação, teste e validação de uma arquitetura de hardware capaz de acelerar a computação de CNNs-1D, incluindo camadas de pooling, ativação e dense, onde são analisadas métricas de desempenho, acurácia e uso de recursos de hardware. Para a obtenção dos resultados, foram realizadas duas representações da arquitetura, sendo uma em VHDL e sintetizada para FPGA de forma a se obter resultados de alocação de recursos de hardware e de tempo. A outra representação foi realizada em Python, linguagem de alto nível de abstração, para a obtenção de resultados mais rápidos sobre o comportamento da arquitetura mediante a execução de processos mais longos, como o processamento de uma rede neural inteira. Os resultados foram obtidos através da aplicação da arquitetura no domínio de aplicação de sensoriamento remoto, especificamente na classificação de pixels em imagens hiperespectrais. A rede neural utilizada foi uma versão simplificada de trabalhos anteriores na área para ser portada ao hardware. A arquitetura obtida, além de ser reconfigurável no sentido da FPGA, também tem seu comportamento mutável dependendo do tipo de camada de rede neural a ser processado. Além disso, se mostrou escalável, possibilitando o aumento da quantidade de elementos de processamento, aumentando-se o grau de paralelismo das operações.