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) {