Collaborative aware CPU thread throttling and FPGA HLS versioning
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 ex...
| Author: | |
|---|---|
| Format: | master thesis |
| Status: | Published version |
| Publication Date: | 2022 |
| Country: | Brasil |
| Institution: | Universidade Federal do Rio Grande do Sul (UFRGS) |
| Repository: | Biblioteca Digital de Teses e Dissertações da UFRGS |
| Language: | Portuguese |
| OAI Identifier: | oai:www.lume.ufrgs.br:10183/250633 |
| Online Access: | http://hdl.handle.net/10183/250633 |
| Access Level: | Open access |
| Keyword: | Servidor em nuvem Threads Hardware CPU-GPU CPU-FPGA Throttling Collaborative TLP |
| Summary: | 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. |
|---|