TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Unidade de Processamento Gráfico

Por:   •  20/8/2019  •  Trabalho acadêmico  •  2.252 Palavras (10 Páginas)  •  249 Visualizações

Página 1 de 10

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS

Anna Lara Moraes Caixeta,

Lucas de Souza Ferreira,

Mateus André Fidelis

GPU/GPGPU

GOI NIA

2019

SUMÁRIO

Introdução 3

História da GPU 3

Primeira Geração 3

Segunda Geração 3

Terceira Geração 4

Quarta Geração 4

Quinta Geração 5

GPGPU 5

Arquitetura da GPU 6

A evolução da arquitetura das GPGPUs NVIDIA 8

G80 8

G200 9

Fermi 9

Kepler 9

PIPELINES GRÁFICOS 9

Pontos flutuantes 12

Paralelismo 12

Conclusão 13

Referências 14

Introdução

A GPU(graphics processing unit) é uma unidade de processamento desenvolvida com o objetivo de processar apenas gráficos 3D e também em processamentos com ponto flutuante. Por isso que ela é principalmente utilizada hoje em computadores para cálculos matemáticos complexos, videogames para renderização de gráficos em 3D e até mesmo em dispositivos móveis com o Iphone.

Umas das diferenças entre a GPU e a CPU(Central Processing Unit) é que na GPU tem mais circuitos para o processamento do que na CPU, porém por sua vez elas possuem mais cache e controle de fluxo. A GPU tem como característica a capacidade de processar trechos de código em paralelo de maneira muito eficiente, ela se difere da CPU nesse quesito, pois enquanto a CPU dedica grande quantidade de circuitos ao controle, a GPU dedicada nas unidades aritméticas.

História da GPU

Primeira Geração

A primeira geração vai de 1980 até o final de 1990, com a GPU composta de estágios de processamento fixos, especializados e não programáveis .

Segunda Geração

Entre os anos de 1999 e 2000, surgiram as GPUs de segunda geração, Tais GPUs eram capazes de realizar transformações e efeitos de iluminação (T&L) sobre os vértices dos objetos 3D, liberando a CPU de tal carga de processamento. Nesta mesma época, os padrões OpenGL e DirectX 7 também passaram a suportar T&L via hardware. O conjunto de operações matemáticas expandiu-se um pouco, passando a suportar cube mapping e operações com sinal, mas continuou bastante limitado.

NVidia GeForce 256

Terceira Geração

A terceira geração de GPUs foi bastante curta e restringiu-se às GPUs lançadas em 2001. Esta foi a primeira geração a permitir a execução, na própria GPU, de programas para transformação de vértices (Vertex Shaders). Sendo assim, ao invés de oferecer suporte em hardware dos modos de iluminação e transformação especificados pelas bibliotecas OpenGL e DirectX 7, estas GPUs deixavam a aplicação especificar qual era a seqüência de operações a ser realizada sobre os vértices.

ATI Radeon 8500.

Quarta Geração

A quarta geração de GPUs, que compreende as GPUs lançadas entre os anos de 2002 e 2005, permitiam tanto a programação de vértices quanto a de fragmentos (pixel shaders). Foi com esta geração de placas que surgiu o “C for graphics”, mais conhecido como Cg, desenvolvido pela NVidia, uma linguagem de programação baseada em C e voltada para a implementação de vertex programs e fragment programs que veremos mais adiante.

NVidia GeForce FX

Quinta Geração

Esta geração compreende todas as GPUs lançadas a partir de 2006, cuja principal característica é a arquitetura unificada de processamento e um pipeline cíclico. Estas GPUs também possuem suporte à linguagens de programação de mais alto nível que o Cg como, por exemplo, o CUDA no caso da NVidia.

ATI Radeon HD.

GPGPU

Assim que se deu o início da utilização das GPUs para propósito gerais, foi desenvolvidas ferramentas e facilidades na arquitetura das GPUs, e também na programação com a introdução da CUDA(Computer Unified Device Architecture), desenvolvida pela NVIDIA, em meados de 2006. A GPU G80 da NVIDIA foi a primeira geração de GPUs preparada para CUDA e suporte a linguagem C, o que tem melhorado cada vez mais na gerações seguintes: G200 lançada em 2008; Fermi, lançada em 2009 e Kepler, lançada em 2012.

A CUDA tem o objetivo de facilitar a interface entre o programador e as aplicações GPU. Com isso, surgiu o termo GPGPU (General-Purpose Computing on Graphics Processing Units).os desenvolvedores hoje em dia podem usar C - uma das mais amplamente utilizadas linguagens de programação capaz de operações de baixo nível, que pode ser então executada com alta performance em um processador compatível com CUDA. A CUDA também oferece suporte a linguagens de programação como C++, Fortran, OpenCL e DirectX.

O conceito fundamental de programação através do CUDA é a thread batching. Durante a programação através do CUDA, a GPU é vista como um dispositivo computacional capaz de executar um número elevado de threads em paralelo. Uma função CUDA é chamada de kernel, quando ocorre uma chamada a função kernel o fluxo de execução sai da CPU (ou host) e vai para GPU (ou device). Então, a placa de vídeo executa o código do kernel em paralelo e após a finalização da execução, a CPU continua através da thread principal da

...

Baixar como (para membros premium)  txt (15.7 Kb)   pdf (61.8 Kb)   docx (16.7 Kb)  
Continuar por mais 9 páginas »
Disponível apenas no TrabalhosGratuitos.com