diff --git a/src/radixsort_parallel.cu b/src/radixsort_parallel.cu index cdb66996734de6c4f8d0622cb945f0599e77569e..8aa522e478fb5fefff56b6e200f9a36b749c70df 100644 --- a/src/radixsort_parallel.cu +++ b/src/radixsort_parallel.cu @@ -3,31 +3,12 @@ #include "radix_sort_parallel.h" __global__ void getMax(int *arr, int *max, int n) { -__shared__ int cache[1000]; -int temp = arr[0]; - for (int i=0; i<n; i+=1000){ - if(threadIdx.x< 1000){ - if(temp < arr[threadIdx.x + i]){ - temp = arr[threadIdx.x+i]; - } - } - } + int mx = arr[0]; - if(threadIdx.x <1000){ - cache[threadIdx.x] =temp; - } - - __syncthreads(); - - if(threadIdx.x ==0){ - *max = cache[0]; - for(int i =1; i<1000; i++){ - if(*max < cache[i]){ - *max = cache[i]; - } - } - - } + for (int i = 0; i < n; i++) + if (arr[i] > mx) + mx = arr[i]; + max[0] = mx; } __global__ void countSort(int *arr, int n, int exp) {