A Unidade de Processamento Grafico – do ingles “Graphics Processing Unit"(GPU)
foi desenvolvida inicialmente como um hardware destinado a aumentar a eficiencia
e o poder de processamento grafico para tarefas de renderizacao. Hoje, a GPU
apresenta-se como um hardware de processamento versatil e de alto poder de computacao.
Tornou-se uma possibilidade real na busca por solucoes para processamento
em grandes volumes de dados, seja como complemento, seja como alternativa ao uso
de CPUs multicore ou de sistemas distribuidos.
A utilizacao da GPU em computacoes de proposito geral e de especial interesse, uma
vez que para diversas aplicacoes, ainda nao existem formulacoes sequenciais suficientemente
rapidas de serem computadas. Este tutorial tem como objetivo permitir
ao leitor a identificacao de algoritmos e aplicacoes candidatas a abordagens paralelas
em GPU. Com tal finalidade, apresentamos os fundamentos e conceitos envolvidos
na programacao de proposito generico utilizando hardware grafico sem que seja indispensavel
ao leitor, o conhecimento a priori de sistemas graficos 3D ou de sistemas
paralelos.
[1]
Kevin Skadron,et al.
A performance study of general-purpose applications on graphics processors using CUDA
,
2008,
J. Parallel Distributed Comput..
[2]
SkadronKevin,et al.
A performance study of general-purpose applications on graphics processors using CUDA
,
2008
.
[3]
John Owens.
Data-parallel algorithms and data structures
,
2007,
SIGGRAPH '07.
[4]
Matt Pharr,et al.
Gpu gems 2: programming techniques for high-performance graphics and general-purpose computation
,
2005
.
[5]
Mike Houston,et al.
A closer look at GPUs
,
2008,
Commun. ACM.
[6]
Randima Fernando,et al.
The CG Tutorial: The Definitive Guide to Programmable Real-Time Graphics
,
2003
.