1 Computação gráfica em arquiteturas paralelas Bruno Barberi Gnecco PEE 5846 Prof. Takeo.
-
Upload
felipe-de-melo -
Category
Documents
-
view
215 -
download
1
Transcript of 1 Computação gráfica em arquiteturas paralelas Bruno Barberi Gnecco PEE 5846 Prof. Takeo.
1
Computação gráfica em arquiteturas paralelas
Bruno Barberi Gnecco
PEE 5846
Prof. Takeo
2
Introdução Computação gráficaAlto consumo de processamentoGrandes volumes de dadosTempo real
3
Visão geral: Problemas comuns
Bases de dados grandesSincronia dos aplicativosBalanceamento de cargaParalelismo interno dos algoritmos
4
Visão geral:Gêneros de aplicativos
Interativos Jogos, visualização científicaTempo real Sem input Animações, demosOff-line Renderização de cenas e filmesRequerimentos diferentes!
5
ArquiteturasSIMD: excelentes resultados Computação gráfica tem loops
pequenos e repetitivos Ganho próximo ao linearSMP: excelentes resultados Processamento de primitivas
diferentes Fácil de usar
6
Arquiteturas IIClusters Ganho potencialmente (super) linear Problemas de coerência/sincronia Distribuição da base de dados Gargalos de comunicação
7
Hardware especializadoImplementa operações repetitivas e custosasPermite usar o processador principal para outras tarefasInício em plataformas gráficas (SGI)Popularização nos PCs recentemente
8
Hardware especializado IIMaioria faz rasterBaseado em uma pipelinePermite explorar paralelismo internoCombina memória/bus/processador para ótima performance
9
Bases de dados IComputação gráfica lida com grande volume de dados Modelos Texturas Dados volumétricosComo tratar?
10
Bases de dados IIReplicaçãoMigração de dados Distributed Shared Memory (DSM)Dados fixos por nó
11
Bases de dados: problemas
Limite de 32 bits de endereçamentoDistribuída: Latência alta Limite de banda
12
Lidando com problemas IExploração de localidade Cache Least Recently Used funciona
muito bemCompressão de dados Melhora a banda Compressão típica 3:1 Toma tempo de processamento
13
Lidando com problemas IIPré-processamento dos dados Ordenação Divisão espacial
BSPs Octrees Grids
Problema: cenas dinâmicasAcesso de memória não local: peça dado e chaveie para outro thread
14
Lidando com problemas IIIHardware dedicado Limitado por banda do bus Quase nunca é feito para se
aproveitar de paralelismo externo Praticamente limitado a rasterização
poligonal
15
Gargalos em real timePrincipal gargalo atual: bus PCI (~20 fps para download)Redes são segundo gargalo 1024x768@30fps (24bits): 56.6 MB/sProcessadores gráficos têm crescido muito rapidamente
16
Sincronia IProblema de todo aplicativo real timeTrês tipos: Datalock Framelock Genlock
17
Sincronia: DatalockGarantir coerência da base de dadosEm replicação, envia somente mudanças Matrizes de transformaçãoDSM: problema de coerência Processamento de animação/física
torna-se dependente da renderizaçãoDados fixos por nó: irrelevante
18
Sincronia: Swaplock/Genlock
Swaplock: sincronia de troca do frame bufferGenlock: sincronia do sinal de retraço do vídeoGarantir coerência das imagensAltamente dependente do tempoSuporte por hardware pouquíssimos sistemas SGI Wildcat 5110
Via rede (DICElib)Via porta paralela (SoftFrameLock)
19
Algoritmos de renderização I
Ray tracing Semelhante à ótica geométrica Embaraçosamente paralelo Extensões mais complexas
Radiosidade Photon-mapping
Em geral off-line
20
Algoritmos de renderização II
Rasterização Projeção de primitivas geométricas na
tela Mais comum para aplicativos real
time Aceleradores eficientes Alto grau de paralelismo mas não é
embaraçoso
21
Classificação de renderização paralela (Molnar et al, 94)
sort-first antes ou durante o processamento de geometria. Primitivas sem nenhum processamento.sort-middle entre o processamento de geometria e a rasterização. Primitivas já em coordenadas da tela.sort-last ou durante a rasterização. redistribuição é de pixels, fragmentos de
pixels, etc.
22
RasterizaçãoTiled rendering (sort-first) ChromiumProcessamento independente de primitivas e composição de imagem (sort-last)Placas gráficas não provêm suporte
23
Ray tracingEmbaraçosamente paralelo Reflexões/refrações podem levar a
acesso não local Offline: costuma-se paralelizar por
quadro Tornando-se viável para tempo real
24
Balanceamento de cargaDepende do tipo de aplicativo e do tipo de algoritmoSort-first: distribuir dados homogeneamente entre os nós Ótimo para mundos isotrópicos Requer composição final de imagem
consome banda Dinâmico: migração de dados
25
Balanceamento de carga IISort last: Melhor para raytracing do que raster Pode se aproveitar de localidade
26
Soluções existentesRelativamente poucas soluções CAVElib Syzygy Chromium NetJuggler DICElib
27
CAVElibInicialmente só para IRIX, agora também para SUN, HPUX, LINUX e WIN32Padrão para multiprojeçãoSuporta multiprocessamentoVersão para clusters
28
SyzygyDesenvolvida para clustersProvê um sistema operacional distribuídoFaz tile rendering e multiprojeção
29
ChromiumAntigo WireGLTiled renderingTotalmente transparente Emula OpenGLExtensível
30
NetJugglerPacote adicional para VRJugglerProvê um SSI Esconde sincronia e distribuição de dados
entre nósParalelização em nível de eventos Cada evento de entrada é capturado e
broadcasted para outros nósImplementado sobre MPI
31
DICElibImplementação de barreiras de sincronias e memória compartilhadaSobre sockets (TCP e UDP)Portável (Linux, Irix, Win32)Escalável: limitado apenas pela bandaProgramas alvo: pouco compartilhamento de memória, alta taxa de sincronia.Poucas modificações necessárias do programa single-view para executar no cluster.Estável, nova versão em curso.
32
DICElib: barreira de sincronia
DICE_sync( )
“wait”
DICE_sync( )
“wait”
DICE_sync( )
“wait”
“synchrony”
Server Node 1 Node 2 Node n
33
Rendering farms
Usam renderizadores offline 3DSMax Maya etcFrames são gerados inicialmente (animação, simulação física, etc)Distribuição de quadros
34
Conclusões IComputação gráfica em plataformas paralelas é eficienteConsumo de banda extremamente alto Limitações de bandaPoucas soluções ainda para tempo realFoto realismo em tempo real ainda distante
35
Conclusões IIAinda existe muito hardware para se desenvolver Raytracing Volume renderingGrande desperdício de processamento Recomputação de muitos dados, pode-
se aproveitar coerência temporal Cacheamentos eficientes
36
Conclusões IIITempo real/interativo: raster vs raytracing Opiniões divergem Pixel shaders, etc Uma mistura?Como fazer multiprojeção transparentemente
37
ReferênciasBruno Barberi Gnecco, Paulo Bressan, Roseli de Deus Lopes, Marcelo Knorich Zuffo. DICElib: a Real Time Synchronization Library for Multi-Projection Virtual Reality Distributed Environments", Simpósio Brasileiro de Realidade Virtual", Florianópolis, Brazil, Outubro de 2001.H.Kaczmarski, M.K.Zuffo, C.Goudesune, B. Schaeffer, P.Augerat, B.Raffin, P.Bressan, L.Soares. Commodity Cluster for Immersive Projection Envrionments. Siggraph Course Notes 47. San Antonio, Texas. 2002.
38
Referências IIMolnar et. al. A Sorting Classification of Parallel Rendering. IEEE Computer Graphics and Applications, 14(4):23–32, 1994.Dicelib: http://www.lsi.usp.br/~brunobg/dicelibChromium: http://chromium.sourceforge.netSyzygy: http://www.isl.uiuc.edu/ClusteredVR/ClusteredVR.htm