RESUMO: Por Vasconcelos et al. [6], GPUs (ou Graphics Processing Unit) foram inicialmente desenvolvidas com o propósito de se aumentar a eficiência e o poder de processamento gráfico para tarefas de renderizacão. Em um momento posterior, as GPUs apresentaram-se e apresentam-se como um hardware de processamento versátil e de alto poder de computação. Isto é, as GPUs representam uma possibilidade real na busca de soluções para processamento em grandes volumes de dados.Considerando-se a inexistência de formulações sequenciais que sejam computáveis de forma suficientemente rápida para diversas aplicações, a utilização de GPUs em computações de propósito geral representa uma abordagem de especial interesse [6]. Em [6], objetivou-se oferecer formas de identificação de algoritmos e de aplicações candidatas a abordagens paralelas em GPU.
Por Alfaro Vigo e Rossetto [1], os avanços do hardware dos computadores – a um custo financeiro acessível para usuários convencionais – permite hoje a disponibilidade em uma única máquina da capacidade de processamento que até anos atrás apenas era possível em um cluster de computadores. Para a computação numérica, o novo cenário pode representar grandes avanços. Muitos métodos numéricos são computacionalmente intensivos e requerem muito mais operações de processamento do que operações de entrada e saída. Por [1], o desafio que se coloca é o de se implementar ou reimplementar os algoritmos numéricos para que sejam executados de forma eficiente nas novas arquiteturas. No presente Curso, abordaremos de forma introdutória um breve histórico sobre o desenvolvimento das GPUs. Posteriormente, são apresentados conceitos vistos no estudo de arquiteturas atuais, assim como exemplos de primeiras implementações em CUDA C.
Público Alvo
Público Interno: Discentes dos Cursos de Matemática Aplicada e Computacional e Demais Cursos da UFRRJ;
Público Externo: Discentes dos Cursos de Matemática Aplicada e Computacional do Estado do Rio de Janeiro.