GameVicio Entretenimento: GameVicio | FlashVicio | Hhide.ME | ClubVicio | Fórum | Flow
GameVicio Logo
Página 1 de 2
Stream Processor. Entenda mais sobre este Assunto.
leobru19
Problema do PC é Bios(Bixo Ignorante Operando SyS)
GameViciado Extremo
8.351
Brasília
#  Stream Processor. Entenda mais sobre este Assunto.
Como o pessoal tem muitas dúvidas neste assunto, gostaria de falar mais sobre Stream Processors, uma ótima tecnologia que surgiu a poucos anos no mundo da informática.

O que são STREAM PROCESSORS?


Stream Processors é a tecnologia que veio para substituir os antigo Pipelines (ROPS).

Antigamente os processos de Pixel Shader e Vertex Shader eram feito de modo separado. O Pipeline ou processava somente Pixel Shader, ou somente Vertex Shader.
As unidades de Vertex só processavam vértices, as de pixel apenas aplicavam shaders em pixels.

O problema deste modelo é que as aplicações podem exigir mais operações de Pixel que Vertex shader e vice-versa. E deste modo acontece de haver ociosidade do conjunto para o processo de instruções. O jogo (ou quaisquer aplicação gráfica) tem uma implementação diferente, alguns dependendo mais das unidades de vértice, enquanto outros saturam as de pixel.
Então os fabricantes de placa de vídeo precisavam ficar adivinhando, qual seria o balanceamento mais correto (vértice x pixel) para haver maior desempenho da placa.

Com o surgimento dos Stream Processors este conceito mudou, pois em vez de trabalhar separadamente, ele unificou em paralelo o tratamento de vértices e pixels, ou seja, um stream processor pode tanto processar Pixel Shader, como processar Vertex Shader.
?? a famosa tecnologia de Shaders Unificados.

Nesta imagem podemos ver bem como isto funciona:



Com esta flexibilidade, o fabricante de GPU não tem mais preucupação com a proporção (Vertex /Pixel), ele vai se preucupar apenas em forneçer o maior número possível de unidades programáveis(stream processors)

E para o desenvolvedor de jogos vai poder livremente decidir quantas unidades quer para cada função. E terá toda liberdade de escolher o melhor algoritimo para seu software.

Este é um conceito inteligente, e abre uma enorme quantidade de opções. Como cada processador de stream (Stream Processor) é programável, podemos utilizar ele para outras finalidades além do processamento de vértices e pixels, como cálculos de fisica, aplicação de Antialiasing na imagem, etc.

Já foi comprovado que o processador principal do sistema (CPU) não é eficiente para o calculo de física, com esta nova abordagem poderemos usar alguns stream processors para esta função e nisto reduzir e muito o uso do CPU nas aplicações 3D. Com isto o CPU estará livre para processar somente scripts, lógica, IA do jogo. Isto aumentará consideravelmente o desempenho dos jogos, e diminuirá ou extiguirá com gargalos existentes entre CPU e Placa de vídeo.

Então resumindo.
Os stream processors é uma nova tecnologia que trouxe benefícios para o processamento unificado de shaders.

Agora vamos ver como os Stream Processors são tratados na arquitetura de placas da ATI (Apartir do RV770) e na Nvidia(Apatir do GT200).


Arquitetura ATI (RV770)


Umas da novas arquiteturas da ATI é a RV770. O processador contem 10 núcleos SIMD, cada um com 16 unidades de Stream Processor(SP). Os Núcleos SIMD são similiares aos Cluster Processor Texture(TPC) da Nvidia,(A arquitetura GT200 possuem 10 desses), e então 10*16 = 160SP(RV770) é a chamada "Execução de fases em granularidade", que é similiar aos Stream processors da Nvidia (GT200 tem 240 desses).

O modelo de processo da Nvidia executa somente 1 intrução por fase, cada Stream Processor da arquitetura RV770 executa um compactado de 5 instruções wide VLIW, ou como comumente chamado 5 SPUs.

Vou explicar melhor isto:
Em cada Stream Processor da ATI temos 5 ALUs(Arithmetic logic unit), cada um tem capacidade de entregar 1 instrução por pulso de clock. Geralmente eles não todos usados, até em aplicações muito pesadas como benchmarks, temos uma média de 4.2 intruções por ciclo.
O único programa que até hoje conseguiu usar de maneira perfeita as 5 ALUs dos Stream processors foi o Matrix Multiply. No qual se mostrou todo o potencial dos Stream processors da Arquitetura da ATI.

Então apatir disto é que vemos pessoas dizendo que as placas da ATI tem 800 Stream Processors, por causa da seguinte conta:
10 SIMD * 16 SP * 5-Wide VLIW = 800 Stream Processors.




Arquitetura Nvidia (GT200)


A última arquitetura da Nvidia chamada GT200 (GT significa Graphics Tesla), o processador contém 10 Texturas/Processors Clusters (TPC), cada um com 3 Single Program Muliple Data(SPDM) computando em núcleos os quais a Nvidia chama de Streaming Multiprocessors(SM). Cada um tem duas portas (Chamadas Port 0 e Port 1).

A cada porta pode realizar instruções entre 1 e 3 agrupamentos de unidades com sua fucionalidades em qualquer ciclo.
Cada agrupamento contem:
1 SIMT (Single Intruction Multiple Thread) para cada 8 Unidades de ponto flutuante, marketadas como "Stream Processors" ou como Shader cores.
Resumindo: 8 caminhos gerenciando a execução do SIMT.

Então o cáculo de stream processors da Nvidia é feito da seguinte forma:

10 TPC * 3 (SPDM) * 8 (SIMT) = 240 Stream Processors.




Arquitetura Nvidia vs ATI


Considerando um teórico número de 800SP da ATI, na prática é diferente. Porque como citei anteriormente o uso das ALUs é comumente não usado da forma adequada, somente 1 software até hoje conseguiu usar as ALUs na forma teórica, e sim neste software podemos dizer que a ATI possuiu um fator de 800 contra 240 da Nvidia.

Um site francês(não consegui mais achar o link) fez comparação entre os SP da ATI e da Nvidia, e chegou a conclusão, em uma média comparando vários jogos e aplicações, e chegou-se na conclusão que aproximadamente para termos o desempenho da ATI para Nvidia somente em Stream Processors deveríamos fazer a Razão/Proporção de 5/2. Dividindo os Streams Processors da ATI por 5, e da Nvidia por 2. Devemos fazer isto justamente porque não se pode considerar o uso total dos Stream Processors da ATI(que na teoria serião de 800 e 240 da ATI) na prática consideraram 160SP(RV770) da ATI contra 120SP da Nvidia(GT200) fazendo uma média de todos os jogos, aplicações e benchmarks em geral.

Isto deve mudar com a nova implantação de física da ATI em suas GPUs com o novo Havok FX. O qual irá fazer mais usos das Stream Processors(diminuindo esta Razão/proporção) em vantagem para a arquitetura da ATI.

Porém estamos aqui falando de arquitetura, então não podemos somente falar de Stream processors, eles não significam tudo em uma placa de vídeo. Eles são somente uma parte importante no processo, no qual temos outras 2 no mesmo nível de importância. Vamos analisar os outros fatores:

Há três especificações que são as mais determinantes de desempenho de uma placa de vídeo.
Uma é tão importante quanto a outra.

São
-> Fillrate (Capacidade Bruta da placa de vídeo em processar pixels e texturas e escrevê-los na memória)
           ?? dividido em 2.
           -Pixel Fillrate (?? formado pelo número de ROPs[pixel pipelines] * Clock da GPU) {Resultado em MegaPixels/s, ou MPixels/s}
           -Texture Fillrate (?? formado pelo número de TMU[Unidades de processamento de textura] * Clock da GPU) {Resultado em MegaTexels/s ou MTexels/s}

           PS: Porém aqui o mais importante a se considerar é o Texture Fillrate.. já que o Pixel Fillrate está sendo
              bastante substituído pelos StreamProcessors

OBS: Aqui a Nvidia supera a ATI em qualquer arquitetura(Texture Fillrate). ?? aqui que ela consegue seus aumentar seu FPS, perante os Stream Processor da ATI.

-> Memory Bandwidth (Taxa de transferência da memória)
           ?? formado pela seguinte fórmula:  [largura da banda(em bits) * Clock da memória] / 8 / 1000 {resultado em GB/S}

-> Stream Processors (Capacidade de processamento de Efeitos de Pixel Shader e Vertex Shader, e efeitos de AF, AA e física).
           Nas placas da ATI usa-se o fator 5 para a razão e proporção com a nvidia
           Nas placas da Nvidia usa-se o fator 2 para a razão e proporção com a ati

Então, terminado este Assunto, não podemos pensar que Stream processors somente são determinantes.


E eu falei muito sobre Vertex e Pixel shader, porém o que é cada um deles?

Pixel Shader e Vertex Shader


Pixel Shader

Pixel Shader é usado para aplicar a cor e outros atributos para cada pixel.
Ele é frequentemente usado para aplicar efeitos de luminosidade, de sombras, Blur e efeitos complexos como Specular Highlights, Bump Mapping e Depth of field.

Efeitos de luminosidade

Com e sem pixel shader.


Specular highlight



Bump mapping

Sem Bump Mapping:


Com Bump Mapping:


Sem e Com Bump Mapping (Fallout 3)


Translucency


Efeito Blur

(Efeito blur no Spore, fazendo as distâncias muito mais realistas).

Sombras com Depth of field(DOF)

(OBS: Depth of Field é uma técnica que visa embassar o que não é necessário em uma imagem, aplicando-se no efeito 3D, além de embassar objetos que(no caso da foto) não estão na mira, embassa objetos distantes que mesmo estando perto da mira(no aspecto 2D), estão longe da mira(no aspecto 3D).
PS: Imagem do jogo Crysis.

Mais sobre Depth of Field:
http://en.wikipedia.org/wiki/Depth_of_field


Vertex Shader

Ele é interessante para ocasiões onde se tem muita geometria complexa e neste caso vamos substuir o tratamento normalmente feito com texturas por Vertex Shader.
Por exemplo, os pelos de um cachorro.. se formos tratar isto com texturas todos os pelos ficaram com uma configuração 2D pois seria uma geometria muito complexa para se tratar com 3D. Porém com o Vertex Shader podemos tratar todos os pelos como forma de polígonos e com operações simples.
Os vertex shaders trabalham na estrutura dos objetos 3D que compõe a imagem, adicionando efeitos e criando animações, como no caso da grama ou dos cabelos.

Também são muito usados para contrução de terrenos muito complexos. E muito usado em efeitos como Parallax Occlusion Mapping (POM).
Você pode reparar que a maioria dos jogos tem o terreno com retas, e quadrados.. estes não usam Vertex Shader.
Porém quando você ver terrenos complexos, estes irão ter que usar muitos polígonos, ou seja, Vertex Shader.

Sem contar com uma implementação que vem sendo muito feita nos últimos tempos que é a abordagem Vertex Textures. Apartir do momento que outros componentes da VGA terminam a textura, a nova programação do Vertex Shader consegue ler a textura assim como pixel shader faz.
Apartir do momento que ele traça toda a textura ele edita vários vértices da textura e a transforma em um polígono.
Esta nova programação vem sendo muito usada para se fazer efeitos com fluídos, simulação real do oceano, explosões, partículas, etc..



Hair Polygonal




Grass polygonal






Terrenos




Outro exemplo de terreno feito em vertex Shader


Parallax Occlusion Mapping (POM)




Os terrenos de Crysis são tão perfeitos por causa do POM, que é processado no Stream Processors.
Mais sobre POM:
http://en.wikipedia.org/wiki/Parallax_mapping

Exemplo de Vertex Texture que é muito usado em jogos com oceano (Crysis por exemplo com seu algoritimo Fast Fourier Transform)



O Fast Fourier Transform(Vertex Texture) é um algoritimo que é usado junto ao Vertex Shader que foi implementado ao Crysis.
Ele cria ondas na água, e faz a água interagir com outros objetos(tipo a água levar um graveto por exemplo)
http://en.wikipedia.org/wiki/Fast_Fourier_transform

Sem vertex shader, nada mais complexo em termos de polígonos poderia existir.
E sem Pixel shader nada mais complexo em termos de cor e luminosidade poderia exisitir.

Espero que tenham gostado. Abraço!
->Leia as Regras do Forum!
->Ranking Benchmark 3D Placas De vídeo!
->Ranking de Lojas de Informática!Recomende você também!
William_WRC
GameViciado Master
1.305
Rio Grande - RS
#  Re: Stream Processor. Entenda mais sobre este Assunto.
ótimo!!!

Bela idéia!!!

Agora entendo melhor o q são esses tão falados Stream Processors!!!


vlw!
Core 2 Quad Q9550 (2.8GHz - 12MB) ||| Windows 7 Ultimate Edition x64 ||| ASUS P5Q-E ||| 4 GB RAM G.Skill (2 X 2GB)DDR2 @ 835MHz 4-4-4-10 ||| PowerColor HD4870 1GB pcs+ ||| LG W2284F ||| HD 500GB 16MB ||| Cooler Master eXtreme Power Plus 550W ||| NZXT Lexa S
T.Castro
Começando a Saber
136
São Paulo
#  Re: Stream Processor. Entenda mais sobre este Assunto.
legal kra agora sim deu pra entende como funciona o stream processors!!


belo tópico e isso aew.


PArabéns  :biggrin:
Kaiser Tyamat
I'm Gaming don't Disturbed
GameViciado Veterano
3.515
Rio de Janeiro
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Show .... topico muito completo , falando de uma tecnologia amplamente vista hoje em dia

enfim ... muito bom , parabens

se a galera gostar .....acho que merecer um prendedor pra ficar la em cima ne (fixo :P)
eai .... o que a multidão mandar eu faço :d
natalizio
Parceiro GameVicio
536
Belo Horizonte, Minas Gerais, Brasil
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Ficou bom mesmo. Merece tornar topico fixo.
Poderia completar colocando as gerações de Geforce e Radeon que utilizavam os pipelines.
AM3 955BE X4 @3.7ghz | Zalman CNPS10x Quiet | Biostar TA790GX A3+ | ASUS GTX460 TOP 768mb @825/3920 | 2x2048MB DDR3 1333mhz OCZ Gold | HD SATA II 80GB samsung 8mb buffer + HD SATA II 320GB samsung 16mb buffer | FONTE Corsair TX 650W | Centurion CM-590| Monitor Samsung P2370H
William_WRC
GameViciado Master
1.305
Rio Grande - RS
#  Re: Stream Processor. Entenda mais sobre este Assunto.
POIS ??!!!


Axo q merece mesmo tornar fixo!
Core 2 Quad Q9550 (2.8GHz - 12MB) ||| Windows 7 Ultimate Edition x64 ||| ASUS P5Q-E ||| 4 GB RAM G.Skill (2 X 2GB)DDR2 @ 835MHz 4-4-4-10 ||| PowerColor HD4870 1GB pcs+ ||| LG W2284F ||| HD 500GB 16MB ||| Cooler Master eXtreme Power Plus 550W ||| NZXT Lexa S
XChaos
Sabe Pouco
91
São Paulo
#  Re: Stream Processor. Entenda mais sobre este Assunto.
ficou muito bom msm cara, fico espetacúlar tem até as imagens para poder intender melhor como que funciona divia fixo msm. parabéns!
(Série 5?)...(hum...)...(deixe me ver)...(google: "-Você quis dizer: pedaço de metal que vende como se fosse VGA")...(Wikipedia: "Componente de Computador que dizem ser placa de vídeo, mas nunca se comprovou isso.")...(Mercado Livre: "Melhor placa, imbatível, vende como água, roda directx 0.000009")
maspskin
ANTES MORTO QUE VERMELHO
Associado GameViciado
2.530
são paulo
#  Re: Stream Processor. Entenda mais sobre este Assunto.
ficou ótimo o tópico , mto criativo,
parabens.
phenon ll x4 940
dfi-LANPARTY DK 790X-M2RS
hd4870-512
4 gb patriot extreme 800 mhz
7team 620 paf[/td][/tr][/table]
Parowski
WWW - Wait, wait, wait???
GameViciado Extremo
5.513
Brasil
#  Re: Stream Processor. Entenda mais sobre este Assunto.
ótimo topico... bem completo e informativo!

mereçedor de fixagem

parabens
leobru19
Problema do PC é Bios(Bixo Ignorante Operando SyS)
GameViciado Extremo
8.351
Brasília
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Obrigado pessoal!
O que os usuários decidirem, será.. se mereçe ou não fixagem.
->Leia as Regras do Forum!
->Ranking Benchmark 3D Placas De vídeo!
->Ranking de Lojas de Informática!Recomende você também!
Kaiser Tyamat
I'm Gaming don't Disturbed
GameViciado Veterano
3.515
Rio de Janeiro
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Opa ... o pessoal pediu .... o pessoal mandou ...

Topico FIXO

Porem................
vai umas dicas .... pega as imagens que ainda não estão em thumbnail .. "upa" no imageshack e poe aki de novo ... fica melhor pra todo mundo :d ( só da mais trabalho pra vc :p)

outra coisa .... como os usuarios falaram .... vale a pena 2 coisas
algumas placas muito famosas com pipeline ( fx5200/9600pro) e as primeiras a sair com stream processor's
tanto AMD/ati quanto Nvidia

Enfim ... no mais ... FIXO
raven123
Sabe Pouco
57
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Cara ta de Parabens!
Muito util vlw msm
isso e muito bom pra quem no intende muito (como eu )^^
merece Fixo!  :wink:
Processador: Intel Core 2 Duo E7300 2,66
Placa de Video: HD Radeon 4850 512mb
Memoria: 2 GB ddr2 800mhz
HD: 160Gb Maxtor
Placa Mae:Gigabyte GA-G31M-S2L
Monitor: 22" T220
Fonte: Seventeam 450w Reais
LtPixote
Em luta de saci, qualquer chute é voadora!!!
GameViciado Junior
858
Rio de Janeiro
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Tá perfeito até pessoas q nem sabe oq é placa d video entende^^ vc explico mto bem
Mto bom o tópico vai ajudar mta gente na hora d trocar a VGA


rbmarques
Analista de sistemas
Super Moderador(a)
Equipe Home
7.427
Várzea Grande-MT
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Muito bom esse tópico, bem teórico e prático, antes eu não sabia nada sobre isso, agora estou aprendendo sobre o Stream Processor.


Denúncias Relacionadas à HOME GV | Denúncias relacionadas ao F??RUM GV | Dicas e Sugestões | Meu ClubVicio
An?nimo
0
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Excelente tutorial, pouca gente sabe a diferença, eu não sabia totalmente.

ramonfrar
o/
GameViciado Master
1.517
Capital do Ceará
#  Re: Stream Processor. Entenda mais sobre este Assunto.
muito bom!
Agora eu consegui diferenciar perfeitamente!
Parabêns!! :cool: :cool:
- Forum GV
- Jogos de forum
- Descontravicio
- Novidades
- Google
- Regras da GV
vanshura
Discutir com um homem que renunciou à sua razão é como medicar um cadáver.
Começando a Saber
102
Lençois Paulista
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Muito bom o seu tutorial, para mim que estou estudando ciência da computação é muito util conhecer mais sobre arquitetura de hardware, ainda mais aplicada a games.  Congratulations!!!
skyrai
Queria ser pobre um dia,Pq Todo dia e fod
Esse se Vira
151
Suzano
#  Re: Stream Processor. Entenda mais sobre este Assunto.
Muito bom cara parabens..o que seria  de nos gamers sem essas tecnologia?
doidou
Doidou...
Detonador de Game
307
Via espressa
#  Re: Stream Processor. Entenda mais sobre este Assunto.
tutorial de mestre continue com esses tuto ae...xD
Phoenix_BR
Manja Nada
42
SJC-SP
#  Re: Stream Processor. Entenda mais sobre este Assunto.
leobru19, excelente material, parabéns!
Página 1 de 2


FBS - Fast Board System versão 0.16
©2012 GameVicio