1 Computação gráfica em arquiteturas paralelas Bruno Barberi Gnecco PEE 5846 Prof. Takeo

Preview:

Citation preview

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

Recommended