PROGRAMAÇÃO PARALELA EM CPU E GPU: UMA AVALIAÇÃO DO DESEMPENHO DAS APIS OPENMP, CUDA, OPENCL E OPENACC

Gustavo Rosa Corrêa, Maurício Sulzbach

Resumo


Este artigo teve como objetivo avaliar o desempenho das principais APIs de programação paralela, através da execução de algoritmos em CPU e GPU. Para que a avaliação de desempenho fosse possível, primeiramente foram instaladas em um computador as APIs CUDA (GPU), OpenCL (GPU), OpenACC (GPU) e OpenMP (CPU).  Em seguida, foram selecionados para execução em cada API os algoritmos SRAD V1, HotSpot e PathFinder, que fazem parte do benchmark Rodinia. Para avaliar o desempenho de cada API foram realizadas trinta execuções de cada algoritmo. O tempo dessas trinta execuções foi computado, sendo a média o valor utilizado, e desse tempo de execução obteve-se o intervalo de confiança das amostras, e também o speedup que cada algoritmo obteve em relação à execução sequencial de cada API. Através desta pesquisa, foi possível constatar que a GPU obteve um desempenho superior em relação a CPU na maioria dos algoritmos. Acredita-se que esse resultado ocorreu pelo fato da GPU possuir mais núcleos se comparada a CPU, apesar da frequência dos núcleos ser inferior.

Texto completo:

PDF

Apontamentos

  • Não há apontamentos.