Introdução à Programação de Propósito Geral em Hardware Gráfico

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.