InferenCNN: Uma biblioteca para Inferência de Redes Neurais Convolucionais Multiplataforma em OpenCL
Ano de defesa: | 2019 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Pernambuco
UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | https://repositorio.ufpe.br/handle/123456789/36685 |
Resumo: | As Redes Neurais Convolucionais (Convolutional Neural Networks - CNN) têm se mostrado eficazes para problemas de Visão Computacional, como: classificação, detecção e reconhecimento de padrões. Assim, muitas bibliotecas, frameworks e soluções têm sido desenvolvidas para treinar e realizar a inferência dessas redes em dispositivos de computação. A inferência é a fase de uso de uma Rede Neural, em que novos dados são propagados pela rede, já treinada, a fim de se obter uma classificação, detecção ou reconhecimento de algum padrão. Nos últimos anos muitas arquiteturas de CNN’s foram desenvolvidas tendo como objetivo acelerar o treinamento e a inferência da rede neural, suprir a necessidade de problemas mais complexos e dar suporte à dispositivos de computação com limitação de memória e energia, como os dispositivos mobiles. Assim, com essa grande variedade de arquiteturas de CNN’s e dispositivos de computação, os atuais frameworks não dão suporte à alguns tipos de dispositivos ou se limitam à dispositivos de um fabricante específico. Neste trabalho apresentamos a InferenCNN, uma biblioteca multiplataforma capaz de realizar a inferência dos modelos de CNN’s, mapeando kernels OpenCL (Open Computing Language) em dispositivos de computação como CPU’s (Central Processing Unit), GPU’s (Graphics Processing Unit) e FPGA’s (Field Programmable Gate Array). A utilização do framework OpenCL, permite que a biblioteca independa do dispositivo ou fabricante do dispositivo, dando flexibilidade ao executar a inferência das arquiteturas de CNN’s. A InferenCNN apresenta um parser de pesos que permite a execução de arquiteturas de CNN’s que foram treinadas em diferentes frameworks, como Tensorflow, Caffe e Pytorch. Apresenta também um gráfico de fluxo que executa as camadas da CNN de forma modular, deixando espaço para que modificações e otimizações possam ser feitas, e que novas camadas e arquiteturas possam ser implementadas. Os experimentos realizados analisaram a InferenCNN em dispositivos diferentes e compararam as implementações com o framework Tensorflow e aceleradores em FPGA’s. Os resultados se mostraram promissores, apresentando melhoria de desempenho na inferência da arquitetura Inception quando comparada com o Tensorflow e desempenho próximo em outras arquiteturas. Quando comparada com aceleradores em FPGA a InferenCNN se mostrou com resultados inferiores em relação ao desempenho, mas com uma maior flexibilidade em realizar a inferência de várias arquiteturas de CNN. |