GPU (Graphics Processing Unit) Bruno Padilha - 5745282 Gregory De Bonis - 6431180 Luciana Kayo - 6430992
O que é?
O que é? - Processador auxiliar responsável principalmente por operações de ponto flutuante
O que é? - Processador auxiliar responsável principalmente por operações de ponto flutuante - Utilizada em PCs, videogames, celulares, sistemas embarcados...
O que é? - Processador auxiliar responsável principalmente por operações de ponto flutuante - Utilizada em PCs, videogames, celulares, sistemas embarcados... - Incorpora operações matemáticas comumente utilizadas para renderização gráfica
O que é? - Processador auxiliar responsável principalmente por operações de ponto flutuante - Utilizada em PCs, videogames, celulares, sistemas embarcados... - Incorpora operações matemáticas comumente utilizadas para renderização gráfica - Estrutura altamente paralelizada
GPU Placa de Vídeo!
Placa de Vídeo
Placa de Vídeo - BIOS (Firmware)
Placa de Vídeo - BIOS (Firmware) - Memória de Vídeo
Placa de Vídeo - BIOS (Firmware) - Memória de Vídeo - GPU
Controlador Gráfico
Controlador Gráfico - Integrado na Placa-Mãe (on-board)
Controlador Gráfico - Integrado na Placa-Mãe (on-board) - Mais barato
Controlador Gráfico - Integrado na Placa-Mãe (on-board) - Mais barato - Tem pouca ou nenhuma memória dedicada (usa a memória principal)
Controlador Gráfico - Integrado na Placa-Mãe (on-board) - Mais barato - Tem pouca ou nenhuma memória dedicada (usa a memória principal) - Acesso a memória muito mais lento Integrada: de 2 a 12.8 Gbit/s Dedicada: de 10 a mais de 100 Gbit/s
História das GPUs
História das GPUs Primeira GPU: IBM Professional Graphics Controller (1984)
História das GPUs Primeira GPU: IBM Professional Graphics Controller (1984) Para CAD, com aceleração 2D e 3D
História das GPUs Primeira GPU: IBM Professional Graphics Controller (1984) Para CAD, com aceleração 2D e 3D 320 kb de RAM
História das GPUs Primeira GPU: IBM Professional Graphics Controller (1984) Para CAD, com aceleração 2D e 3D 320 kb de RAM Microprocessador Intel 8088 (5 MHz a 10MHz de clock)
História das GPUs Primeira GPU: IBM Professional Graphics Controller (1984) Para CAD, com aceleração 2D e 3D 320 kb de RAM Microprocessador Intel 8088 (5 MHz a 10MHz de clock) Suportava até 640 480 com 256 cores a 60fps
História das GPUs Primeira GPU: IBM Professional Graphics Controller (1984) Para CAD, com aceleração 2D e 3D 320 kb de RAM Microprocessador Intel 8088 (5 MHz a 10MHz de clock) Suportava até 640 480 com 256 cores a 60fps Preço?
História das GPUs Primeira GPU: IBM Professional Graphics Controller (1984) Para CAD, com aceleração 2D e 3D 320 kb de RAM Microprocessador Intel 8088 (5 MHz a 10MHz de clock) Suportava até 640 480 com 256 cores a 60fps Preço? $4,290
História das GPUs Anos 70 Chips ANTIC e CTIA (Atari): mapeavam texto e imagens para a saída de vídeo Anos 80 Primeira placa de vídeo Commodore Amiga: primeiro computador com um blitter vendido em massa IBM 8514: primeira placa de vídeo a implementar primitivas 2D em hardware
História das GPUs Anos 90 S3 86C911: acelerador 2D em um único chip DirectDraw, Direct3D, OpenGL, Glide, DirectX Popularização das placas 2D e 3D: Playstation, Nintendo 64 Anos 2000-presente GPUs de alta performance GPUs paralelas GPGPU
Funcionamento de uma GPU
Funcionamento de uma GPU 1 - Model Transformation
Funcionamento de uma GPU 1 - Model Transformation 2 - Lighting
Funcionamento de uma GPU 1 - Model Transformation 2 - Lighting 3 - Camera Simulation
Funcionamento de uma GPU 1 - Model Transformation 2 - Lighting 3 - Camera Simulation 4 - Rasterization
Funcionamento de uma GPU 1 - Model Transformation 2 - Lighting 3 - Camera Simulation 4 - Rasterization 5 - Texturing
Funcionamento de uma GPU 1 - Model Transformation 2 - Lighting 3 - Camera Simulation 4 - Rasterization 5 - Texturing 6 - Hidden Surfaces
Funcionamento de uma GPU 1 - Model Transformation 2 - Lighting 3 - Camera Simulation 4 - Rasterization 5 - Texturing 6 - Hidden Surfaces
GPGPU General Purpose Computation on Graphics Processing Units O que é? Usar GPU para processar aplicações que são rodadas na CPU.
GPGPU General Purpose Computation on Graphics Processing Units Como? - Inicialmente continham pipeline fixo de renderização de cenas - Pipelines gráficos: transformam geometria 3D em 2D paralelamente, geram fragmentos da geometria 2D também paralelamente e combinam esses fragmentos formando uma imagem. - Adicionou-se estágios programáveis e aritmética de alta precisão ao pipeline - Programador pode criar seus próprios métodos de renderização específica. - Permitiu-se uma forma modificada de "stream processing" para dados não gráficos. - Programação é dependente do pipeline gráfico.
GPGPU General Purpose Computation on Graphics Processing Units Por que? - Grande poder de processamento paralelo - Alto poder computacional para cálculos aritméticos - Está em constante evolução - GPU tem poder de processamento maior que a CPU, o desempenho para processar um software é muito maior (pode ser até 40 vezes mais rápida). - Natural querer usá-la para processamento genérico - 3 dos 5 computadores mais poderosos atualmente beneficiam-se da aceleração da GPU, dentre eles o líder, Tianhe-1A (chinês), que usa plataforma NVIDIA Tesla (serie de GPUs dedicada a GPGPU).
GPGPU General Purpose Computation on Graphics Processing Units Programabilidade: - Mudança na arquitetura da GPU - Estruturas anteriormente implementadas separadas: vertex shader - manipula cor, posição, textura de cada vertice pixel/fragment shader - manipula cor e outros atributos de cada pixel geometry shader - gera formas (linhas, pontos, triangulos) a partir das formas primitivas passadas para o pipeline gráfico - Foram unificadas - Essa unificação permitiu que essas estruturas se tornassem programáveis, sendo usadas não apenas para processamento gráfico.
GPGPU General Purpose Computation on Graphics Processing Units CUDA: - Arquitetura de computação paralela desenvolvida pela NVIDIA que permite compilar programas em C para rodá-los na GPU em stream processing. - Programas em C ou C++ podem, por exemplo, usar a GPU para fazer operações com grandes matrizes paralelamente, ao mesmo tempo que usam CPU para operações apropriadas. - Primeira API que permite que aplicações baseadas em CPU acessem diretamente a GPU sem limitações de APIs gráficas. - Programadores não precisam de uma linguagem específica para GPU.
GPGPU General Purpose Computation on Graphics Processing Units Alternativa: - OpenCL - Framework para escrever programas executáveis em plataformas heterogêneas consistindo de CPUs, GPUs e outros processadores. - Opensource
GPGPU General Purpose Computation on Graphics Processing Units Aplicações: - Principal: vetores e matrizes de grandes dimensões. - Útil em áreas que utilizam enormes volumes de dados, principalmente os voltados para pesquisa científica. - Companhias automobilísticas - Migração de engines de física dos games para a GPU - Diagnósticos médicos mais rápidos e acurados para doenças como câncer - Simulações que ajudam a desenvolver novos remédios para Alzheimer e câncer