Mapas Auto-Organizados Ubíquos em Unidades de Processamento Gráfico - Borrego, João Pedro Vicente Martins (2018)
Atualmente, quantidades gigantescas de informação são geradas a cada instante. Tec- nologias como a computação ubíqua (Internet Of Things), as redes sociais e outras fontes geram informação constantemente. Existe a necessidade de processar essa informação para auxiliar a tomada de decisões, muitas vezes em tempo real. Para satisfazer essa ne- cessidade, vários algoritmos têm sido idealizados com o objetivo de analisar sequências de dados e reconhecer padrões existentes nessas sequências de dados. Um desses algoritmos é o Mapa Auto-Organizado Ubíquo, ou UbiSOM, uma variante do Mapa Auto-Organizado (SOM) que permite criar um modelo com base em sequências de dados potencialmente infinitas. No entanto, o CPU pode ter dificuldade em processar sequências de dados em tempo real. Muitos algoritmos de Aprendizagem Automática utilizam a Unidade de Pro- cessamento Gráfico (GPU), para acelerar o ritmo em que as computações são efetuadas. Devido às várias oportunidades de paralelização existentes, o algoritmo UbiSOM é um bom candidato para receber uma implementação em GPU, com o potencial para aumentar o ritmo de processamento do algoritmo, com as devidas otimizações. Para esta dissertação, implementou-se uma versão do UbiSOM adaptada para execu- ção em GPU, utilizando a ferramenta Marrow, uma ferramenta para desenvolvimento de sistemas heterogéneos para C++, utilizando construções de alto nível, com o objetivo de permitir ao programador focar-se no aspeto lógico da implementação e menos nos detalhes de cada dispositivo. A utilização dessa ferramenta tem como objetivo verificar a utilidade da mesma para aplicações reais e permitir o amadurecimento dela. Nesta dissertação será discutida a implementação do algoritmo e de todo o sistema à volta desse algoritmo. Será debatido ainda o trabalho efetuado em melhorar o Marrow. Serão também discutidos os resultados obtidos em termos de performance, comparando execuções em CPU com execução aceleradas por GPU. Por fim vai-se comparar o compor- tamento do UbiSOM adaptado para GPU com o comportamento do UbiSOM original.