Collaborative aware CPU thread throttling and FPGA HLS versioning

Detalhes bibliográficos
Autor(a) principal: Knorst, Tiago
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/250633
Resumo: Servidores em Nuvem vem adotando arquiteturas colaborativas de CPU-GPU e CPU FPGA como alternativas para permitir aceleração extra às aplicações através do particionando da execução de threads/kernels em ambos os dispositivos. No entanto, explorar os benefícios destes ambientes é desafiador, pois existem muitos fatores que podem influenciar o desempenho e o consumo de energia, como o número de threads da CPU, o balanceamento da carga de trabalho (Worload Balance) e técnicas de otimização como FPGA HLS (High-Level Synthesis)-versioning. Este trabalho mostra que maximizar a utilização de recursos acionando o maior número de threads de CPU nem sempre resulta na melhor eficiência tanto em arquiteturas CPU-GPU quanto CPU-FPGA. Além disso, os experi mentos mostram que a quantidade de dados distribuídos para cada dispositivo (Workload Balance) afeta o poder de processamento necessário da CPU e, portanto, o número ótimo de threads de CPU para a execução da aplicação. Com o intuito de otimizar a execução de aplicações colaborativas CPU-GPU, inicialmente propomos o ETCG – Energy-aware CPU Thread Throttling for CPU-GPU collaborative environments. O ETCG é capaz de selecionar de forma transparente um número quase ótimo de threads na CPU visando a minimizar o produto entre atraso e energia consumida (EDP) de aplicações CPU-GPU. No segundo estudo, propomos ETCF – Energy-Aware CPU Thread Throttling and Wor kload Balancing Framework para ambientes colaborativos CPU-FPGA. O ETCF fornece uma execução CPU-FPGA eficiente ao selecionar apropriadamente o Workload Balance e o número de threads na CPU para uma aplicação colaborativa. Além disso, são oferecidos diferentes objetivos de otimização: desempenho, energia ou EDP. Em comparação à linha de base (considerando uma carga de trabalho igualmente equilibrada entre os dispositi vos e usando o número máximo de threads na CPU), nossos experimentos mostram que ETCG e ETCF fornecem, em média, 73% e 93% de redução de EDP, respectivamente. Também mostramos que tanto o ETCG quanto o ETCF alcançam soluções quase ótimas comparando-os a uma busca exaustiva, mas levando apenas 5% de seu tempo de busca no pior cenário. Finalmente, no terceiro estudo, consideramos um ambiente de tarefas colaborativas CPU-FPGA. Investigamos o impacto de aplicar sinergicamente Thread Th rottling no lado da CPU e do HLS-Versioning no lado do FPGA. Utilizamos como objeto de estudo um serviço de nuvem multi-inquilino, onde a sequência de requisições de apli- cações com diferentes prioridades resulta em DAGs de kernels de aplicações que devem ser executados sobre a arquitetura heterogênea. Nossos experimentos mostram que, ao aplicar sinergicamente Thread Throttling e HLS-Versioning aos kernels recebidos, pode se melhorar o EDP em até 41x em relação à execução não otimizada.
id URGS_04aa6bfd9f1637eda9ecbdaddaa8e9ca
oai_identifier_str oai:www.lume.ufrgs.br:10183/250633
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Knorst, TiagoBeck Filho, Antonio Carlos SchneiderRutzig, Mateus Beck2022-11-04T04:37:03Z2022http://hdl.handle.net/10183/250633001152215Servidores em Nuvem vem adotando arquiteturas colaborativas de CPU-GPU e CPU FPGA como alternativas para permitir aceleração extra às aplicações através do particionando da execução de threads/kernels em ambos os dispositivos. No entanto, explorar os benefícios destes ambientes é desafiador, pois existem muitos fatores que podem influenciar o desempenho e o consumo de energia, como o número de threads da CPU, o balanceamento da carga de trabalho (Worload Balance) e técnicas de otimização como FPGA HLS (High-Level Synthesis)-versioning. Este trabalho mostra que maximizar a utilização de recursos acionando o maior número de threads de CPU nem sempre resulta na melhor eficiência tanto em arquiteturas CPU-GPU quanto CPU-FPGA. Além disso, os experi mentos mostram que a quantidade de dados distribuídos para cada dispositivo (Workload Balance) afeta o poder de processamento necessário da CPU e, portanto, o número ótimo de threads de CPU para a execução da aplicação. Com o intuito de otimizar a execução de aplicações colaborativas CPU-GPU, inicialmente propomos o ETCG – Energy-aware CPU Thread Throttling for CPU-GPU collaborative environments. O ETCG é capaz de selecionar de forma transparente um número quase ótimo de threads na CPU visando a minimizar o produto entre atraso e energia consumida (EDP) de aplicações CPU-GPU. No segundo estudo, propomos ETCF – Energy-Aware CPU Thread Throttling and Wor kload Balancing Framework para ambientes colaborativos CPU-FPGA. O ETCF fornece uma execução CPU-FPGA eficiente ao selecionar apropriadamente o Workload Balance e o número de threads na CPU para uma aplicação colaborativa. Além disso, são oferecidos diferentes objetivos de otimização: desempenho, energia ou EDP. Em comparação à linha de base (considerando uma carga de trabalho igualmente equilibrada entre os dispositi vos e usando o número máximo de threads na CPU), nossos experimentos mostram que ETCG e ETCF fornecem, em média, 73% e 93% de redução de EDP, respectivamente. Também mostramos que tanto o ETCG quanto o ETCF alcançam soluções quase ótimas comparando-os a uma busca exaustiva, mas levando apenas 5% de seu tempo de busca no pior cenário. Finalmente, no terceiro estudo, consideramos um ambiente de tarefas colaborativas CPU-FPGA. Investigamos o impacto de aplicar sinergicamente Thread Th rottling no lado da CPU e do HLS-Versioning no lado do FPGA. Utilizamos como objeto de estudo um serviço de nuvem multi-inquilino, onde a sequência de requisições de apli- cações com diferentes prioridades resulta em DAGs de kernels de aplicações que devem ser executados sobre a arquitetura heterogênea. Nossos experimentos mostram que, ao aplicar sinergicamente Thread Throttling e HLS-Versioning aos kernels recebidos, pode se melhorar o EDP em até 41x em relação à execução não otimizada.Warehouses and Cloud Servers have been adopting collaborative CPU-GPU and CPU FPGA architectures as alternatives to enable extra acceleration for applications by parti tioning threads/kernels execution across both devices. However, exploiting the benefits of these environments is challenging, since there are many factors that may influence perfor mance and energy consumption, such as the number of CPU threads, the workload bal ance, and optimization techniques such as FPGA HLS (High-Level Synthesis)-versioning. This work shows that maximizing resource utilization by triggering the highest number of CPU threads does not always result in the best efficiency for both CPU-GPU and CPU FPGA architectures. Moreover, our experiments show that the amount of data distributed to each device (workload balance) affects the needed CPU processing power and, there fore, the number of active CPU threads for the application. To address these problems, we first propose ETCG – Energy-aware CPU Thread Throttling for CPU-GPU collaborative environments. ETCG transparently selects a near-optimal number of CPU threads to min imize the energy-delay product (EDP) of CPU-GPU applications. In the second study, we propose ETCF – Energy-Aware CPU Thread Throttling and Workload Balancing Frame work for CPU-FPGA collaborative environments. ETCF automatically provides efficient CPU-FPGA execution by selecting the right workload balance and the number of CPU threads for a given collaborative application. ETCF framework offers different optimiza tion goals: performance, energy, or EDP. Compared to the baseline (an equally balanced workload executing with the maximum number of CPU threads), ETCG and ETCF pro vide, on average, 73% and 93% of EDP reduction, respectively. We also show that both ETCG and ETCF achieve near-optimal solutions by comparing it to an exhaustive search, but just taking up to 5% of its searching time. Finally, in the third study, we considered a task-collaborative CPU-FPGA environment. We investigate the impact of collaboratively applying Thread Throttling on the CPU side and HLS-versioning on the FPGA side. We use a multi-tenant Cloud service as our object of study, where sequence of application requests with different priorities result in DAGs of application kernels that must be ex ecuted over the heterogeneous architecture. We show that by synergistically applying Thread Throttling and HLS-Versioning to the incoming kernels may improve the EDP in up to 41x over the non-optimized execution.application/pdfporServidor em nuvemThreadsHardwareCPU-GPUCPU-FPGAThrottlingCollaborativeTLPCollaborative aware CPU thread throttling and FPGA HLS versioninginfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em MicroeletrônicaPorto Alegre, BR-RS2022mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001152215.pdf.txt001152215.pdf.txtExtracted Texttext/plain161150http://www.lume.ufrgs.br/bitstream/10183/250633/2/001152215.pdf.txt0b45d891e851c96cba5167499b9ce857MD52ORIGINAL001152215.pdfTexto completo (inglês)application/pdf2181418http://www.lume.ufrgs.br/bitstream/10183/250633/1/001152215.pdff19f91043298beb9f3407f38d47b5268MD5110183/2506332023-02-08 06:01:52.74174oai:www.lume.ufrgs.br:10183/250633Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532023-02-08T08:01:52Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Collaborative aware CPU thread throttling and FPGA HLS versioning
title Collaborative aware CPU thread throttling and FPGA HLS versioning
spellingShingle Collaborative aware CPU thread throttling and FPGA HLS versioning
Knorst, Tiago
Servidor em nuvem
Threads
Hardware
CPU-GPU
CPU-FPGA
Throttling
Collaborative
TLP
title_short Collaborative aware CPU thread throttling and FPGA HLS versioning
title_full Collaborative aware CPU thread throttling and FPGA HLS versioning
title_fullStr Collaborative aware CPU thread throttling and FPGA HLS versioning
title_full_unstemmed Collaborative aware CPU thread throttling and FPGA HLS versioning
title_sort Collaborative aware CPU thread throttling and FPGA HLS versioning
author Knorst, Tiago
author_facet Knorst, Tiago
author_role author
dc.contributor.author.fl_str_mv Knorst, Tiago
dc.contributor.advisor1.fl_str_mv Beck Filho, Antonio Carlos Schneider
dc.contributor.advisor-co1.fl_str_mv Rutzig, Mateus Beck
contributor_str_mv Beck Filho, Antonio Carlos Schneider
Rutzig, Mateus Beck
dc.subject.por.fl_str_mv Servidor em nuvem
Threads
Hardware
topic Servidor em nuvem
Threads
Hardware
CPU-GPU
CPU-FPGA
Throttling
Collaborative
TLP
dc.subject.eng.fl_str_mv CPU-GPU
CPU-FPGA
Throttling
Collaborative
TLP
description Servidores em Nuvem vem adotando arquiteturas colaborativas de CPU-GPU e CPU FPGA como alternativas para permitir aceleração extra às aplicações através do particionando da execução de threads/kernels em ambos os dispositivos. No entanto, explorar os benefícios destes ambientes é desafiador, pois existem muitos fatores que podem influenciar o desempenho e o consumo de energia, como o número de threads da CPU, o balanceamento da carga de trabalho (Worload Balance) e técnicas de otimização como FPGA HLS (High-Level Synthesis)-versioning. Este trabalho mostra que maximizar a utilização de recursos acionando o maior número de threads de CPU nem sempre resulta na melhor eficiência tanto em arquiteturas CPU-GPU quanto CPU-FPGA. Além disso, os experi mentos mostram que a quantidade de dados distribuídos para cada dispositivo (Workload Balance) afeta o poder de processamento necessário da CPU e, portanto, o número ótimo de threads de CPU para a execução da aplicação. Com o intuito de otimizar a execução de aplicações colaborativas CPU-GPU, inicialmente propomos o ETCG – Energy-aware CPU Thread Throttling for CPU-GPU collaborative environments. O ETCG é capaz de selecionar de forma transparente um número quase ótimo de threads na CPU visando a minimizar o produto entre atraso e energia consumida (EDP) de aplicações CPU-GPU. No segundo estudo, propomos ETCF – Energy-Aware CPU Thread Throttling and Wor kload Balancing Framework para ambientes colaborativos CPU-FPGA. O ETCF fornece uma execução CPU-FPGA eficiente ao selecionar apropriadamente o Workload Balance e o número de threads na CPU para uma aplicação colaborativa. Além disso, são oferecidos diferentes objetivos de otimização: desempenho, energia ou EDP. Em comparação à linha de base (considerando uma carga de trabalho igualmente equilibrada entre os dispositi vos e usando o número máximo de threads na CPU), nossos experimentos mostram que ETCG e ETCF fornecem, em média, 73% e 93% de redução de EDP, respectivamente. Também mostramos que tanto o ETCG quanto o ETCF alcançam soluções quase ótimas comparando-os a uma busca exaustiva, mas levando apenas 5% de seu tempo de busca no pior cenário. Finalmente, no terceiro estudo, consideramos um ambiente de tarefas colaborativas CPU-FPGA. Investigamos o impacto de aplicar sinergicamente Thread Th rottling no lado da CPU e do HLS-Versioning no lado do FPGA. Utilizamos como objeto de estudo um serviço de nuvem multi-inquilino, onde a sequência de requisições de apli- cações com diferentes prioridades resulta em DAGs de kernels de aplicações que devem ser executados sobre a arquitetura heterogênea. Nossos experimentos mostram que, ao aplicar sinergicamente Thread Throttling e HLS-Versioning aos kernels recebidos, pode se melhorar o EDP em até 41x em relação à execução não otimizada.
publishDate 2022
dc.date.accessioned.fl_str_mv 2022-11-04T04:37:03Z
dc.date.issued.fl_str_mv 2022
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/10183/250633
dc.identifier.nrb.pt_BR.fl_str_mv 001152215
url http://hdl.handle.net/10183/250633
identifier_str_mv 001152215
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:Biblioteca Digital de Teses e Dissertações 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 Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/250633/2/001152215.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/250633/1/001152215.pdf
bitstream.checksum.fl_str_mv 0b45d891e851c96cba5167499b9ce857
f19f91043298beb9f3407f38d47b5268
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1810085601065566208