Escalonamento inteligente de computações em ambientes híbridos CPU/GPU
Autor(a) principal: | |
---|---|
Data de Publicação: | 2021 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | http://hdl.handle.net/10362/151093 |
Resumo: | Muitos sistemas computacionais hoje em dia possuem um host CPU e uma ou mais GPUs mas nem sempre é fácil tirar partido de todo o potencial destes máquinas. Para podermos ter um grande de aproveitamento do hardware é necessário ter um profundo conheci- mento da sua arquitetura e efetuar ajustes quando se muda de um sistema para outro. O desempenho de uma execução, tanto na CPU como na GPU, depende de múltiplos fatores, como por exemplo o número de threads ou a localidade dos dados. O processo de escalonamento tem de ter em consideração qual é a melhor parametrização para cada processador e qual dos processadores usar. Esta tese foi desenvolvido no âmbito da framework Marrow. Esta framework é utilizada para a orquestração de computações em sistemas heterogéneos, permitindo, através de uma computação de alto nível, executar o código na CPU ou na GPU. O trabalho desenvolvido foi um módulo para a framework Marrow que, dado uma certa computação, decide se deve ser executada na CPU ou na GPU. Este módulo en- contra também o tamanho do bloco de threads que minimiza o tempo de execução, caso o dispositivo escolhido seja a GPU. Para efetuar as decisões foi utilizado um algoritmo de Aprendizagem Automática chamado Artificial Neural Networks. São empregues várias redes neuronais e as features utilizadas por estas são extraídas a partir das computações Marrow. Os resultados foram muito positivos, com uma eficácia superior a 97% na escolha do dispositivo onde deve ser executada a computação. Relativamente à previsão do tamanho de bloco ideal, os resultados foram também bastante bons. O tamanho de bloco devolvido pelo módulo resulta num tempo de execução que fica, em média, a menos de 2,4% do tempo de execução mínimo, alcançando valores abaixo de 1% em alguns testes. Foram realizados testes em dois sistemas bastante diferentes e consoante vários aspetos. Com este módulo, qualquer utilizador da framework Marrow pode executar compu- tações com configurações muito próximas das ideais mesmo que não tenha um conheci- mento aprofundado da framework ou da arquitetura do sistema. |
id |
RCAP_d273b7d0b93a6151175007729c0e53e2 |
---|---|
oai_identifier_str |
oai:run.unl.pt:10362/151093 |
network_acronym_str |
RCAP |
network_name_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
7160 |
spelling |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPUComputação heterogéneaautotuningAprendizagem Automáticaparâmetros GPUDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaMuitos sistemas computacionais hoje em dia possuem um host CPU e uma ou mais GPUs mas nem sempre é fácil tirar partido de todo o potencial destes máquinas. Para podermos ter um grande de aproveitamento do hardware é necessário ter um profundo conheci- mento da sua arquitetura e efetuar ajustes quando se muda de um sistema para outro. O desempenho de uma execução, tanto na CPU como na GPU, depende de múltiplos fatores, como por exemplo o número de threads ou a localidade dos dados. O processo de escalonamento tem de ter em consideração qual é a melhor parametrização para cada processador e qual dos processadores usar. Esta tese foi desenvolvido no âmbito da framework Marrow. Esta framework é utilizada para a orquestração de computações em sistemas heterogéneos, permitindo, através de uma computação de alto nível, executar o código na CPU ou na GPU. O trabalho desenvolvido foi um módulo para a framework Marrow que, dado uma certa computação, decide se deve ser executada na CPU ou na GPU. Este módulo en- contra também o tamanho do bloco de threads que minimiza o tempo de execução, caso o dispositivo escolhido seja a GPU. Para efetuar as decisões foi utilizado um algoritmo de Aprendizagem Automática chamado Artificial Neural Networks. São empregues várias redes neuronais e as features utilizadas por estas são extraídas a partir das computações Marrow. Os resultados foram muito positivos, com uma eficácia superior a 97% na escolha do dispositivo onde deve ser executada a computação. Relativamente à previsão do tamanho de bloco ideal, os resultados foram também bastante bons. O tamanho de bloco devolvido pelo módulo resulta num tempo de execução que fica, em média, a menos de 2,4% do tempo de execução mínimo, alcançando valores abaixo de 1% em alguns testes. Foram realizados testes em dois sistemas bastante diferentes e consoante vários aspetos. Com este módulo, qualquer utilizador da framework Marrow pode executar compu- tações com configurações muito próximas das ideais mesmo que não tenha um conheci- mento aprofundado da framework ou da arquitetura do sistema.Nowadays, heterogeneous systems with one CPU host and one or more GPUs are available in many computational systems, but it is not always easy to take full advantage of these machines. To achieve the full potential of the hardware we need to have a profound knowledge of the system architecture and make adjustments when we change from one system to another. The performance of an execution, both in the CPU and the GPU, depends on several factors, like the number of threads or data locality. The scheduling process has to take in consideration which is the best parameterization for each processor and when to assign tasks to each one. This thesis was developed in the scope of the Marrow framework. This framework is used for the scheduling of computations in heterogeneous systems. From a high level computation it allows you to run the code on a CPU or a GPU. In this thesis we developed a module for the Marrow framework which, given a certain computation, decides whether to execute it on the CPU or the GPU. This module also finds the thread block size that minimizes execution time, if the chosen device is the GPU. The module uses a Machine Learning algorithm called Artificial Neural Networks to make the decisions. Several neural networks are employed and the features used by these are extracted from the Marrow computations. The results were very good, with an effectiveness above 97% in choosing the correct device to execute the computation. Regarding the block size, the results were also very good. The block size returned by the module produces an execution time that is, on average, less than 2,4% higher than the minimum execution time, reaching values below 1% in some tests. The testing was performed in two very different systems and evaluated in several different parameters. With this module, any user of the Marrow framework can execute the computations with configurations very close to optimal, even without a profound knowledge of the framework or the system architecture.Paulino, HervéRUNAntónio, Francisco Manuel Évora2023-03-23T10:09:10Z2021-122021-12-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/151093porinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-03-11T05:33:33Zoai:run.unl.pt:10362/151093Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:54:27.844621Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
dc.title.none.fl_str_mv |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPU |
title |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPU |
spellingShingle |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPU António, Francisco Manuel Évora Computação heterogénea autotuning Aprendizagem Automática parâmetros GPU Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPU |
title_full |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPU |
title_fullStr |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPU |
title_full_unstemmed |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPU |
title_sort |
Escalonamento inteligente de computações em ambientes híbridos CPU/GPU |
author |
António, Francisco Manuel Évora |
author_facet |
António, Francisco Manuel Évora |
author_role |
author |
dc.contributor.none.fl_str_mv |
Paulino, Hervé RUN |
dc.contributor.author.fl_str_mv |
António, Francisco Manuel Évora |
dc.subject.por.fl_str_mv |
Computação heterogénea autotuning Aprendizagem Automática parâmetros GPU Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
Computação heterogénea autotuning Aprendizagem Automática parâmetros GPU Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
Muitos sistemas computacionais hoje em dia possuem um host CPU e uma ou mais GPUs mas nem sempre é fácil tirar partido de todo o potencial destes máquinas. Para podermos ter um grande de aproveitamento do hardware é necessário ter um profundo conheci- mento da sua arquitetura e efetuar ajustes quando se muda de um sistema para outro. O desempenho de uma execução, tanto na CPU como na GPU, depende de múltiplos fatores, como por exemplo o número de threads ou a localidade dos dados. O processo de escalonamento tem de ter em consideração qual é a melhor parametrização para cada processador e qual dos processadores usar. Esta tese foi desenvolvido no âmbito da framework Marrow. Esta framework é utilizada para a orquestração de computações em sistemas heterogéneos, permitindo, através de uma computação de alto nível, executar o código na CPU ou na GPU. O trabalho desenvolvido foi um módulo para a framework Marrow que, dado uma certa computação, decide se deve ser executada na CPU ou na GPU. Este módulo en- contra também o tamanho do bloco de threads que minimiza o tempo de execução, caso o dispositivo escolhido seja a GPU. Para efetuar as decisões foi utilizado um algoritmo de Aprendizagem Automática chamado Artificial Neural Networks. São empregues várias redes neuronais e as features utilizadas por estas são extraídas a partir das computações Marrow. Os resultados foram muito positivos, com uma eficácia superior a 97% na escolha do dispositivo onde deve ser executada a computação. Relativamente à previsão do tamanho de bloco ideal, os resultados foram também bastante bons. O tamanho de bloco devolvido pelo módulo resulta num tempo de execução que fica, em média, a menos de 2,4% do tempo de execução mínimo, alcançando valores abaixo de 1% em alguns testes. Foram realizados testes em dois sistemas bastante diferentes e consoante vários aspetos. Com este módulo, qualquer utilizador da framework Marrow pode executar compu- tações com configurações muito próximas das ideais mesmo que não tenha um conheci- mento aprofundado da framework ou da arquitetura do sistema. |
publishDate |
2021 |
dc.date.none.fl_str_mv |
2021-12 2021-12-01T00:00:00Z 2023-03-23T10:09:10Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10362/151093 |
url |
http://hdl.handle.net/10362/151093 |
dc.language.iso.fl_str_mv |
por |
language |
por |
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 Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799138133098364928 |