diff --git a/src/radixsort_parallel.cu b/src/radixsort_parallel.cu
index 8aa522e478fb5fefff56b6e200f9a36b749c70df..2511d39867a0b66db178e86e5e724fba4a416982 100644
--- a/src/radixsort_parallel.cu
+++ b/src/radixsort_parallel.cu
@@ -3,9 +3,11 @@
 #include "radix_sort_parallel.h"
 
 __global__ void getMax(int *arr, int *max, int n) {
-    int mx = arr[0]; 
+    int index = threadIdx.x;
+    int stride = blockDim.x;
+    int mx = arr[index]; 
 
-    for (int i = 0; i < n; i++) 
+    for (int i = index+stride; i < n; i+=stride) 
         if (arr[i] > mx) 
             mx = arr[i];
     max[0] = mx;