GPU Programming Frederico Jos Camiloti Dalllalana Orientador Prof



































- Slides: 35
GPU Programming Frederico José Camiloti Dalllalana Orientador: Prof. Dr. Luis Gustavo Nonato
Tópicos Introdução Evolução das GPU Programming Cg – C for graphics Aplicações Conclusão Bibliografia
Introdução O que é GPU? – Nvidia – ATI
Introdução X GPU x CPU
Introdução GPU x CPU Processador Número de Transistor (em milhões) Intel Pentium 4 2. 4 Ghz 55 Nvidia Ge. Force FX 5800 125 Fonte: http: //www. inf. ufrgs. br/~comba/gh-files/talk 1. pdf
Introdução GPU x CPU “Pesquisadores do Stanford Graphics mostram números supreendentes: uma NVIDIA Ge. Force 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 10 GHz para alcançar o mesmo desempenho” Fonte: http: //www. estudehardware. com. br/artigo_gpu_cpu. htm
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 Direct. X 6
Evolução das GPUs 1º Geração(até 1998) – Nvidia TNT 2
Evolução das GPUs 1º Geração(até 1998) – 3 dfx Voodoo 3
Evolução das GPUs 1ª Geração(até 1998) – ATI Rage
Evolução das GPUs 2ª Geração(1999 -2000) – T&L – Transform & Lighting por hardware – Implementa as características do Direct. X 7
Evolução das GPUs 2ª Geração(1999 -2000) – Nvidia Ge. Force 2
Evolução das GPUs 2ª Geração(1999 -2000) – ATI Radeon 7500
Evolução das GPUs 3ª Geração(2001) – Texturas 3 D – Implementa as características do Direct. X 8
Evolução das GPUs 3ª Geração(2001) – Nvidia Ge. Force 3, Ge. Force 4 Ti
Evolução das GPUs 3ª Geração(2001) – ATI Radeon 8500
Evolução das GPUs 4ª Geração(2002 - 2003) – 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(2002 - 2003) – Nvidia Ge. Force. FX
Evolução das GPUs 4ª Geração(2002 - 2003) – ATI Radeon 9700
GPU Programming Bump Mapping – Usado para criar imperfeições na superfície do objeto 3 D, tornando-o mais realista
GPU Programming T & L – Transform & Lighting – Permite que parte dos cálculos necessários para gerar imagens 3 D sejam executados pela GPU, e não pela CPU – Passou a ser executado pela GPU a partir da linha Ge. Force – Foi implementado a partir do Direct. X 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é 65535 instruções por vez
Cg – C for Graphics 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 Open. GL e Direct 3 D – 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 http: //developer. nvidia. com/ http: //www. inf. ufrgs. br/~comba http: //developer. nvidia. com/page/cg_main. html http: //msdn. microsoft. com/library/default. asp? url =/library/en-us/dndir 3 d/html/dxvertex. asp