GPU Programming Frederico José Camiloti Dalllalana Orientador: Prof. Dr. Luis Gustavo Nonato
Tópicos Introdução Evolução das GPUs GPU Programming Cg – C for graphics AplicaçõesConclusãoBibliografia
Introdução O que é GPU? –Nvidia –ATI
Introdução GPU x CPU X
Introdução Fonte: Processador Número de Transistor (em milhões) Intel Pentium Ghz 55 Nvidia GeForce FX
Introdução GPU x CPU “Pesquisadores do Stanford Graphics mostram números supreendentes: uma NVIDIA GeForce FX 5900 alcança o índices altíssimos, de 20 Gigaflops, o equivalente a 20 bilhões de operações com ponto flutuante por segundo. Um Pentium 4 precisaria ultrapassar os 10GHz para alcançar o mesmo desempenho” Fonte:
Evolução das GPUs Pré-História Arquiteturas de Gráficos Integrada
Evolução das GPUs 1ª Geração(até 1998) –Rastering de triângulos pré-transformados –Aplica uma ou duas texturas –Implenta as características do DirectX 6
Evolução das GPUs 1º Geração(até 1998) –Nvidia TNT2
Evolução das GPUs 1º Geração(até 1998) –3dfx Voodoo3
Evolução das GPUs 1ª Geração(até 1998) –ATI Rage
Evolução das GPUs 2ª Geração( ) –T&L – Transform & Lighting por hardware –Implementa as características do DirectX 7
Evolução das GPUs 2ª Geração( ) –Nvidia GeForce2
Evolução das GPUs 2ª Geração( ) –ATI Radeon 7500
Evolução das GPUs 3ª Geração(2001) –Texturas 3D –Implementa as características do DirectX 8
Evolução das GPUs 3ª Geração(2001) –Nvidia GeForce3, GeForce4 Ti
Evolução das GPUs 3ª Geração(2001) –ATI Radeon 8500
Evolução das GPUs 4ª Geração( ) –Programação de Vertex e Fragmentos –Implementa as características do Directx 9 –Suporte de 32 bits a pontos flutuantes
Evolução das GPUs 4ª Geração( ) –Nvidia GeForceFX
Evolução das GPUs 4ª Geração( ) –ATI Radeon 9700
GPU Programming Bump Mapping –Usado para criar imperfeições na superfície do objeto 3D, tornando-o mais realista
GPU Programming T & L – Transform & Lighting –Permite que parte dos cálculos necessários para gerar imagens 3D sejam executados pela GPU, e não pela CPU –Passou a ser executado pela GPU a partir da linha GeForce –Foi implementado a partir do DirectX 7.0
Observação Não adianta a GPU ter suporte a T&L se na implementação você não usar este recurso
GPU Programming Vertex Shader –Permite mudar as características de cada vértice de cada polígono
GPU Programming Pixel Shader –Permite ao programador mudar cada pixel de cada polígono
GPU Programming Shader –Versão 3.0 –Permite que o Pixel Shader execute até instruções por vez
O que é? –Foi desenvolvida pela Nvidia –Versão Cg 1.3 Beta 2 –Linguagem C-like Cg – C for Graphics
–Linguagem de programação para GPU –Permite a programação de efeitos como reflexão/refração em tempo real –Linguagem de alto nível
Cg – C for Graphics –Integração com APIs gráficas, como OpenGL e Direct3D –Compilação Dinâmica: permite otimização de código para a placa em que vai rodar –Roda em placas da ATI
Cg – C for Graphics Substitui o Assembly
Cg – C for Graphics
Cg- C for Graphics Exemplo de Código
Aplicações Rendering –Tempo real Operações Matemáticas
Conclusão Libera a CPU do processamento gráfico Código otimizado para cada GPU Desempenho das aplicações
Bibliografia =/library/en-us/dndir3d/html/dxvertex.asp =/library/en-us/dndir3d/html/dxvertex.asp