- primeiro slide: Tentativa de solução para paradigma de programação de GPUs Sombreamento de pixels -aqui aparecem as placas que suportam, coloca imagens delas- - segundo: Arquitetura -é o título- Baseada em stream processors Módulos (kernels) que processam fluxos de dados Cada fluxo é uma thread Memória hierarquizada - Hierarquia de memória Registradores Memória compartilhada Memória constante Memória global Memória de textura - Hierarquia de memória -imagem "modelo memória"- - API Esconde detalhes de hardware Liberdade para fabricante modificar as placas -imagem "camadas"- - API Possui Marcadores e diretivas Bibliotecas de tempo de execução - Bibliotecas runtime Tipos adicionais e subconjunto de C Gerenciar operações da CPU e comunicação com GPU Gerenciar placa de vídeo (funções específicas dela) - Bibliotecas runtime CPU/GPU: Funções matemáticas padrões Tipos para representação de textura Built-in types para designar vetores - Bibliotecas runtime CPU: Gerenciamento da GPU de contexto de memória de controle de execução Interoperabilidade entre OpenGL e Direct3D - Bibliotecas runtime GPU: Funções matemáticas otimizadas (-use_fast_math) Funções de sincronização das threads Funções para manipulação de texturas Funções para garantir atomicidade - -Compilação Compilador NVCC Preprocessador EDG identifica e separa o código para cada arquitetura Código da CPU em C Código da GPU em formato cubin - Compilação Código da CPU compilado pelo compilador nativo Código da GPU compilado por uma versão modificada de Open64 Gera assembly PTX (Parallel Thread eXecution) Depois traduzido para código específico da placa - Compilação -imagem "compilador"-