From 11c170c185f259532c227a7543e4113f3e249da8 Mon Sep 17 00:00:00 2001 From: Apostolof Date: Fri, 26 Jan 2018 18:40:53 +0200 Subject: [PATCH] Add meanshift_gpu_utils header and implementation, minor fixes --- mean_shift_cuda/Makefile | 2 +- mean_shift_cuda/meanshift | Bin 602080 -> 0 bytes mean_shift_cuda/meanshift.cu | 1 + mean_shift_cuda/meanshift_gpu_utils.cu | 308 ++++++++++++++++++++++++ mean_shift_cuda/meanshift_gpu_utils.h | 53 +++++ mean_shift_cuda/meanshift_kernels.cu | 67 ++++-- mean_shift_cuda/meanshift_kernels.h | 11 +- mean_shift_cuda/meanshift_utils.cu | 318 +------------------------ mean_shift_cuda/meanshift_utils.h | 49 +--- 9 files changed, 419 insertions(+), 390 deletions(-) delete mode 100644 mean_shift_cuda/meanshift create mode 100644 mean_shift_cuda/meanshift_gpu_utils.cu create mode 100644 mean_shift_cuda/meanshift_gpu_utils.h diff --git a/mean_shift_cuda/Makefile b/mean_shift_cuda/Makefile index b2fb2c8..6a10a8f 100644 --- a/mean_shift_cuda/Makefile +++ b/mean_shift_cuda/Makefile @@ -11,7 +11,7 @@ C_FLAGS = -lm -O3 -I. COMPILE_FLAGS = $(HOST_COMPILER) -x cu $(CUDA_FLAGS) -dc $(C_FLAGS) LINK_FLAGS = $(HOST_COMPILER) $(CUDA_FLAGS) $(C_FLAGS) -OBJ = meanshift.o meanshift_utils.o meanshift_kernels.o +OBJ = meanshift.o meanshift_utils.o meanshift_gpu_utils.o meanshift_kernels.o DEPS = meanshift_utils.h meanshift_kernels.h RM = rm -f diff --git a/mean_shift_cuda/meanshift b/mean_shift_cuda/meanshift deleted file mode 100644 index dc21f7afa3128f58bbee757237b0d5b695b6b13b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602080 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 z

_uL?1^Fo9I;y^nVk*7CmI5x1e{J=p{RFz# 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 diff --git a/mean_shift_cuda/meanshift.cu b/mean_shift_cuda/meanshift.cu index 778d081..dd1b2e5 100644 --- a/mean_shift_cuda/meanshift.cu +++ b/mean_shift_cuda/meanshift.cu @@ -3,6 +3,7 @@ #include #include "meanshift_utils.h" +#include "meanshift_gpu_utils.h" int DEVIATION = 1; int NUMBER_OF_POINTS = 600; diff --git a/mean_shift_cuda/meanshift_gpu_utils.cu b/mean_shift_cuda/meanshift_gpu_utils.cu new file mode 100644 index 0000000..0c5c95e --- /dev/null +++ b/mean_shift_cuda/meanshift_gpu_utils.cu @@ -0,0 +1,308 @@ +#include +#include +#include +#include +#include + +#include "meanshift_utils.h" +#include "meanshift_gpu_utils.h" + +cudaDeviceProp device_properties; + +//Based on https://stackoverflow.com/a/28113186 +//Pio psagmeno link https://www.cs.virginia.edu/~csadmin/wiki/index.php/CUDA_Support/Choosing_a_GPU +void set_GPU(){ + int devices_count = 0, max_multiprocessors = 0, max_device = 0; + + // gets devices count checking for errors like no devices or no drivers to check for + // devices available + gpuErrchk( cudaGetDeviceCount(&devices_count) ); + for(int device_index = 0; device_index < devices_count; ++device_index){ + // gets current index device's properties + cudaDeviceProp this_device_properties; + gpuErrchk( cudaGetDeviceProperties(&this_device_properties, device_index) ); + + // stores best available device's index + // only devices with compute capability >= 2.0 are able to run the code + if (max_multiprocessors < this_device_properties.multiProcessorCount + && this_device_properties.major >= 2 && this_device_properties.minor >= 0){ + // stores devices properties for later use + device_properties = this_device_properties; + max_multiprocessors = this_device_properties.multiProcessorCount; + max_device = device_index; + } + } + // sets the device + gpuErrchk( cudaSetDevice(max_device) ); + if (params.verbose){ + printf("Device chosen is \"%s\"\n" + "Device has %d multi processors and compute capability %d.%d\n" + "Max threads per block supported are %d\n\n" + , device_properties.name + , device_properties.multiProcessorCount, device_properties.major, device_properties.minor + , device_properties.maxThreadsPerBlock); + } +} + +int meanshift(double **original_points, double ***shifted_points, int deviation + , parameters *opt){ + // host variables + int size = 0; + static int iteration = 0; + static double **kernel_matrix, *denominator, **mean_shift_vector; + double **new_shift; + + // device variables + static Matrix d_original_points, d_shifted_points, d_kernel_matrix, d_denominator, + d_mean_shift_vector; + Matrix d_new_shift; + + // allocates memory and copies original points on first iteration + if (iteration == 0 || (*shifted_points) == NULL){ + // allocates memory for shifted points array and copies original points into it + (*shifted_points) = alloc_double(NUMBER_OF_POINTS, DIMENSIONS); + duplicate(original_points, NUMBER_OF_POINTS, DIMENSIONS, shifted_points); + + // allocates memory for mean shift vector + mean_shift_vector = alloc_double(NUMBER_OF_POINTS, DIMENSIONS); + // initializes elements of mean_shift_vector to inf + for (int i=0;i opt->epsilon) { + ++iteration; + meanshift(original_points, shifted_points, deviation, opt); + } + + if (iteration == 0){ + // cleans up allocations + free(mean_shift_vector[0]); + free(mean_shift_vector); + free(kernel_matrix[0]); + free(kernel_matrix); + free(denominator); + + free_device_memory(d_original_points, d_kernel_matrix, d_denominator, d_new_shift); + } + + return iteration; +} + +void init_device_memory(double **original_points, double **shifted_points, + Matrix *d_original_points, Matrix *d_shifted_points, Matrix *d_kernel_matrix, + Matrix *d_denominator, Matrix *d_mean_shift_vector){ + int size; + + // allocates memory for original_points in GPU and copies the array + d_original_points->width = DIMENSIONS; + d_original_points->height = NUMBER_OF_POINTS; + size = NUMBER_OF_POINTS * DIMENSIONS * sizeof(double); + gpuErrchk( cudaMalloc(&(d_original_points->elements), size) ); + gpuErrchk( cudaMemcpy(d_original_points->elements, &(original_points[0][0]) + , size, cudaMemcpyHostToDevice) ); + + // allocates memory for shifted_points in GPU and copies the array + d_shifted_points->width = DIMENSIONS; + d_shifted_points->height = NUMBER_OF_POINTS; + size = DIMENSIONS * NUMBER_OF_POINTS * sizeof(double); + gpuErrchk( cudaMalloc(&(d_shifted_points->elements), size) ); + gpuErrchk( cudaMemcpy(d_shifted_points->elements, &(shifted_points[0][0]) + , size, cudaMemcpyHostToDevice) ); + + // allocates memory for kernel_matrix in GPU + d_kernel_matrix->width = NUMBER_OF_POINTS; + d_kernel_matrix->height = NUMBER_OF_POINTS; + size = NUMBER_OF_POINTS * NUMBER_OF_POINTS * sizeof(double); + gpuErrchk( cudaMalloc(&(d_kernel_matrix->elements), size) ); + + // allocates memory for denominator in GPU + d_denominator->width = 1; + d_denominator->height = NUMBER_OF_POINTS; + size = NUMBER_OF_POINTS * sizeof(double); + gpuErrchk( cudaMalloc(&(d_denominator->elements), size) ); + + // allocates memory for mean_shift_vector in GPU + d_mean_shift_vector->width = DIMENSIONS; + d_mean_shift_vector->height = NUMBER_OF_POINTS; + size = NUMBER_OF_POINTS * DIMENSIONS * sizeof(double); + gpuErrchk( cudaMalloc(&(d_mean_shift_vector->elements), size) ); +} + +void calculate_kernel_matrix(Matrix d_shifted_points, Matrix d_original_points, + Matrix d_kernel_matrix, double deviation, double ***kernel_matrix){ + int size; + static bool first_iter = true; + // gets max block size supported from the device + static int max_block_size = device_properties.maxThreadsPerBlock; + static int requested_block_size = (int)sqrt(max_block_size); + bool block_size_too_big = true; + + dim3 dimBlock; + dim3 dimGrid; + do { + dimBlock.x = requested_block_size; + dimBlock.y = requested_block_size; + dimGrid.x = (d_kernel_matrix.height + dimBlock.x - 1) / dimBlock.x; + dimGrid.y = (d_kernel_matrix.width + dimBlock.y - 1) / dimBlock.y; + + calculate_kernel_matrix_kernel<<>>(d_shifted_points, d_original_points + , deviation, d_kernel_matrix); + if (cudaGetLastError() != cudaSuccess){ + --requested_block_size; + } else { + block_size_too_big = false; + gpuErrchk( cudaDeviceSynchronize() ); + } + } while(block_size_too_big); + + if (first_iter && params.verbose){ + printf("calculate_kernel_matrix_kernel called with:\n"); + printf("dimBlock.x = %d, dimBlock.y = %d\n", dimBlock.x, dimBlock.y); + printf("dimGrid.x = %d, dimGrid.y = %d\n\n", dimGrid.x, dimGrid.y); + first_iter = false; + } + + size = NUMBER_OF_POINTS * NUMBER_OF_POINTS * sizeof(double); + gpuErrchk( cudaMemcpy(&((*kernel_matrix)[0][0]), d_kernel_matrix.elements + , size, cudaMemcpyDeviceToHost) ); +} + +void calculate_denominator(Matrix d_kernel_matrix, Matrix d_denominator, double **denominator){ + int size; + static bool first_iter = true; + // gets max block size supported from the device + static int requested_block_size = device_properties.maxThreadsPerBlock; + bool block_size_too_big = true; + + dim3 dimBlock; + dim3 dimGrid; + do { + dimBlock.x = requested_block_size; + dimBlock.y = 1; + dimGrid.x = (d_kernel_matrix.height + dimBlock.x - 1) / dimBlock.x; + dimGrid.y = 1; + + denominator_kernel<<>>(d_denominator, d_kernel_matrix); + if (cudaGetLastError() != cudaSuccess){ + --requested_block_size; + } else { + block_size_too_big = false; + gpuErrchk( cudaDeviceSynchronize() ); + } + } while(block_size_too_big); + + if (first_iter && params.verbose){ + printf("calculate_denominator called with:\n"); + printf("dimBlock.x = %d, dimBlock.y = %d\n", dimBlock.x, dimBlock.y); + printf("dimGrid.x = %d, dimGrid.y = %d\n\n", dimGrid.x, dimGrid.y); + first_iter = false; + } + + size = NUMBER_OF_POINTS * sizeof(double); + gpuErrchk( cudaMemcpy(&((*denominator)[0]), d_denominator.elements + , size, cudaMemcpyDeviceToHost) ); +} + +void shift_points(Matrix d_kernel_matrix, Matrix d_original_points, Matrix d_shifted_points, + Matrix d_new_shift, Matrix d_denominator, Matrix d_mean_shift_vector, double **kernel_matrix, + double **original_points, double ***new_shift, double ***mean_shift_vector){ + int size; + static bool first_iter = true; + // gets max block size supported from the device + static int max_block_size = device_properties.maxThreadsPerBlock; + static int requested_block_size = (int)(max_block_size / d_new_shift.width); + bool block_size_too_big = true; + + dim3 dimBlock; + dim3 dimGrid; + do { + dimBlock.x = requested_block_size; + dimBlock.y = d_new_shift.width; + dimGrid.x = (d_denominator.height + dimBlock.x - 1) / dimBlock.x; + dimGrid.y = 1; + + shift_points_kernel<<>>(d_original_points, d_kernel_matrix, d_shifted_points, + d_new_shift, d_denominator, d_mean_shift_vector); + if (cudaGetLastError() != cudaSuccess){ + --requested_block_size; + } else { + block_size_too_big = false; + gpuErrchk( cudaDeviceSynchronize() ); + } + } while(block_size_too_big); + + if (first_iter && params.verbose){ + printf("shift_points_kernel called with:\n"); + printf("dimBlock.x = %d, dimBlock.y = %d\n", dimBlock.x, dimBlock.y); + printf("dimGrid.x = %d, dimGrid.y = %d\n\n", dimGrid.x, dimGrid.y); + first_iter = false; + } + + size = NUMBER_OF_POINTS * DIMENSIONS * sizeof(double); + gpuErrchk( cudaMemcpy(&((*new_shift)[0][0]), d_new_shift.elements + , size, cudaMemcpyDeviceToHost) ); + gpuErrchk( cudaMemcpy(&((*mean_shift_vector)[0][0]), d_mean_shift_vector.elements + , size, cudaMemcpyDeviceToHost) ); +} + +void free_device_memory(Matrix d_original_points, Matrix d_kernel_matrix, Matrix d_denominator, + Matrix d_new_shift){ + // frees all memory previously allocated in device + gpuErrchk( cudaFree(d_original_points.elements) ); + gpuErrchk( cudaFree(d_kernel_matrix.elements) ); + gpuErrchk( cudaFree(d_denominator.elements) ); + gpuErrchk( cudaFree(d_new_shift.elements) ); +} \ No newline at end of file diff --git a/mean_shift_cuda/meanshift_gpu_utils.h b/mean_shift_cuda/meanshift_gpu_utils.h new file mode 100644 index 0000000..b357bba --- /dev/null +++ b/mean_shift_cuda/meanshift_gpu_utils.h @@ -0,0 +1,53 @@ +#ifndef SERIAL_GPU_UTILS_H /* Include guard */ +#define SERIAL_GPU_UTILS_H + +#include "meanshift_kernels.h" + +//GPU error check snippet taken from: +//https://stackoverflow.com/a/14038590 +#define gpuErrchk(ans) { gpuAssert((ans), __FILE__, __LINE__); } +inline void gpuAssert(cudaError_t code, const char *file, int line, bool abort=true){ + if (code != cudaSuccess){ + fprintf(stderr,"GPUassert: %s %s %d\n", cudaGetErrorString(code), file, line); + if (abort) exit(code); + } +} + +/* Global variables */ +extern int DEVIATION; +extern int NUMBER_OF_POINTS; +extern int DIMENSIONS; +extern char* POINTS_FILENAME; +extern char* LABELS_FILENAME; +extern parameters params; +extern cudaDeviceProp device_properties; + +void set_GPU(); + +//Function meanshift recursively shifts original points according to th +//mean-shift algorithm saving the result to shiftedPoints. Struct opt has user +//options, h is the desirable deviation. +int meanshift(double **original_points, double ***shifted_points, int h + , parameters *opt); + +void init_device_memory(double **original_points, double **shifted_points, + Matrix *d_original_points, Matrix *d_shifted_points, + Matrix *d_kernel_matrix, Matrix *d_denominator, Matrix *d_new_shift); + +void calculate_kernel_matrix(Matrix d_shifted_points, Matrix d_original_points, + Matrix d_kernel_matrix, double deviation, double ***kernel_matrix); + +//Function multiply allocates memory in GPU, sends the data and calls the +//multiply kernel function. +void shift_points(Matrix d_kernel_matrix, Matrix d_original_points, Matrix d_shifted_points, + Matrix d_new_shift, Matrix d_denominator, Matrix d_mean_shift_vector, double **kernel_matrix, + double **original_points, double ***new_shift, double ***mean_shift_vector); + +void free_device_memory(Matrix d_original_points, Matrix d_kernel_matrix, Matrix d_denominator, + Matrix d_new_shift); + +//Function calculate_denominator allocates memory in GPU, sends the data and calls the +//denominator kernel function. +void calculate_denominator(Matrix d_kernel_matrix, Matrix d_denominator, double **denominator); + +#endif //SERIAL_GPU_UTILS_H \ No newline at end of file diff --git a/mean_shift_cuda/meanshift_kernels.cu b/mean_shift_cuda/meanshift_kernels.cu index 16b8710..04ff883 100644 --- a/mean_shift_cuda/meanshift_kernels.cu +++ b/mean_shift_cuda/meanshift_kernels.cu @@ -1,28 +1,14 @@ #include "meanshift_kernels.h" #include -__global__ void multiply_kernel(Matrix matrix1, Matrix matrix2, Matrix output){ - // Each thread computes one element of output - // by accumulating results into cell_value - double cell_value = 0; +__global__ void calculate_kernel_matrix_kernel(Matrix shifted_points, Matrix original_points, + double deviation, Matrix kernel_matrix){ + // each thread calculates one element of kernel_matrix int row = blockIdx.x * blockDim.x + threadIdx.x; int col = blockIdx.y * blockDim.y + threadIdx.y; - if (row + col < output.height * output.width){ - for (int element_index = 0; element_index < matrix1.width; ++element_index){ - cell_value += matrix1.elements[row * matrix1.width + element_index] - * matrix2.elements[element_index * matrix2.width + col]; - } - output.elements[row * output.width + col] = cell_value; - } -} - -__global__ void calculate_kernel_matrix_kernel(Matrix shifted_points, Matrix original_points - , double deviation, Matrix kernel_matrix){ - // Each thread calculates one element of kernel_matrix - int row = blockIdx.x * blockDim.x + threadIdx.x; - int col = blockIdx.y * blockDim.y + threadIdx.y; - if (row * kernel_matrix.width + col > kernel_matrix.width * kernel_matrix.height){ + // performs calculations only if thread's indexes are within matrix bounds + if (row * kernel_matrix.width + col >= kernel_matrix.width * kernel_matrix.height){ return; } @@ -48,17 +34,48 @@ __global__ void calculate_kernel_matrix_kernel(Matrix shifted_points, Matrix ori } } -__global__ void denominator_kernel(Matrix denominator, Matrix kernel_matrix){ - +__global__ void shift_points_kernel(Matrix original_points, Matrix kernel_matrix, Matrix shifted_points, + Matrix new_shift, Matrix denominator, Matrix mean_shift_vector){ + // each thread computes one element of new_shift + // by accumulating results into cell_value + double cell_value = 0; int row = blockIdx.x * blockDim.x + threadIdx.x; int col = blockIdx.y * blockDim.y + threadIdx.y; - - if (row * denominator.width + col > denominator.width * denominator.height){ + // performs calculations only if thread's indexes are within matrix bounds + if (row * new_shift.width + col >= new_shift.width * new_shift.height){ return; } - denominator.elements[col]=0; - denominator.elements[row] += kernel_matrix.elements[row*denominator.width + col]; + // calculates new_shift + // builds nominator by multiplying kernel_matrix and original_points + for (int element_index = 0; element_index < kernel_matrix.width; ++element_index){ + cell_value += kernel_matrix.elements[row * kernel_matrix.width + element_index] + * original_points.elements[element_index * original_points.width + col]; + } + // new_shift elements are calculated by dividing with the denominator + new_shift.elements[row * new_shift.width + col] = + cell_value / denominator.elements[row]; + + // calculates mean-shift vector + mean_shift_vector.elements[row * new_shift.width + col] = + new_shift.elements[row * new_shift.width + col] - + shifted_points.elements[row * new_shift.width + col]; +} + +__global__ void denominator_kernel(Matrix denominator, Matrix kernel_matrix){ + // each thread computes one element of denominator_kernel + // by accumulating results into cell_value + double cell_value = 0; + int row = blockIdx.x * blockDim.x + threadIdx.x; + + // performs calculations only if thread's indexes are within matrix bounds + if (row >= denominator.height){ + return; + } + for (int column = 0; column < kernel_matrix.width; ++column){ + cell_value += kernel_matrix.elements[row * kernel_matrix.width + column]; + } + denominator.elements[row] = cell_value; } \ No newline at end of file diff --git a/mean_shift_cuda/meanshift_kernels.h b/mean_shift_cuda/meanshift_kernels.h index 0f9398d..d33641e 100644 --- a/mean_shift_cuda/meanshift_kernels.h +++ b/mean_shift_cuda/meanshift_kernels.h @@ -1,17 +1,18 @@ #ifndef SERIAL_KERNELS_H /* Include guard */ #define SERIAL_KERNELS_H -typedef struct{ +typedef struct { int width; int height; double *elements; } Matrix; -//Function multiply_kernel calculates the product of matrices 1 and 2 into output. -__global__ void multiply_kernel(Matrix matrix1, Matrix matrix2, Matrix output); +__global__ void calculate_kernel_matrix_kernel(Matrix shifted_points, Matrix original_points, + double deviation, Matrix kernel_matrix); -__global__ void calculate_kernel_matrix_kernel(Matrix shifted_points, Matrix original_points - , double deviation, Matrix kernel_matrix); +//Function multiply_kernel calculates the product of matrices 1 and 2 into output. +__global__ void shift_points_kernel(Matrix original_points, Matrix kernel_matrix, Matrix shifted_points, + Matrix new_shift, Matrix denominator, Matrix mean_shift_vector); __global__ void denominator_kernel(Matrix denominator, Matrix kernel_matrix); diff --git a/mean_shift_cuda/meanshift_utils.cu b/mean_shift_cuda/meanshift_utils.cu index f636dc7..60b6cf7 100644 --- a/mean_shift_cuda/meanshift_utils.cu +++ b/mean_shift_cuda/meanshift_utils.cu @@ -5,12 +5,10 @@ #include #include "meanshift_utils.h" -#include "meanshift_kernels.h" +#include "meanshift_gpu_utils.h" #define OUTPUT_PREFIX "../output/output_" -cudaDeviceProp device_properties; - void get_args(int argc, char **argv, parameters *params){ if (argc < 7) { printf("Usage: %s h e N D Pd Pl\nwhere:\n" @@ -61,7 +59,7 @@ void get_args(int argc, char **argv, parameters *params){ void init(double ***vectors, char **labels){ int bytes_read = 0; - set_Gpu(); + set_GPU(); if (params.verbose){ printf("Reading dataset and labels...\n"); @@ -72,7 +70,7 @@ void init(double ***vectors, char **labels){ points_file = fopen(POINTS_FILENAME, "rb"); if (points_file != NULL){ // allocates memory for the array - (*vectors) = alloc_2d_double(NUMBER_OF_POINTS, DIMENSIONS); + (*vectors) = alloc_double(NUMBER_OF_POINTS, DIMENSIONS); // reads vectors dataset from file for (int i=0; i= 2.0 are able to run the code - if (max_multiprocessors < this_device_properties.multiProcessorCount - && this_device_properties.major >= 2 && this_device_properties.minor >= 0){ - // stores devices properties for later use - device_properties = this_device_properties; - max_multiprocessors = this_device_properties.multiProcessorCount; - max_device = device_index; - } - } - // sets the device - gpuErrchk( cudaSetDevice(max_device) ); - if (params.verbose){ - printf("Device chosen is \"%s\"\n" - "Device has %d multi processors and compute capability %d.%d\n" - "Max threads per block supported are %d\n\n" - , device_properties.name - , device_properties.multiProcessorCount, device_properties.major, device_properties.minor - , device_properties.maxThreadsPerBlock); - } -} - -int meanshift(double **original_points, double ***shifted_points, int deviation - , parameters *opt){ - static int iteration = 0; - static double **mean_shift_vector, **kernel_matrix, *denominator; - - // allocates memory and copies original points on first iteration - if (iteration == 0 || (*shifted_points) == NULL){ - (*shifted_points) = alloc_2d_double(NUMBER_OF_POINTS, DIMENSIONS); - duplicate(original_points, NUMBER_OF_POINTS, DIMENSIONS, shifted_points); - - // allocates memory for mean shift vector - mean_shift_vector = alloc_2d_double(NUMBER_OF_POINTS, DIMENSIONS); - // initializes elements of mean_shift_vector to inf - for (int i=0;i opt->epsilon) { - ++iteration; - meanshift(original_points, shifted_points, deviation, opt); - } - - if (iteration == 0){ - // cleans up allocations - free(mean_shift_vector[0]); - free(mean_shift_vector); - free(kernel_matrix[0]); - free(kernel_matrix); - free(denominator); - } - - return iteration; -} - - +// TODO check why there's is a difference in the norm calculate in matlab double norm(double **matrix, int rows, int cols){ double sum=0, temp_mul=0; for (int i=0; i>>(d_shifted_points, d_original_points - , deviation, d_kernel_matrix); - if (cudaGetLastError() != cudaSuccess){ - --requested_block_size; - } else { - block_size_too_big = false; - gpuErrchk( cudaDeviceSynchronize() ); - } - } while(block_size_too_big); - - if (first_iter && params.verbose){ - printf("calculate_kernel_matrix_kernel called with:\n"); - printf("dimBlock.x = %d, dimBlock.y = %d\n", dimBlock.x, dimBlock.y); - printf("dimGrid.x = %d, dimGrid.y = %d\n\n", dimGrid.x, dimGrid.y); - first_iter = false; - } - - size = NUMBER_OF_POINTS * NUMBER_OF_POINTS * sizeof(double); - gpuErrchk( cudaMemcpy(&((*kernel_matrix)[0][0]), d_kernel_matrix.elements - , size, cudaMemcpyDeviceToHost) ); - - gpuErrchk( cudaFree(d_shifted_points.elements) ); - gpuErrchk( cudaFree(d_original_points.elements) ); - gpuErrchk( cudaFree(d_kernel_matrix.elements) ); -} - - -void multiply(double **kernel_matrix, double **original_points, double ***new_shift){ - static bool first_iter = true; - - // allocates memory for kernel_matrix in GPU and copies the array - Matrix d_kernel_matrix; - d_kernel_matrix.width = NUMBER_OF_POINTS; - d_kernel_matrix.height = NUMBER_OF_POINTS; - int size = NUMBER_OF_POINTS * NUMBER_OF_POINTS * sizeof(double); - gpuErrchk( cudaMalloc(&d_kernel_matrix.elements, size) ); - gpuErrchk( cudaMemcpy(d_kernel_matrix.elements, &(kernel_matrix[0][0]) - , size, cudaMemcpyHostToDevice) ); - - // allocates memory for original_points in GPU and copies the array - Matrix d_original_points; - d_original_points.width = DIMENSIONS; - d_original_points.height = NUMBER_OF_POINTS; - size = NUMBER_OF_POINTS * DIMENSIONS * sizeof(double); - gpuErrchk( cudaMalloc(&d_original_points.elements, size) ); - gpuErrchk( cudaMemcpy(d_original_points.elements, &(original_points[0][0]) - , size, cudaMemcpyHostToDevice) ); - - // allocates memory for new_shift in GPU - Matrix d_new_shift; - d_new_shift.width = DIMENSIONS; - d_new_shift.height = NUMBER_OF_POINTS; - size = NUMBER_OF_POINTS * DIMENSIONS * sizeof(double); - gpuErrchk( cudaMalloc(&d_new_shift.elements, size) ); - - // get max sizes supported from the device - int max_block_size = device_properties.maxThreadsPerBlock; - dim3 dimBlock((d_new_shift.height < sqrt(max_block_size)) ? d_new_shift.height : sqrt(max_block_size) - , (d_new_shift.width < sqrt(max_block_size)) ? d_new_shift.width : sqrt(max_block_size)); - dim3 dimGrid((d_new_shift.height + dimBlock.x - 1) / dimBlock.x - , (d_new_shift.width + dimBlock.y - 1) / dimBlock.y); - - if (first_iter && params.verbose){ - printf("multiply_kernel called with:\n"); - printf("dimBlock.x = %d, dimBlock.y = %d\n", dimBlock.x, dimBlock.y); - printf("dimGrid.x = %d, dimGrid.y = %d\n\n", dimGrid.x, dimGrid.y); - first_iter = false; - } - - multiply_kernel<<>>(d_kernel_matrix, d_original_points, d_new_shift); - gpuErrchk( cudaPeekAtLastError() ); - gpuErrchk( cudaDeviceSynchronize() ); - - size = NUMBER_OF_POINTS * DIMENSIONS * sizeof(double); - gpuErrchk( cudaMemcpy(&((*new_shift)[0][0]), d_new_shift.elements - , size, cudaMemcpyDeviceToHost) ); - - gpuErrchk( cudaFree(d_kernel_matrix.elements) ); - gpuErrchk( cudaFree(d_original_points.elements) ); - gpuErrchk( cudaFree(d_new_shift.elements) ); -} - -double calculateDistance(double *y, double *x){ - double sum = 0, dif; - for (int i=0; i>>(d_denominator_matrix, d_kernel_matrix); - gpuErrchk( cudaPeekAtLastError() ); - gpuErrchk( cudaDeviceSynchronize() ); - - - size = NUMBER_OF_POINTS * sizeof(double); - double ** denominator = (double**)malloc(size); - gpuErrchk( cudaMemcpy(&((*denominator)[0]), d_denominator_matrix.elements - ,size, cudaMemcpyDeviceToHost) ); - - gpuErrchk( cudaFree(d_kernel_matrix.elements) ); - gpuErrchk( cudaFree(d_denominator_matrix.elements) ); - - return (*denominator); } \ No newline at end of file diff --git a/mean_shift_cuda/meanshift_utils.h b/mean_shift_cuda/meanshift_utils.h index fbf4394..ce6c0cd 100644 --- a/mean_shift_cuda/meanshift_utils.h +++ b/mean_shift_cuda/meanshift_utils.h @@ -3,16 +3,6 @@ #include -//GPU error check snippet taken from: -//https://stackoverflow.com/a/14038590 -#define gpuErrchk(ans) { gpuAssert((ans), __FILE__, __LINE__); } -inline void gpuAssert(cudaError_t code, const char *file, int line, bool abort=true){ - if (code != cudaSuccess){ - fprintf(stderr,"GPUassert: %s %s %d\n", cudaGetErrorString(code), file, line); - if (abort) exit(code); - } -} - /* Structs */ typedef struct parameters { double epsilon; @@ -20,45 +10,17 @@ typedef struct parameters { bool display; } parameters; -/* Global variables */ -extern int DEVIATION; -extern int NUMBER_OF_POINTS; -extern int DIMENSIONS; -extern char* POINTS_FILENAME; -extern char* LABELS_FILENAME; -extern parameters params; -extern cudaDeviceProp device_properties; - //Function get_args parses command line arguments. void get_args(int argc, char **argv, parameters *params); //Function init reads the dataset and label arrays from the corresponding files. void init(double ***vectors, char **labels); -void set_Gpu(); - -//Function meanshift recursively shifts original points according to th -//mean-shift algorithm saving the result to shiftedPoints. Struct opt has user -//options, h is the desirable deviation. -int meanshift(double **original_points, double ***shifted_points, int h - , parameters *opt); - //Function norm returns the second norm of matrix of dimensions rowsXcols. double norm(double **matrix, int rows, int cols); -void calculate_kernel_matrix(double **shifted_points, double **original_points, double deviation - , double ***kernel_matrix); - -//Function multiply allocates memory in GPU, sends the data and calls the -//multiply kernel function. -void multiply(double **kernel_matrix, double **original_points - , double ***new_shift); - -//Function calculateDistance returns the distance between x and y vectors. -double calculateDistance(double *y, double *x); - -//Function alloc_2d_double allocates rows*cols bytes of continuous memory. -double **alloc_2d_double(int rows, int cols); +//Function alloc_double allocates rows*cols bytes of continuous memory. +double **alloc_double(int rows, int cols); //Function duplicate copies the values of source array to dest array. void duplicate(double **source, int rows, int cols, double ***dest); @@ -68,11 +30,6 @@ void print_matrix(double **array, int rows, int cols); //Function save_matrix prints matrix in a csv file with path/filename //"output/output_iteration". If a file already exists new lines are concatenated. -void save_matrix(double **matrix - , int iteration); - -//Function calculate_denominator allocates memory in GPU, sends the data and calls the -//denominator kernel function. -double * calculate_denominator(double **kernel_matrix); +void save_matrix(double **matrix, int iteration); #endif //SERIAL_UTILS_H \ No newline at end of file