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 />
• En cada SM la memoria está dividida <strong>en</strong> 16 bloques.<br />
• Las palabras de 32 bits se asignan a bancos sucesivam<strong>en</strong>te.<br />
• Cada bloque permite una lectura/escritura por ciclo.<br />
• Accesos simultáneos al mismo banco produc<strong>en</strong> un conflicto:<br />
o Serialización de los accesos.<br />
o Broadcast desde un banco no p<strong>en</strong>aliza.<br />
Texturas y memoria constante: <strong>en</strong> memoria global, <strong>para</strong> lectura:<br />
• Caché 2D <strong>en</strong> SM: b<strong>en</strong>eficio si coalesc<strong>en</strong>cia es problemática de conseguir.<br />
• Permite interpolación de valores por hardware.<br />
• Modos de acceso: Clamp (to edge), Repeat, …<br />
2) Evitar la diverg<strong>en</strong>cia de threads <strong>en</strong> un warp.<br />
Características de los Warp:<br />
• Grupos de 32 threads.<br />
o Concurr<strong>en</strong>tes SM.<br />
• Branching: if, switch, do, for, while.<br />
• Si threads <strong>en</strong> warp toman distintos caminos serialización.<br />
Evitar diverg<strong>en</strong>cias:<br />
• Con diverg<strong>en</strong>cia: if (threadIdx.x>4) {}<br />
• Sin diverg<strong>en</strong>cia: if (threadIdx.x/WARP_SIZE >= 1) {}<br />
Trabajo Fin de Máster -97- Sergio Bernabé García