Computação heterogênea : roteiro de desenvolvimento de uma aplicação utilizando unidade de processamento gráfico (GPU)

Carregando...
Imagem de Miniatura

Data

2013

Tipo de documento

Monografia

Título da Revista

ISSN da Revista

Título de Volume

Área do conhecimento

Ciências Exatas e da Terra

Modalidade de acesso

Acesso aberto

Editora

Autores

Santos, Fernando Araújo dos
Koerich, Kaio Cesar

Orientador

Zambiasi, Saulo Popov

Coorientador

Braz Júnior, Osmar de Oliveira

Resumo

The high computational demand is increasingly demanding more performance from computers. To do so, the resources need to be exploited to their maximum. In this paper, in the literature review, it was pointed out different solutions for the better use of these resources (related to heterogeneous computing). The use of the GPU (Graphics Processing Unit) was adopted as a solution to improve execution times based on the research conducted. It is common to use the GPU only in applications that require a high level of graphics processing, such as games and image and video processing applications. Technologies such as CUDA and JCUDA (external libraries) directs the GPU processing to the execution of atypical tasks, transforming this commonly idle hardware in a potent auxiliary processor. A script was elaborated for configuring the development environment of a parallel application using the GPU, and the validation of this environment by a simple prototype to calculate the identity matrix (of a random matrix with floating point data) by the Gauss-Jordan method was performed in order to verify and evaluate the paper. In two different scenarios - no GPU acceleration and acceleration provided by GPU - it was possible to verify the significant gains in relation to the execution times of the application when the GPU is used. In all situations, a comparison has been carried out in which it is observed that the chosen solution was able to provide gains greater than 90% related to the execution times.
A alta demanda computacional vem exigindo cada vez mais desempenho dos computadores. Para tanto, é necessário que sejam aproveitados ao máximo os recursos disponíveis. Neste trabalho, em sua revisão bibliográfica, apontam-se diferentes soluções para uma melhor utilização destes recursos (relacionados a computação heterogênea). Com base na pesquisa realizada optou-se então pela utilização da GPU (Graphics Processing Unit - Unidade de processamento gráfico) como solução para melhora dos tempos de execução em uma aplicação de exemplo. É comum a utilização da GPU apenas em aplicações que exijam um alto nível de processamento gráfico, como por exemplo jogos e aplicativos de tratamento de imagem e vídeo. Tecnologias como o CUDA e JCUDA (bibliotecas externas) direcionam o processamento da GPU para execução de tarefas atípicas, transformando este hardware comumente ocioso em um potente processador auxiliar. Foi realizada a confecção de um roteiro para a configuração do ambiente de desenvolvimento de uma aplicação paralela utilizando a GPU, e a validação deste ambiente por via de um protótipo simples (aplicação exemplo), que executa o cálculo da matriz identidade (de uma matriz aleatória, com dados de ponto flutuante) através do método de Gauss-Jordan. Em dois cenários diferentes - sem aceleração da GPU e com aceleração provida pela GPU - foi possível verificar os ganhos significativos em relação aos tempos de execução da aplicação quando a GPU é utilizada. Em todas as situações, foi realizado um comparativo em que observa-se que a solução escolhida foi capaz de proporcionar ganhos superiores a 90%, relacionados a tempos de execução.

Palavras-chave

GPU, CUDA, JCUDA, Roteiro, Desenvolvimento, Computação heterogênea, Desempenho

Citação