COMPARAÇÃO DE DESEMPENHO E CONSUMO DE ENERGIA DE APLICAÇÕES COM OPENACC COMPILADAS COM PGI E GCC

  • Leonardo de Lima
  • Arthur Francisco Lorenzon
Rótulo GPU, OpenACC, PGI, GCC, Desempenho

Resumo

As GPUs se tornaram muito presentes em arquiteturas que buscam prover o melhor desempenho possível. O aumento da comunidade de alto desempenho trás a necessidade de ferramentas para facilitar o paralelismo nestas arquiteturas. Uma destas ferramentas é o OpenACC (ACC) que insere diretivas no código fonte. Porém mesmo com o ACC os compiladores utilizados são uma variável importante quando se fala em melhor desempenho e menor consumo de energia. Diferentes compiladores são utilizados para a geração de códigos binários para executar em tais GPUs, como, The Portland Group (PGI) e GNU Compiler Collection (GCC). Neste sentido este estudo objetiva comparar o tempo de execução e consumo de energia de aplicações ACC compiladas com PGI e GCC. O estudo foi conduzido através da execução de quatro kernels da suíte de benchmarks NAS Parallel, implementados com ACC: BT, CG, SP, EP, estas com a finalidade de analisar os compiladores em relação ao ACC. Os testes foram executados em uma máquina com uma GPU GeForce GT 1030. As aplicações foram compiladas com PGI 19.10, utilizando as flags de compilação -acc -ta=tesla,cc60 -O3 -mcmodel=mediun e com GCC 9.2 utilizando as flags -fopenacc -lm -O3 -mcmodel=mediun -fPIC. Cada configuração kernel foi executado cinco vezes, o tempo de execução foi dado pelas saídas das próprias aplicações já para o consumo de energia utilizamos o comando nvidia-smi que retorna informações da GPU em tempo real como o consumo de energia. Após os testes comparamos os resultados em relação ao tempo de execução, mostrando que em média aritmética as aplicações compiladas com PGI foram 31% mais rápidas que as aplicações compiladas com GCC: O kernel BT compilado com o PGI foi 54% mais rápido que sua versão em GCC; CG 85% mais rápido com PGI, SP 17% mais rápido com PGI e EP 10% mais rápido em PGI. Quanto as aplicações compiladas com PGI em média geral de consumo de energia, consumiram 25% menos energia do que as compiladas com GCC: BT com PGI gastou 51% menos energia, CG gastou 84% menos energia com PGI, SP consumiu 14% menos de energia e EP gastou 11% menos energia. Com os resultados obtidos é possível observar que o PGI se mostrou superior em desempenho e consumo energético, nas aplicações paralelizadas com o ACC utilizando dispositivos aceleradores selecionadas para os testes, isso deve-se a otimizações realizadas pelo compilador presentes na flag -O3 como Branch to branch elimination, Constant propagation, Copy propagation etc... estas não aplicadas pelo GCC em -O3, por não ser um produto desenvolvido com esse propósito como o PGI. Este estudo comparou quatro kernels implementados com o ACC, compilados com PGI e GCC. Com métricas como consumo energético e o tempo de execução de cada aplicação. É possível concluir que por não ser sua ideia inicial de implementar ACC e ainda não possuir suporte completo da API, GCC é inferior quando se trata do desempenho. Como trabalhos futuros busca-se compreender outras aplicações, ambientes e métricas.

Downloads

Não há dados estatísticos.
Publicado
2020-11-20
Como Citar
DE LIMA, L.; FRANCISCO LORENZON, A. COMPARAÇÃO DE DESEMPENHO E CONSUMO DE ENERGIA DE APLICAÇÕES COM OPENACC COMPILADAS COM PGI E GCC. Anais do Salão Internacional de Ensino, Pesquisa e Extensão, v. 12, n. 2, 20 nov. 2020.