Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs

Detalhes bibliográficos
Autor(a) principal: Silva, Rennê Silva da
Data de Publicação: 2017
Tipo de documento: Trabalho de conclusão de curso
Idioma: eng
Título da fonte: Repositório Institucional da UFRGS
Texto Completo: http://hdl.handle.net/10183/169057
Resumo: Muitas aplicações atuais se beneficiam ao usar redes neurais para solucionar problemas de aprendizado de máquina, visto que elas frequentemente superam outras abordagens convencionais tanto em termos de acurácia e robustez dos resultados. Contudo, algumas vezes, treinar e executar redes com alta acurácia requer o uso de redes neurais complexas com muitos pesos. Isto tem um impacto direto no tempo necessário para treinar e executar uma rede neural, visto que estes procedimentos envolvem computação intensa e muitos acessos à memória. Tais altos custos de processamento podem ser uma carga computacional desafiadora até mesmo para plataformas computacionais modernas tais como as que possuem vários núcleos e unidades vetoriais. Apesar de GPUs poderem ser usadas a fim de melhorar tempo de execução, elas nem sempre são a melhor opção—redes pequenas, por exemplo, podem não se beneficiar do uso de GPUs além de nem sempre elas estarem disponíveis em dispositivos mais simples. Este trabalho de graduação introduz e demonstra a eficácia de várias técnicas de otimização de software que permitem que redes neurais se beneficiem totalmente das capacidades de CPUs sem comprometer sua acurácia. Nós avaliamos as técnicas de otimização propostas ao usar uma rede neural BLSTM para resolver um problema de Reconhecimento Ótico de Caracteres Arquiteturas diferentes (CPUs Intel e ARM), padrões de acesso a memória, esquemas de paralelização, bibliotecas de alta performance para álgebra linear, representações numéricas, lookup tables e vetorização (SSE, AVX e NEON) foram levadas em consideração neste trabalho para especificar estratégias que permitem melhorias no tempo de execução da rede. Finalmente, nós apresentamos uma comparação entre diferentes implementações de uma BLSTM tanto em termos de tempo de execução quanto de consumo de energia e mostramos que as otimizações implementadas melhoram o tempo de execução por um fator de 9 com perda insignificante de acurácia.
id UFRGS-2_e02159980c2d05106c55cfaaa0122544
oai_identifier_str oai:www.lume.ufrgs.br:10183/169057
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Silva, Rennê Silva daSilva, Bruno Castro daRybalkin, Vladimir2017-09-30T02:31:00Z2017http://hdl.handle.net/10183/169057001048369Muitas aplicações atuais se beneficiam ao usar redes neurais para solucionar problemas de aprendizado de máquina, visto que elas frequentemente superam outras abordagens convencionais tanto em termos de acurácia e robustez dos resultados. Contudo, algumas vezes, treinar e executar redes com alta acurácia requer o uso de redes neurais complexas com muitos pesos. Isto tem um impacto direto no tempo necessário para treinar e executar uma rede neural, visto que estes procedimentos envolvem computação intensa e muitos acessos à memória. Tais altos custos de processamento podem ser uma carga computacional desafiadora até mesmo para plataformas computacionais modernas tais como as que possuem vários núcleos e unidades vetoriais. Apesar de GPUs poderem ser usadas a fim de melhorar tempo de execução, elas nem sempre são a melhor opção—redes pequenas, por exemplo, podem não se beneficiar do uso de GPUs além de nem sempre elas estarem disponíveis em dispositivos mais simples. Este trabalho de graduação introduz e demonstra a eficácia de várias técnicas de otimização de software que permitem que redes neurais se beneficiem totalmente das capacidades de CPUs sem comprometer sua acurácia. Nós avaliamos as técnicas de otimização propostas ao usar uma rede neural BLSTM para resolver um problema de Reconhecimento Ótico de Caracteres Arquiteturas diferentes (CPUs Intel e ARM), padrões de acesso a memória, esquemas de paralelização, bibliotecas de alta performance para álgebra linear, representações numéricas, lookup tables e vetorização (SSE, AVX e NEON) foram levadas em consideração neste trabalho para especificar estratégias que permitem melhorias no tempo de execução da rede. Finalmente, nós apresentamos uma comparação entre diferentes implementações de uma BLSTM tanto em termos de tempo de execução quanto de consumo de energia e mostramos que as otimizações implementadas melhoram o tempo de execução por um fator de 9 com perda insignificante de acurácia.Many current applications benefit from using neural networks to solve machine learning problems, since they often outperform other conventional approaches both in terms of accuracy and robustness. However, training and deploying high accuracy networks sometimes requires using complex neural networks with many weights. This has a direct impact on the time needed to train and run such networks since these procedures involve intensive computations and many memory accesses. Such high processing costs may be a challenging burden even to modern computational platforms such as multi-cores and vector units. Although GPUs can be used in order to improve runtime, they are not always the best option—small networks, for instance, may not benefit from GPUs, and GPUs may not always be available in simpler devices. This graduation work introduces and demonstrates the efficacy of many software optimization techniques that allow for neural networks to fully benefit from the capabilities of CPUs without compromising their accuracy. We evaluate the proposed optimization techniques using a Bidirectional Long Short-Term Memory (BLSTM) neural network to solve an Optical Character Recognition (OCR) problem. Different architectures (Intel and ARM CPUs), memory access patterns, parallelization schemes, linear algebra high-performance libraries, numerical representations, lookup tables and vectorization (SSE, AVX and NEON) were taken into account to specify optimization strategies that allow for improvements in the runtime of the network. Finally, we present performance comparisons between different implementations of a BLSTM, both in terms of runtime and energy consumption, and show that the implemented optimizations improve runtime by a factor of 9 (when compared to an optimized floating-point baseline) while undergoing negligible loss of accuracy.application/pdfengMicroeletrônicaRedes neuraisRecurrent neural networksBLSTMSoftware optimization techniquesImproving runtimeEnergy consumption reductionParallel and high-performance computingSSE, AVX, NEON intrinsicsUsing software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUsUsando técnicas de otimização de software e explorando capacidades de hardware para acelerar redes neurais BLSTM em CPUs info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2017Engenharia de Computaçãograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL001048369.pdf001048369.pdfTexto completo (inglês)application/pdf4232692http://www.lume.ufrgs.br/bitstream/10183/169057/1/001048369.pdfaeb465f08cc71ce4da7a37f0191cef6cMD51TEXT001048369.pdf.txt001048369.pdf.txtExtracted Texttext/plain164809http://www.lume.ufrgs.br/bitstream/10183/169057/2/001048369.pdf.txtfe995d84a6f95d6956e03921628ce8f4MD52THUMBNAIL001048369.pdf.jpg001048369.pdf.jpgGenerated Thumbnailimage/jpeg1121http://www.lume.ufrgs.br/bitstream/10183/169057/3/001048369.pdf.jpgaccc547132c21e4115493ea41f80cdcbMD5310183/1690572018-10-29 08:14:41.702oai:www.lume.ufrgs.br:10183/169057Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2018-10-29T11:14:41Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs
dc.title.alternative.pt_BR.fl_str_mv Usando técnicas de otimização de software e explorando capacidades de hardware para acelerar redes neurais BLSTM em CPUs
title Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs
spellingShingle Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs
Silva, Rennê Silva da
Microeletrônica
Redes neurais
Recurrent neural networks
BLSTM
Software optimization techniques
Improving runtime
Energy consumption reduction
Parallel and high-performance computing
SSE, AVX, NEON intrinsics
title_short Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs
title_full Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs
title_fullStr Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs
title_full_unstemmed Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs
title_sort Using software optimization techniques and exploiting hardware capabilities to speed-up BLSTM neural network on CPUs
author Silva, Rennê Silva da
author_facet Silva, Rennê Silva da
author_role author
dc.contributor.author.fl_str_mv Silva, Rennê Silva da
dc.contributor.advisor1.fl_str_mv Silva, Bruno Castro da
dc.contributor.advisor-co1.fl_str_mv Rybalkin, Vladimir
contributor_str_mv Silva, Bruno Castro da
Rybalkin, Vladimir
dc.subject.por.fl_str_mv Microeletrônica
Redes neurais
topic Microeletrônica
Redes neurais
Recurrent neural networks
BLSTM
Software optimization techniques
Improving runtime
Energy consumption reduction
Parallel and high-performance computing
SSE, AVX, NEON intrinsics
dc.subject.eng.fl_str_mv Recurrent neural networks
BLSTM
Software optimization techniques
Improving runtime
Energy consumption reduction
Parallel and high-performance computing
SSE, AVX, NEON intrinsics
description Muitas aplicações atuais se beneficiam ao usar redes neurais para solucionar problemas de aprendizado de máquina, visto que elas frequentemente superam outras abordagens convencionais tanto em termos de acurácia e robustez dos resultados. Contudo, algumas vezes, treinar e executar redes com alta acurácia requer o uso de redes neurais complexas com muitos pesos. Isto tem um impacto direto no tempo necessário para treinar e executar uma rede neural, visto que estes procedimentos envolvem computação intensa e muitos acessos à memória. Tais altos custos de processamento podem ser uma carga computacional desafiadora até mesmo para plataformas computacionais modernas tais como as que possuem vários núcleos e unidades vetoriais. Apesar de GPUs poderem ser usadas a fim de melhorar tempo de execução, elas nem sempre são a melhor opção—redes pequenas, por exemplo, podem não se beneficiar do uso de GPUs além de nem sempre elas estarem disponíveis em dispositivos mais simples. Este trabalho de graduação introduz e demonstra a eficácia de várias técnicas de otimização de software que permitem que redes neurais se beneficiem totalmente das capacidades de CPUs sem comprometer sua acurácia. Nós avaliamos as técnicas de otimização propostas ao usar uma rede neural BLSTM para resolver um problema de Reconhecimento Ótico de Caracteres Arquiteturas diferentes (CPUs Intel e ARM), padrões de acesso a memória, esquemas de paralelização, bibliotecas de alta performance para álgebra linear, representações numéricas, lookup tables e vetorização (SSE, AVX e NEON) foram levadas em consideração neste trabalho para especificar estratégias que permitem melhorias no tempo de execução da rede. Finalmente, nós apresentamos uma comparação entre diferentes implementações de uma BLSTM tanto em termos de tempo de execução quanto de consumo de energia e mostramos que as otimizações implementadas melhoram o tempo de execução por um fator de 9 com perda insignificante de acurácia.
publishDate 2017
dc.date.accessioned.fl_str_mv 2017-09-30T02:31:00Z
dc.date.issued.fl_str_mv 2017
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/169057
dc.identifier.nrb.pt_BR.fl_str_mv 001048369
url http://hdl.handle.net/10183/169057
identifier_str_mv 001048369
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Repositório Institucional da UFRGS
collection Repositório Institucional da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/169057/1/001048369.pdf
http://www.lume.ufrgs.br/bitstream/10183/169057/2/001048369.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/169057/3/001048369.pdf.jpg
bitstream.checksum.fl_str_mv aeb465f08cc71ce4da7a37f0191cef6c
fe995d84a6f95d6956e03921628ce8f4
accc547132c21e4115493ea41f80cdcb
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv
_version_ 1801224538195755008