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

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

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

Page 1: 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

Page 2: 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

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

3

Visão geral: Problemas comuns

Bases de dados grandesSincronia dos aplicativosBalanceamento de cargaParalelismo interno dos algoritmos

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

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!

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

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

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

6

Arquiteturas IIClusters Ganho potencialmente (super) linear Problemas de coerência/sincronia Distribuição da base de dados Gargalos de comunicação

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

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

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

8

Hardware especializado IIMaioria faz rasterBaseado em uma pipelinePermite explorar paralelismo internoCombina memória/bus/processador para ótima performance

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

9

Bases de dados IComputação gráfica lida com grande volume de dados Modelos Texturas Dados volumétricosComo tratar?

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

10

Bases de dados IIReplicaçãoMigração de dados Distributed Shared Memory (DSM)Dados fixos por nó

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

11

Bases de dados: problemas

Limite de 32 bits de endereçamentoDistribuída: Latência alta Limite de banda

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

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

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

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

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

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

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

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

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

16

Sincronia IProblema de todo aplicativo real timeTrês tipos: Datalock Framelock Genlock

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

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

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

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)

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

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

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

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

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

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.

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

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

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

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

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

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

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

25

Balanceamento de carga IISort last: Melhor para raytracing do que raster Pode se aproveitar de localidade

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

26

Soluções existentesRelativamente poucas soluções CAVElib Syzygy Chromium NetJuggler DICElib

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

27

CAVElibInicialmente só para IRIX, agora também para SUN, HPUX, LINUX e WIN32Padrão para multiprojeçãoSuporta multiprocessamentoVersão para clusters

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

28

SyzygyDesenvolvida para clustersProvê um sistema operacional distribuídoFaz tile rendering e multiprojeção

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

29

ChromiumAntigo WireGLTiled renderingTotalmente transparente Emula OpenGLExtensível

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

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

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

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.

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

32

DICElib: barreira de sincronia

DICE_sync( )

“wait”

DICE_sync( )

“wait”

DICE_sync( )

“wait”

“synchrony”

Server Node 1 Node 2 Node n

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

33

Rendering farms

Usam renderizadores offline 3DSMax Maya etcFrames são gerados inicialmente (animação, simulação física, etc)Distribuição de quadros

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

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

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

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

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

36

Conclusões IIITempo real/interativo: raster vs raytracing Opiniões divergem Pixel shaders, etc Uma mistura?Como fazer multiprojeção transparentemente

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

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.

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

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