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
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 />
posición ya sea de memoria global o compartida por más de un hilo de warp, el<br />
número de de escrituras serializadas que ocurran <strong>en</strong> esa posición así como el ord<strong>en</strong><br />
de las escrituras es indefinido, pero se garantiza que al m<strong>en</strong>os una escritura t<strong>en</strong>ga<br />
éxito. Si una instrucción atómica ejecutada por un warp lee, modifica o escribe <strong>en</strong><br />
una posición de memoria ya sea global o compartida por más de un hilo <strong>del</strong> warp,<br />
cada lectura, modificación o escritura <strong>en</strong> la posición ocurre de forma serializada<br />
aunque el ord<strong>en</strong> es indefinido.<br />
Especificaciones g<strong>en</strong>erales<br />
A continuación <strong>en</strong> la tabla 3.3 se listan una serie de especificaciones g<strong>en</strong>erales<br />
que se deb<strong>en</strong> t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta a la hora de programar una <strong>GPU</strong> con CUDA <strong>para</strong> lograr<br />
una ejecución más efici<strong>en</strong>te <strong>en</strong> función de la capacidad de cómputo (Compute<br />
capability) de la <strong>GPU</strong>.<br />
Parámetro Valor según g<strong>en</strong>er. CPU<br />
CUDA Compute<br />
Capabilities<br />
1.0 y 1.1 1.2 y 1.3 Fermi<br />
Limitación Impacto<br />
Multiprocesadores<br />
/ <strong>GPU</strong><br />
16 30 16 HW. Escalabilidad<br />
Procesadores /<br />
Multiprocesador<br />
8 8 32 HW. Escalabilidad<br />
Hilos / Warp 32 32 32 SW. Throughput<br />
Bloques de hilos /<br />
Multiprocesador<br />
8 8 8 SW. Throughput<br />
Hilos / Bloque 512 512 512 SW. Paralelismo<br />
Hilos /<br />
Multiprocesador<br />
768 1024 1536 SW. Paralelismo<br />
Registros de 32<br />
bits / Multiproc.<br />
8192 16384 4096 HW. Working Set<br />
Memoria<br />
compartida /<br />
Multiproc.<br />
16384 16384<br />
16 K<br />
48 K<br />
HW. Working Set<br />
Tabla 3.3. Recursos y limitaciones según la <strong>GPU</strong> que utilicemos <strong>para</strong> programar CUDA.<br />
A continuación <strong>en</strong> la tabla 3.4 se muestra la capacidad de cómputo y el número<br />
de multiprocesadores de cada <strong>GPU</strong> de NVidia.<br />
Trabajo Fin de Máster -41- Sergio Bernabé García