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> KK-<strong>Means</strong><br />
<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 MMaps<br />
La solución sería reservar memoria no paginable y emplear la primitiva<br />
cudaMemcpyAsync(…) <strong>en</strong> vez de malloc(…) pero sin abusar:<br />
Otro problema d<strong>en</strong>tro de la memoria global son los accesos ccesos coalesc<strong>en</strong>tes kernel<br />
<strong>GPU</strong> – Memoria <strong>GPU</strong> y viceversa. En este caso los accesos por threads van a ser<br />
agrupados <strong>para</strong> minimizar el número de transfer<strong>en</strong>cias. Vamos a poder t<strong>en</strong>er<br />
segm<strong>en</strong>tos de 32,64 y 128 bits.<br />
Un ejemplo lo podemos t<strong>en</strong>er al realizar la traspuesta de una matriz, <strong>en</strong> donde las<br />
lecturas serán coalesc<strong>en</strong>tes, pero las escrituras NO (ver figura 8.4).<br />
Figura 8.4. Ejemplo: traspuesta de una matriz utilizando memoria global global.<br />
En este caso t<strong>en</strong>dremos que aprovechar la memoria compartida (shared memory)<br />
<strong>para</strong> solucionarlo.<br />
Trabajo Fin de Máster -95- Sergio Bernabé García