Introdução à Aceleradores Gráficos


O acelerador gráfico ou GPU é um microprocessador especializado que acelera o processo de renderização 2D e 3D. Eles são usados em sistemas embarcados, smartphones, computadores pessoais, grandes Workstations e em consoles.

A GPU é um processador SIMD associado a uma placa de vídeo. Ela contém inúmeros microchips  dedicados a efetuar operações matemáticas complexas sobre uma grande quantidade de dados de maneira independente, distribuída e paralela.



Nvidia Gpu

 

As primeiras placas gráficas surgiram na década de 70 e tinham como função principal a manipulação de texto e sprites (imagens 2D integradas a uma cena, porém tratada como um objeto singular).

Nos anos 80, a IBM construiu a primeira placa gráfica aceleradora 3D para o IBM PC, algo que viraria um padrão 10 anos depois. Este produto não foi comercializado em massa devido ao alto preço e à incompatibilidade com os sistemas e os softwares comercializados na época.

A Comodore Amiga foi a primeira placa comercializada em larga escala, a razão do sucesso se deve a implementação de primitivas 2D totalmente em hardware, além de conseguir internalizar todo o processo de renderização na GPU.

No inicio da década de 90, os maiores avanços estavam relacionados ao desempenho e a aceleração em hardware das famosas 2D GUI dos sistemas operacionais. Alguma placas continham aceleração 3D, porém esta funcionalidade era tratada como um bônus adicional. O foco dos desenvolvedores ainda estava restrito a renderização 2D.

As primeiras placas 3D comercializadas em escala foram as encontradas nos consoles como Playstation 1 e Nintendo 64, para PC os exemplos de sucesso foram a S3 Virge, a ATI VRage e a Matrox.

Neste período surgiu o Opengl , que consiste em uma especificação independente de máquina e de linguagem para escrever aplicações 2D e 3D, feita pela Silicon Graphics em 1992

A interface consiste de cerca de 250 funções que variam desde operações simples de manipulação de imagens até complexas operações 3D.

Inicialmente o Opengl não foi bem aceito, pois sofria com vários problemas de desempenho, possibilitando o surgimento de uma concorrente chamada Glide API (para placas 3dfx) que facilmente dominou o mercado. Em pouco tempo as deficiências foram corrigidas e o Opengl foi aceito como padrão. As primeiras implementações desta interface foram feitos em software e demorou um grande período para as fabricantes de GPU começarem a implementar o padrão completamente em hardware.

No final dos anos 90 a Microsoft criou o DirectX (coleção de APIs para tratar de tarefas multimídia, especialmente programação de jogos e vídeos, similar ao Opengl, como exemplo de API temos o Direct3D e o DirectDraw que cuidam da parte gráfica).

A primeira versão do DirectX usada em grande escala pelos desenvolvedores de jogos foi a 5.0. Durante a década de 90, devido a estratégia de negócio da Microsoft, o DirectX esteve sempre um passo atrás em relação às funcionalidades implementadas pelo OpenGL, algo que mudou recentemente.

O padrão Opengl e as suas implementações são abertas, a maioria dos sistemas operacionais modernos como Windows, Unix, MacOs e Linux contemplam uma implementação deste padrão, ao contrário do DirectX que é um produto totalmente fechado e funciona apenas em sistemas Microsoft.

Até o início do ano de 2000, as GPUs eram microchips configuráveis que executavam tarefas implementadas diretamente no hardware, o desenvolvedor poderia alterar alguns poucos parâmetros, porém as funcionalidades eram sempre as mesmas. Isto limitava a criatividade, uma vez que os novos algoritmos (por exemplo, uma maneira inovadora e eficiente de calcular sombras mais realistas) teriam que ser implementados diretamente nos chips da GPU. Outro problema era a grande semelhança visual entre os aplicativos da época, já que a diferença estava restrita à qualidade dos modelos e texturas utilizados, pois as técnicas e efeitos especiais eram essencialmente os mesmos.

Essa realidade mudou no início do século 21 quando as GPUs começaram as ser programáveis. Pequenos trechos de código poderiam rodar diretamente na placa de vídeo para processar os modelos e texturas enviadas. A GPU tornou-se de fato um segundo processador com seu conjunto de instruções particulares. A NVidia foi a primeira a produzir uma placa com esta capacidade (GForce3 NV20), em seguida a ATI lançou a Radeon 9700 (R3000).

Atualmente a GPU consiste de alguns estágios programáveis e alguns configuráveis, a especificação mais recente (conhecida como Shader Model 5.0) especifica os seguintes estágios programáveis:

  • Vertex Shader
  • Hull Shader
  • Domain Shader
  • Geometric Shader
  • Pixel Shader

E os seguintes estágios configuráveis:

  • Input Assembler
  • Tesselator
  • Rasterizer
  • Alpha Blending e Depth/Stencil Testing (Output Merger)

O Opengl 4.0 e o DirectX 11 prevêem rotinas de acesso a estes recursos.

Tessellation e Displacement Mapping, criando modelos muito convincentes em tempo real com Shader Model 5.0

 

Esta nova arquitetura transformou a GPU em um segundo processador semelhante a CPU (porém com finalidade diferente), aumentando a flexibilidade dos desenvolvedores de aplicações gráficas. Em decorrência disto, a partir dos anos 2000 observa-se um aumento exponencial na qualidade visual dos jogos eletrônicos.

Comecei uma série de Tutoriais no PontoV sobre como acessar alguns destes recursos usando XNA e HLSL. Vale a pena dar uma conferida :)

, , , , , , , , , , , , ,

  1. #1 by best online shopping on 20 de julho de 2017 - 10:33 pm

    I don’t even know how I ended up here, but I thought this post was great. I don’t know who you are but certainly you’re going to a famous blogger if you are not already 😉 Cheers!

  2. #2 by roller garage door repairs on 20 de julho de 2017 - 10:52 pm

    Yes! Finally something about keyword1.|

  3. #3 by custom shower doors vancouver on 21 de julho de 2017 - 6:18 am

    Every once in a whilst we decide on blogs that we read. Listed beneath would be the most up-to-date internet sites that we pick

  4. #4 by custom wood handrails on 21 de julho de 2017 - 8:07 am

    always a significant fan of linking to bloggers that I adore but dont get a lot of link enjoy from

  5. #5 by خرید اپل ایدی on 21 de julho de 2017 - 8:57 am

    usually posts some incredibly interesting stuff like this. If you are new to this site

  6. #6 by toughened glass vancouver on 21 de julho de 2017 - 9:28 am

    below you will discover the link to some web-sites that we consider it is best to visit

  7. #7 by cheap asics outlet on 21 de julho de 2017 - 9:59 am

    I think one of your advertisings caused my browser to resize, you might want to put that on your blacklist.
    cheap asics outlet http://www.zapposoutlet.online

  8. #8 by omarwebsite.com on 21 de julho de 2017 - 10:08 am

    Aw, this was a very good post. Spending some time and actual effort to produce a really good article… but what can I
    say… I procrastinate a whole lot and don’t manage to get anything done.

  9. #9 by human hair weave on 21 de julho de 2017 - 11:08 am

    human hair weave https://www.youtube.com/watch?v=koiFnDsfNPU is my initial a single. I like, Really like, Adore them! They’re cozy, pleasant, and adorable! I really advise!

  10. #10 by casino en ligne on 21 de julho de 2017 - 12:36 pm

    Everyone loves it when folks get together and share thoughts. Great website, stick with it!|

  11. #11 by Julius Vauters on 21 de julho de 2017 - 1:38 pm

    An added important aspect is that if you are an elderly person, travel insurance pertaining to pensioners is something you should make sure you really think about. The more aged you are, a lot more at risk you are for permitting something poor happen to you while in another country. If you are not really covered by quite a few comprehensive insurance coverage, you could have a few serious troubles. Thanks for sharing your ideas on this website.

  12. #12 by hermes bags sale on 21 de julho de 2017 - 2:34 pm

    continue with the the nice work on the site. Do like it! :p Could use some more frequent updates, but im sure that you got better or other things to do like we all have to do unfortunately.
    hermes bags sale http://www.handbagssale.online

1 667 668 669
(não será publicado)