Arquitetura de GPUs Nvidia e Memória em Aplicações CUDA
Danilo Ehrhardt Ferreira Bento <danilo@bento.eti.br> - mestrando em Ciência da Computação no IME-USP -
orientador: Prof. Dr. Marco Dimas Gubitoso
2010-12-03
I
Processadores numéricos especializados em:
I transformações de vértices e matrizes
I tarefas de preenchimento de regiões
I
Eficientes:
I muitas operações pré-definidas para tarefas de processamento do pipeline de operações em gráficos 2D e 3D
I operações parametrizadas
I pouca ou nenhuma programabilidade
I
Capazes de explorar o grande paralelismo de aplicações de Computação Gráfica:
I grandes quantidades operações em grandes quantidades de dados
I a maoiria dados podem ser manipulados de forma independente, com pouca ou nenhuma dependência
GPUs atuais da Nvidia
I
Processadores numéricos:
I ainda muito eficientes para as operações de Computação Gráfica
I tiveram uma redução na área de operações pré-definidas, proporcionalmente
I ganharam programabilidade
I
Eficiência:
I ainda mantém as operações que são utilizadas para Computação Gráfica em 2D e 3D
I operações podem ser combinadas de forma mais flexível:
I possibilita o desenvolvimento de novos algoritmos
I traz efeitos que eram somente possíveis no processamento
"off-line" para a Computação Gráfica iterativa
I grande número de núcleos de processamento (cores) que cresce continuamente
I modelo SIMD simplifica o desenho dos processadores
I caminhos diferentes de execução (branches) diminuem significamente a ocupação dos cores
Data Pool
Instruction Pool
PU PU PU PU
SIMD
GPUs atuais da Nvidia
I
grande número de linhas de execução com pequeno custo de criação e troca de contexto (lightweight threads) em cada core
I pipeline (waves) procura maximizar a ocupação dos cores e ocultar latência de:
I acessos à memória
I operações que consomem muitos ciclos de processamento
I
Por core:
I registradores
I cada thread tem sua visão de registradores
I
Por multiprocessador (stream multi processor - SMP):
I memória compartilhada
I possibilita sincronismo entre cores do mesmo SMP
I não compartilhada entre SMPs I
Global:
I todos podem acessar
I alta latência
I instruções para sincronismo global disponíveis a um alto custo