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

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

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

Saved successfully!

Ooh no, something went wrong!