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> 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 />
Ejemplo: copia CPU <strong>GPU</strong>.<br />
Las primitivas utilizadas son las sigui<strong>en</strong>tes:<br />
• cudaMalloc: : asigna size bytes de memoria lineal <strong>en</strong> el dispositivo y vuelve<br />
<strong>en</strong> *devPtr un puntero a la memoria asignada. La memoria asignada está<br />
conv<strong>en</strong>i<strong>en</strong>tem<strong>en</strong>te pre<strong>para</strong>da <strong>para</strong> cualquier tipo de variable. cudaMalloc()<br />
devuelve cudaErrorMemory<br />
cudaErrorMemoryAllocation, la a memoria no se borra. cudaMalloc<br />
() devuelve cudaErrorMemoryAllocation<br />
cudaErrorMemoryAllocation, <strong>en</strong> caso de fallo. La función se<br />
define de la sigui<strong>en</strong>te forma:<br />
cudaError_t cudaMalloc (voiod **devPtr, size_t tamaño)<br />
• cudaMemset: : rell<strong>en</strong>a el primer count byte <strong>del</strong> área de memoria apuntada por<br />
devPtr con el valor cconstante<br />
value. La función se define de la sigui<strong>en</strong>te<br />
forma:<br />
cudaError_t cudaMemset (voiod *devPtr, int valor, size_t nbytes)<br />
• cudaFree: libera ibera el espacio de memoria apuntado por devPtr , que debe haber<br />
sido devuelto por una llamada previa a cudaMalloc () o cudaMallocPitch () ().<br />
De lo contrario devolverá un error. Si devPtr es 0, no realiza realizará ninguna<br />
operación. CudaFree udaFree () devuelve cudaErrorInvalidDevicePointer <strong>en</strong> caso de<br />
fallo. La función se define de la sigui<strong>en</strong>te forma:<br />
cudaError_t cudaFree (void *devPtr)<br />
• cudaMemCpy<br />
cudaMemCpy: copia count bytes desde el área de memoria apuntada por src<br />
al área de memoria apuntada por dst, donde kind es uno de los sigui<strong>en</strong>tes<br />
Trabajo Fin de Máster -88- Sergio Bernabé García