Unidade de procesamento gráfico: Diferenzas entre revisións

Contido eliminado Contido engadido
Toliño (conversa | contribucións)
mSen resumo de edición
m Arranxos varios
Liña 1:
[[Ficheiro:6600GT GPU.jpg|miniatura|250px|GPU [[GeForce|Ge Force 6600GT (NV43)]].]]
A '''unidade de procesamento gráfico''' (''Graphics Processing Unit'') ou '''GPU''', tamén coñecida como '''unidade de procesamento visual''' (''Visual Processing Unit'') é un [[microprocesador]] (ou acelerador gráfico) para [[Ordenador|computadores persoais]], [[videoconsola]]s e outros dispositivos que requiran de gran cantidade de imaxes xeradas por computador.
 
As GPUs modernas son moi eficientes manipulando e mostrando [[gráficos por computador]], e a súa estrutura de alto paralelismo fainas moito máis efectivas que as típicas [[CPU]]s para un amplo rango de algoritmos complexos.
Liña 6:
Unha GPU pon en funcionamento un número de operacións gráficas [[primitivas]] cunha rapidez maior que unha CPU. As operacións máis comúns para os primeiros [[gráficos 2D]] inclúen o copiado rectangular de zonas de memoria (como as xanelas ou os videoxogos), coñecido polo termino inglés de ''[[blitter]]'', e tamén operacións de recheo de [[rectángulo]]s, [[triángulo]]s, [[círculo]]s, e demais [[xeometría|formas xeométricas]].
 
As GPUs modernas soportan [[gráficos 3D]], coma ordenacións dos obxectos, iluminación ou transformacións xeométricas, e tamén capacidades de [[vídeo dixital]].
 
==Historia==
Liña 18:
As GPUs actuais son moi potentes e poden chegar a superar a [[frecuencia de reloxo]] dunha CPU antiga (máis de 500[[Hertz|MHz]]). A potencia das GPU e o seu dramático ritmo de desenvolvemento recente débense a dous factores diferentes. O primeiro factor é a alta especialización das GPU, xa que ao estar pensadas para desenvolver unha soa tarefa, é posible dedicar máis [[silicio]] no seu deseño para levar a cabo esa tarefa máis eficientemente. Por exemplo, as GPU actuais están optimizadas para cálculo con valores en [[coma flotante]], predominantes nos [[gráficos 3D]].
 
Doutra banda, moitas aplicacións gráficas requiren un alto grao de [[paralelismo]] inherente, ao ser as súas unidades fundamentais de cálculo ([[vértice]]s e [[Píxel|píxelespíxel]]es) completamente independentes. Os modelos actuais de GPU adoitan ter unha media ducia de procesadores de vértices (que executan [[Vertexvertex shader|vertex shaders]]s), e ata dous ou tres veces máis procesadores de fragmentos ou píxeles (que executan [[Fragmentfragment shader|fragment shaders]]s). Deste xeito, unha frecuencia de reloxo duns 500-600[[Hertz|MHz]] en comparación co ofrecido por unha CPU de 4GHz4 GHz tradúcese nunha potencia de cálculo moito maior grazas á súa arquitectura en paralelo.
 
== Arquitectura==
A arquitectura das GPUs atópase moi segmentada, o que indica que posúe gran cantidade de unidades funcionais. Estas unidades funcionais pódense dividir principalmente en dúas: aquelas que procesan [[vértice]]s e aquelas que procesan [[Píxel|píxelespíxel]]es.
 
Inicialmente á GPU chégalle a información da CPU en forma de vértices. O primeiro tratamento que reciben estes vértices realízase no ''vertex shader''. Este realiza transformacións coma a rotación das figuras. Tras isto, defínese a parte destes vértices que se vai a ver (''clipping''), e os vértices transfórmanse en píxeles mediante o proceso de rasterización. Estas etapas non posúen unha carga relevante para a GPU.
Liña 32:
Nos comezos a programación da GPU facíase con chamadas a servizos de [[interrupción]] da [[BIOS]]. Tras isto, a programación da GPU comezou a facerse en [[linguaxe ensambladora]] específica a cada modelo. Posteriormente situouse un nivel máis entre o [[hardware]] e o [[software]], deseñando as [[API]]s (''Application Program Interfaces''), que proporcionaban unha linguaxe máis homoxénea para os modelos existentes no mercado. A primeira API de uso xeral foi estándar aberto [[OpenGL]] (''Open Graphics Language''), tralo que [[Microsoft]] desenvolveu o sistema [[DirectX]].
 
Tra-lo desenvolvemento de APIs, decidiuse crear unha [[linguaxe de alto nivel|linguaxe de alto nivel]] para gráficos. A linguaxe estándar de alto nivel asociada á biblioteca [[OpenGL]] é o ''OpenGL Shading Language'', [[GLSL]], posta en funcionamento en principio por tódolos fabricantes. A empresa californiana [[NVidia]] creou unha linguaxe propietaria chamada [[Cg]] (do inglés, ''C for graphics''), con mellores resultados que que GLSL nas probas de eficiencia. En colaboración con NVidia, [[Microsoft]] desenvolveu a súa ''High Level Shading Language'', [[HLSL]], practicamente idéntico a Cg, pero con certas incompatibilidades menores.
 
== Fabricantes de GPUs ==