Está en la página 1de 3

Una unidad de procesamiento gr�fico o GPU (graphics processing unit) es un

coprocesador dedicado al procesamiento de gr�ficos u operaciones de coma flotante,


para aligerar la carga de trabajo del procesador central en aplicaciones como los
videojuegos o aplicaciones 3D interactivas. De esta forma, mientras gran parte de
lo relacionado con los gr�ficos se procesa en la GPU, la unidad central de
procesamiento (CPU) puede dedicarse a otro tipo de c�lculos (como la inteligencia
artificial o los c�lculos mec�nicos en el caso de los videojuegos).

La GPU implementa ciertas operaciones gr�ficas llamadas primitivas optimizadas para


el procesamiento gr�fico. Una de las primitivas m�s comunes para el procesamiento
gr�fico en 3D es el antialiasing, que suaviza los bordes de las figuras para darles
un aspecto m�s realista. Adicionalmente existen primitivas para dibujar
rect�ngulos, tri�ngulos, c�rculos y arcos. Las GPU actualmente disponen de gran
cantidad de primitivas, buscando mayor realismo en los efectos.

Las GPU est�n presentes en las tarjetas gr�ficas.


�ndice

1 Historia
2 Diferencias con la CPU
3 Arquitectura de la GPU
4 Programaci�n de la GPU
5 C�lculos de la GPU para prop�sito general
6 Las GPUs y la qu�mica cu�ntica
7 V�ase tambi�n
8 Referencias
9 Enlaces externos

Historia

Las modernas GPU son descendientes de los chips gr�ficos monol�ticos de finales de
la d�cada de 1970 y 1980. Estos chips ten�an soporte BitBLT limitado en la forma de
sprites (si es que ten�an dicho soporte del todo), y usualmente no ten�an soporte
para dibujo de figuras. Algunos GPU pod�an ejecutar varias operaciones en una lista
de display y pod�an usar DMA para reducir la carga en el procesador anfitri�n; un
ejemplo temprano es el coprocesador ANTIC usado en el Atari 800 y el Atari 5200.
Hacia finales de la d�cada de 1980 y principios de la de 1990, los
microprocesadores de prop�sito general de alta velocidad fueron muy populares para
implementar las GPU m�s avanzadas. Muchas tarjetas gr�ficas para PC y estaciones de
trabajo usaban procesadores digitales de se�ales (DSP por sus siglas en ingl�s)
tales como la serie TMS340 de Texas Instruments, para implementar funciones de
dibujo r�pidas y muchas impresoras l�ser conten�an un procesador de barrido de
im�genes "PostScript" (un caso especial de GPU) corriendo en un procesador RISC
como el AMD 29000.
Diferencias con la CPU

Si bien en un computador gen�rico no es posible reemplazar la CPU por una GPU, hoy
en d�a las GPU son muy potentes y pueden incluso superar la frecuencia de reloj de
una CPU antigua (m�s de 1.5 gigahercios). Pero la potencia de las GPU y su veloz
ritmo de desarrollo reciente se deben a dos factores diferentes. El primer factor
es la alta especializaci�n de las GPU, ya que al estar pensadas para desarrollar
una sola tarea, es posible dedicar m�s silicio en su dise�o para llevar a cabo esa
tarea m�s eficientemente. Por ejemplo, las GPU actuales est�n optimizadas para
c�lculo con valores en coma flotante, predominantes en los gr�ficos 3D.

Por otro lado, muchas aplicaciones gr�ficas conllevan un alto grado de paralelismo
inherente, al ser sus unidades fundamentales de c�lculo (v�rtices y p�xeles)
completamente independientes. Por tanto, es una buena estrategia usar la fuerza
bruta en las GPU para completar m�s c�lculos en el mismo tiempo. Los modelos
actuales de GPU suelen tener cientos de procesadores shader unificados que son
capaces de actuar como vertex shaders, y como pixel shaders, o fragment shaders. De
este modo, una frecuencia de reloj de unos 1-1.5 GHz (el est�ndar hoy en d�a en las
GPU de m�s potencia), es muy baja en comparaci�n con lo ofrecido por las CPU (3.8-4
GHz en los modelos m�s potentes, no necesariamente m�s eficientes), se traduce en
una potencia de c�lculo mucho mayor gracias a su arquitectura en paralelo.

Una de las mayores diferencias con la CPU estriba en su arquitectura. A diferencia


del procesador central, que tiene una arquitectura de von Neumann, la GPU se basa
en el Modelo Circulante. Este modelo facilita el procesamiento en paralelo, y la
gran segmentaci�n que posee la GPU para sus tareas.
Arquitectura de la GPU

Una GPU est� altamente segmentada, lo que indica que posee gran cantidad de
unidades funcionales. Estas unidades funcionales se pueden dividir principalmente
en dos: aquellas que procesan v�rtices, y aquellas que procesan p�xeles. Por tanto,
se establecen el v�rtice y el p�xel como las principales unidades que maneja la
GPU.

Adicionalmente, y no con menos importancia, se encuentra la memoria. �sta destaca


por su rapidez, y va a jugar un papel relevante a la hora de almacenar los
resultados intermedios de las operaciones y las texturas que se utilicen.

Inicialmente, a la GPU le llega la informaci�n de la CPU en forma de v�rtices. El


primer tratamiento que reciben estos v�rtices se realiza en el vertex shader. Aqu�
se realizan transformaciones como la rotaci�n o el movimiento de las figuras. Tras
esto, se define la parte de estos v�rtices que se va a ver (clipping), y los
v�rtices se transforman en p�xeles mediante el proceso de rasterizaci�n. Estas
etapas no poseen una carga relevante para la GPU.

Donde s� se encuentra el principal cuello de botella del chip gr�fico es en el


siguiente paso: el pixel shader. Aqu� se realizan las transformaciones referentes a
los p�xeles, tales como la aplicaci�n de texturas. Cuando se ha realizado todo
esto, y antes de almacenar los p�xeles en la cach�, se aplican algunos efectos como
el antialiasing, blending y el efecto niebla.

Otras unidades funcionales llamadas unidades de salida de renderizado (ROP, raster


operations pipeline) toman la informaci�n guardada en la cach� y preparan los
p�xeles para su visualizaci�n. Tambi�n pueden encargarse de aplicar algunos
efectos. Tras esto, se almacena la salida en el b�fer de fotogramas. Ahora hay dos
opciones: o tomar directamente estos p�xeles para su representaci�n en un monitor
digital, o generar una se�al anal�gica a partir de ellos, para monitores
anal�gicos. Si es este �ltimo caso, han de pasar por un DAC, digital-analog
converter, para ser finalmente mostrados en pantalla.
Programaci�n de la GPU

Al inicio, la programaci�n de la GPU se realizaba con llamadas a servicios de


interrupci�n de la BIOS. Tras esto, la programaci�n de la GPU se empez� a hacer en
el lenguaje ensamblador espec�fico a cada modelo. Posteriormente, se introdujo un
nivel m�s entre el hardware y el software, con la creaci�n de interfaces de
programaci�n de aplicaciones (API) espec�ficas para gr�ficos, que proporcionaron un
lenguaje m�s homog�neo para los modelos existentes en el mercado. La primera API
usada ampliamente fue el est�ndar abierto OpenGL (Open Graphics Language), tras el
cual Microsoft desarroll� DirectX.

Tras el desarrollo de estas API, se decidi� crear un lenguaje m�s pr�ximo al


natural utilizado por el programador.

Una caracter�stica a remarcar de las tarjetas gr�ficas NVIDIA, el lenguaje de


programaci�n m�quina debe estar introducido sobre la base de texto unicode 16, dado
a la arquitectura de los microchips que utilizan desde la serie GeForce GTX 700.
C�lculos de la GPU para prop�sito general

Se intenta aprovechar la gran potencia de c�lculo de las GPU para aplicaciones no


relacionadas con los gr�ficos, en lo que recientemente se viene a llamar GPGPU, o
GPU de prop�sito general (general purpose GPU, por sus siglas en ingl�s).
Las GPUs y la qu�mica cu�ntica
La qu�mica cu�ntica es una de las disciplinas donde se requiere de un gran poder de
c�mputo. Por supuesto que han sido reportadas varias aplicaciones donde las GPUs
han sido utilizadas. Varias de esas aplicaciones est�n relacionadas con la soluci�n
de las ecuaciones de Kohn-Sham, dentro de la teor�a de funcionales de la densidad,
y la soluci�n de las ecuaciones de Hartree-Fock.1? Tambi�n han sido reportadas
aplicaciones relacionadas con m�todos basados en la funci�n de onda que estiman la
correlaci�n electr�nica,2? o energ�as de ionizaci�n.3?4?La potencia de las GPUs se
ha evidenciado con aplicaciones relacionadas con el modelo de �tomos en
mol�culas.5?

También podría gustarte