tcc pré banca
DESCRIPTION
Os slides da minha pré banca. More here: http://arthurgregorio.eti.br/blog/78-programacao/87-faculdade-tcc-e-o-cudaTRANSCRIPT
Processamento de Imagens de alta qualidade com
GPGPU’sArthur Pereira Gregório
Rodrigo Zanatta Rodriguez
CENTRO DE ENSINO SUPERIOR DE FOZ DO IGUAÇUCURSO DE CIÊNCIA DA COMPUTAÇÃO
TRABALHO DE CURSO
Orientador: Prof. Gildomiro Bairros
2
Agenda
• Introdução
• Objetivo Geral
• Objetivos Específicos
• Justificativa
• Fundamentação
• Ambiente Experimental
• Próximas Etapas
• Principais Referências
3
Introdução
Com a constante evolução do cenário computacional moderno, a demanda por grande poder de processamento paralelo aumentou significativamente em áreas como Ciência, Saúde, Engenharia e Negócios.
Tais áreas hoje empregam massivamente sistemas GPGPU devido a grande quantidade de dados a serem processados.
4
Introdução
Visando este novo nicho de mercado este trabalho irá apresentar uma análise de desempenho entre um sistema GPGPU e um sistema com apenas um CPU na criação de imagens de alta qualidade utilizando como técnica de iluminação algoritmos de Ray Tracing.
5
• Apresentar uma analise de desempenho que possa indicar a viabilidade do uso de um sistema CPU + GPU em relação a um sistemas que utilize apenas uma CPU através da implementação de algoritmos de Ray Tracing para geração de imagens que contenham uma alta qualidade de iluminação.
Objetivo Geral
6
Objetivos Específicos
• Conceituar programação paralela e Ray Tracing;
• Demonstrar conceitos sobre CPU Multicore, GPU e CUDA;
• Apontar as vantagens de se utilizar paralelismo em sistemas GPGPU com relação a sistemas com CPU's multicore;
• Apresentar testes (Benchmarks) de desempenho entre as plataformas levando em conta o tempo (em “ms”) gasto para processar cada cena e/ou imagem.
7
Justificativa
• Pouco material que aponte as diferenças e ganhos de performance entre a plataforma GPGPU e uma que empregue apenas uma CPU;
• A crescente demanda por pesquisas na área de Sistemas Heterogêneos;
• O estado atual do mercado computacional onde as grandes empresas empregam soluções GPGPU em seus datacenters.
8
Fundamentação
• Programação Paralela: consiste na
utilização de vários processadores para
execução de partes diferentes de um
mesmo programa.
9
Fundamentação
• GPGPU: indica o uso de um sistema
heterogêneo que faz a união do poder de
paralelismo de uma GPU com o poder de
controle de uma CPU para
processamentos de propósito geral.
10
Fundamentação
Esquema de um sistema GPGPU
11
Fundamentação
• CUDA: é uma arquitetura de computação
paralela criada pela nVidia em 2007, que
possibilita o aproveitamento de suas
GPU’s em processamentos de propósito
geral, GPGPU.
12
Fundamentação
• Ray Tracing: é um algoritmo utilizado
para dar mais realidade a iluminação de
uma cena através de técnicas de
traçados de raios.
13
Fundamentação
14
• O Estudo de caso: processamento de imagens em
um sistema GPGPU composto por uma placa de
vídeo e uma CPU multicore.
• Principais ferramentas a serem utilizadas:
• Visual Studio;
• CUDA SDK;
• NVIDIA Parallel Nsight.
Ambiente Experimental
15
• Definição dos algoritmos de iluminação a serem
usados;
• Criação dos primeiros códigos de teste;
• Tabulação dos resultados obtidos;
• Otimização dos códigos e nova execução para
comparar com os testes executados anteriormente.
Próximas Etapas
16
Principais Referencias Bibliográficas
• DAVID B. KIRK, W.-M. W. H. Programando para
Processadores Paralelos, Uma Abordagem Prática
a Programação de GPU. Rio de Janeiro: Campus /
Elsevier, 2010.
• CORP. nVidia. What is GPU Computing? 2008.
Disponível em: <http://www.nvidia.com/object/GPU
Computing.html> . Acesso em: 14/05/2011.
17
Principais Referencias Bibliográficas
• HSU, S.-H. GPGPU Programming. 2005. Disponível
em:<http://graphics.im.ntu.edu.tw/
vincent/resource/gpgpu/GPGPU_Programming.pdf>
Acesso em: 19/05/2011.
• SILVA, F. W. S. V. da. Introdução ao Ray Tracing.
Rio de Janeiro: Laboratório de Computação Gráfica
LCG COPPE/UFRJ - Engenharia de Sistemas e
Computação, 2008.