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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<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 />
3.2. CUDA: una nueva arquitectura <strong>para</strong> el cálculo <strong>en</strong> la <strong>GPU</strong><br />
CUDA vi<strong>en</strong>e <strong>del</strong> inglés Compute Unified Device Architecture y es una nueva<br />
arquitectura hardware y software, diseñada <strong>para</strong> dar y manejar procesami<strong>en</strong>tos <strong>en</strong> la<br />
<strong>GPU</strong> como un elem<strong>en</strong>to de computación de datos <strong>para</strong>lelos sin la necesidad de<br />
mapearlos a una API de gráficos. Está disponible <strong>para</strong> las versiones GeForce 8<br />
Series, Quadro FX 5600/4600, Tesla y Fermi. El mecanismo de multitarea <strong>del</strong><br />
sistema operativo es responsable de manejar el acceso a la <strong>GPU</strong> mediante CUDA, y<br />
las aplicaciones gráficas funcionan de forma simultánea. A continuación describimos<br />
el pipeline unificado <strong>del</strong> que dispon<strong>en</strong> las actuales <strong>GPU</strong>s de NVIDIA y que puede ser<br />
explotado de forma efici<strong>en</strong>te mediante CUDA, así como la arquitectura completa de<br />
la Tesla C1060. El apartado finaliza describi<strong>en</strong>do los difer<strong>en</strong>tes mo<strong>del</strong>os de<br />
programación <strong>en</strong> CUDA.<br />
Pipeline unificado<br />
A partir <strong>del</strong> mo<strong>del</strong>o de pipeline clásico, con sus flujos de datos empezando <strong>en</strong> lo<br />
más alto, donde los vértices con varios atributos, índices, comandos, y texturas son<br />
pasados a la <strong>GPU</strong> desde la CPU. Las fases de procesami<strong>en</strong>to mayores sigu<strong>en</strong> una<br />
manera lineal segura incluy<strong>en</strong>do vertex shading, píxel shading, operaciones raster,<br />
(que son operaciones a través de las cuales un área espacial queda dividida <strong>en</strong> celdas<br />
regulares, <strong>en</strong> las que cada una de las cuales pres<strong>en</strong>tan unos atributos o valor, como<br />
pued<strong>en</strong> ser la altitud, reflectancia, etc.) y escritura de píxeles <strong>en</strong> el buffer frame.<br />
Con este pipeline unificado y la arquitectura “shader”, el diseño de la <strong>GPU</strong> Tesla<br />
c1060 reduce significativam<strong>en</strong>te el número de fases <strong>del</strong> pipeline y cambia el flujo<br />
secu<strong>en</strong>cial <strong>para</strong> estar más ori<strong>en</strong>tado a bucle. Las <strong>en</strong>tradas son alim<strong>en</strong>tadas <strong>en</strong> la parte<br />
alta <strong>del</strong> núcleo shader unificado, y las salidas son escritas <strong>en</strong> registros y <strong>en</strong>tonces<br />
vuelv<strong>en</strong> otra vez a la parte alta <strong>del</strong> núcleo shader <strong>para</strong> la próxima operación. Como<br />
resultado, <strong>en</strong> el diagrama <strong>GPU</strong> unificado g<strong>en</strong>eralizado que se muestra <strong>en</strong> la<br />
figura 3.5, los flujos de datos bajan secu<strong>en</strong>cialm<strong>en</strong>te por el pipeline a través de<br />
difer<strong>en</strong>tes tipos “shader”. La figura de la derecha repres<strong>en</strong>ta un núcleo “shader”<br />
unificado con uno o más procesadores “shader” unificados estandarizados.<br />
Trabajo Fin de Máster -31- Sergio Bernabé García