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 />

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

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

Saved successfully!

Ooh no, something went wrong!