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 />
modificadores: cudaMemcpyHostToHost, cudaMemcpyHostToDevice,<br />
cudaMemcpyDeviceToHost o cudaMemcpyDeviceToDevice, y especifican la<br />
dirección de la copia. Las áreas de memoria no se pued<strong>en</strong> solapar.<br />
cudaError_t cudaMemcpy (void *dst, const void *src, size_t nbytes, <strong>en</strong>um<br />
MODELO DE PROGRAMACIÓN:<br />
cudaMemcpyKind kind)<br />
Los kernels son funciones invocadas desde el host y ejecutadas <strong>en</strong> <strong>para</strong>lelo sobre<br />
el device empleando <strong>GPU</strong> threads. Características:<br />
• Paralelismo a nivel de datos.<br />
• Agrupación de threads.<br />
• Block: thread ∈ block.<br />
o Compartir datos.<br />
o Sincronizar ejecución.<br />
• Grid: # blocks.<br />
o Dominio de cálculo.<br />
• Tamaño block y grid se decide <strong>en</strong> la invocación <strong>del</strong> kernel.<br />
Otro aspecto utilizado <strong>en</strong> el mo<strong>del</strong>o de programación son las dim<strong>en</strong>siones e<br />
id<strong>en</strong>tificadores:<br />
• Grid (hasta 2D), block (hasta 3D), tipos dim3.<br />
• Ejemplos (ver figura 8.3):<br />
Trabajo Fin de Máster -89- Sergio Bernabé García