Please use this identifier to cite or link to this item: http://repositorio.unicamp.br/jspui/handle/REPOSIP/345408
Type: DISSERTAÇÃO DIGITAL
Degree Level: Mestrado
Title: A task-parallel approach for neural networks : Uma abordagem de paralelismo de tarefas para redes neurais
Title Alternative: Uma abordagem de paralelismo de tarefas para redes neurais
Author: Martins Filho, Marcos Vinícius Guimarães, 1987-
Advisor: Araújo, Guido Costa Souza de, 1962-
Abstract: Resumo: Redes Neurais e Aprendizagem Profunda têm se sobressaído em diversas áreas, que vão desde o reconhecimento de imagens e detecção de objetos à geração de música. Todo este sucesso contribuiu para a pervasividade destas técnicas, com uma demanda sempre crescente para que aplicações que as utilizem sejam executadas em dispositivos tão diversos uanto smart watches e super clusters. Considerando que a etapa de treinamento é computacionalmente mais significativa que a de inferência, é natural que o foco de pesquisas na área de otimização seja na busca por melhorias no tempo de treinamento. Não obstante, à medida que aplicações baseadas em redes neurais começaram a ser utilizadas na borda da rede, tanto o meio acadêmico quanto a indústria intensificaram a pesquisa e o desenvolvimento de técnicas que objetivam otimizar a execução da etapa de inferência, como a troca de pequenas margens de acurácia por modelos menores (como a Mobilenet, por exemplo) ou consumo reduzido de memória e eficiência computacional (quantização, por exemplo). No entanto, uma área que continua pouco explorada é o uso de paralelismo de modelo, ou seja, a possibilidade de se executar várias operações da rede neural ao mesmo tempo, a fim de melhorar o tempo gasto na inferência. Apesar de suportada pelos principais frameworks de aprendizagem profunda, esta técnica só é utilizada durante o treinamento de modelos muito grandes, cujos parâmetros não cabem na memória de um único dispositivo e, por isso, precisam ser divididos em vários nós de um cluster (potencialmente heterogêneo). Além disso, geralmente recai sobre o desenvolver a responsabilidade de determinar como as operações paralelas do modelo serão divididas através destes nós. Este trabalho propõe uma nova abordagem para a utilização do paralelismo de modelo durante a etapa de inferência. Sua ideia central é explorar a correspondência entre um grafo de fluxo de dados - uma abstração comum para a representação de modelos de redes neurais - e um grafo de tarefas, e utilizar o runtime de escalonamento de tarefas para permitir que as operações paralelas de uma rede neural emerjam naturalmente. Este trabalho utiliza como base o TensorFlow XLA, um compilador de domínio específico para redes neurais que é capaz de gerar código binário altamente otimizado e customizado para uma plataforma específica a partir do modelo de uma rede neural treinada. A forma como o XLA gera esse código foi modificada para que o runtime de escalonamento de tarefas da implementação de OpenMP do Clang fosse utilizado. Dessa forma, ao executar cada operação da rede através de uma tarefa, o paralelismo presente no modelo é naturalmente traduzido pela forma como um grafo de fluxo de dados representa suas dependências na forma de tensores. A abordagem proposta neste trabalho foi avaliada em dois modelos diferentes da família Inception de redes neurais, cujo objetivo é o reconhecimento de imagens. Speed-ups de 13.64% e 12.42% foram obtidos para as redes Inception-v3 e Inception-v4, respectivamente, o que demonstra que o paralelismo de modelo é uma estratégia promissora para a otimização do tempo de inferência de redes neurais

Abstract: Neural Networks and Deep Learning have recently excelsed in many fields, ranging from image recognition and object detection to music generation. All of this success has turned them into pervasive tools, with an ever-growing push for running deep learning-powered applications on devices as computationally different as smart watches and supercomputing clusters. Since the training stage is significantly more computationally intensive than the inference stage, it is natural that most of the optimization research focus has been on improving the training time. Nonetheless, as neural networks-based applications make their way into the edge of the network, both academia and industry started developing techniques for improving how the inference stage is executed, like trading off accuracy for reduced model sizes (Mobilenet, for example) or less memory consumption and faster operations (quantization, for example). One area that remains poorly explored, though, is leveraging model parallelism - the possibility of executing multiple neural network operations at the same time - for speeding-up inference time. Although supported by several of the main deep learning frameworks nowadays, this approach is only considered for training large models that do not fit on a single device, and therefore need to be split across a potentially heterogeneous cluster. Moreover, it is usually the software developer's responsibility to manually split the parallel operations across different devices. This work proposes a novel approach for exploring model parallelism during the inference stage of a neural network. The central idea of this approach is to explore the correspondence that exists between a dataflow graph - a common abstraction for representing neural network models, followed by many of the main deep learning frameworks - and a task graph, and to use the task scheduling runtime to let emerge naturally the parallelism patterns that a model exhibits. This work builds on TensorFlow XLA, a domain-specific compiler for neural networks that generates highly optimized platform-specific code for a neural network model. By modifying XLA's code generation, Clang's OpenMP task runtime has been used for running every operation as a task. The parallelism in the model execution naturally emerges from how the dataflow graph expresses dependencies in terms of tensors. Our approach was evaluated on two different models of the Inception family of neural networks that target the image recognition task. Speed-ups of 13.64% and 12.42% were obtained for Inception-v3 and Inception-v4, respectively, showing that model parallelism is a strategy worth pursuing to optimize the inference time of neural networks
Subject: Redes neurais (Computação)
OpenMP (Programação paralela)
Paralelismo de tarefas
Programação paralela (Computação)
Language: Inglês
Editor: [s.n.]
Citation: MARTINS FILHO, Marcos Vinícius Guimarães. A task-parallel approach for neural networks: Uma abordagem de paralelismo de tarefas para redes neurais. 2020. 1 recurso online (66 p.) Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP.
Date Issue: 2020
Appears in Collections:IC - Tese e Dissertação

Files in This Item:
File SizeFormat 
MartinsFilho_MarcosViniciusGuimaraes_M.pdf1.89 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.