29.04.2013 Views

Implementación en GPU del algoritmo K-Means para ... - UMBC

Implementación en GPU del algoritmo K-Means para ... - UMBC

Implementación en GPU del algoritmo K-Means para ... - UMBC

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Implem<strong>en</strong>tación</strong> <strong>en</strong> <strong>GPU</strong> <strong>del</strong> <strong>algoritmo</strong> K-<strong>Means</strong> <strong>para</strong> procesami<strong>en</strong>to <strong>para</strong>lelo<br />

de imág<strong>en</strong>es de satélite disponibles <strong>en</strong> la herrami<strong>en</strong>ta Google Maps<br />

Un vertex shader es una función que recibe como parámetro un vértice. Sólo<br />

trabaja con un vértice a la vez, y no puede eliminarlo, sólo transformarlo. Para ello,<br />

modifica propiedades <strong>del</strong> mismo <strong>para</strong> que repercutan <strong>en</strong> la geometría <strong>del</strong> objeto al<br />

que pert<strong>en</strong>ece. Con esto se pued<strong>en</strong> lograr ciertos efectos específicos, como los que<br />

ti<strong>en</strong><strong>en</strong> que ver con la deformación <strong>en</strong> tiempo real de un elem<strong>en</strong>to; por ejemplo, el<br />

movimi<strong>en</strong>to de una ola. Donde toma una gran importancia es <strong>en</strong> el tratami<strong>en</strong>to de las<br />

superficies curvas.<br />

En cambio, un píxel shader básicam<strong>en</strong>te especifica el color de un píxel. Este<br />

tratami<strong>en</strong>to individual de los píxeles permite que se realic<strong>en</strong> cálculos principalm<strong>en</strong>te<br />

relacionados con la iluminación <strong>del</strong> elem<strong>en</strong>to <strong>del</strong> cual forman parte <strong>en</strong> la esc<strong>en</strong>a, y <strong>en</strong><br />

tiempo real.<br />

La incorporación de los píxel shaders y vertex shaders permite a los<br />

programadores una mayor libertad a la hora de diseñar gráficos <strong>en</strong> tres dim<strong>en</strong>siones,<br />

ya que puede tratarse a cada píxel y cada vértice por se<strong>para</strong>do. De esta manera, los<br />

efectos especiales y de iluminación pued<strong>en</strong> crearse mucho más detalladam<strong>en</strong>te,<br />

sucedi<strong>en</strong>do lo mismo con la geometría de los objetos.<br />

Pipeline clásico de procesami<strong>en</strong>to <strong>en</strong> una <strong>GPU</strong><br />

Cuando revisamos las arquitecturas hardware, el flujo de datos, y las operaciones<br />

pipeline, a m<strong>en</strong>udo es bu<strong>en</strong>o empezar por el nivel más alto, donde los datos llegan<br />

desde la CPU a la <strong>GPU</strong>, y el proceso se desarrolla hacia abajo a través de múltiples<br />

fases de procesami<strong>en</strong>to hasta que un píxel es dibujado definitivam<strong>en</strong>te <strong>en</strong> la pantalla.<br />

Para situarnos, las <strong>GPU</strong>s han utilizado diseños pipeline tradicionales, como los que<br />

aparec<strong>en</strong> ilustrados <strong>en</strong> la figura 3.3.<br />

Después que la <strong>GPU</strong> recibe los datos vertex (vértices) desde el host (CPU), la<br />

fase vertex se ejecuta <strong>en</strong> primer lugar. La función de fijado transforma la imag<strong>en</strong> y el<br />

hardware de luminosidad operado <strong>en</strong> esta fase se lleva a cabo; <strong>en</strong>tonces los píxeles<br />

shaders programables, y el control de flujo dinámico de los mo<strong>del</strong>os shaders <strong>en</strong>tran<br />

<strong>en</strong> juego. El sigui<strong>en</strong>te paso <strong>en</strong> el pipeline clásico es la configuración, donde los<br />

vértices son <strong>en</strong>samblados d<strong>en</strong>tro de primitivas como triángulos, líneas o puntos. Las<br />

primitivas son convertidas por la fase de “rasterización” <strong>en</strong> fragm<strong>en</strong>tos de píxeles (o<br />

Trabajo Fin de Máster -27- Sergio Bernabé García

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!