From 849f215c938fadf35865e824f480f39b1fcdfb95 Mon Sep 17 00:00:00 2001
From: azkanab <azkanabilah@gmail.com>
Date: Thu, 11 Apr 2019 19:21:41 +0700
Subject: [PATCH] tes

---
 src/radixsort_parallel.cu | 29 ++++++++++++++++++++++++-----
 1 file changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/radixsort_parallel.cu b/src/radixsort_parallel.cu
index 8aa522e..cdb6699 100644
--- a/src/radixsort_parallel.cu
+++ b/src/radixsort_parallel.cu
@@ -3,12 +3,31 @@
 #include "radix_sort_parallel.h"
 
 __global__ void getMax(int *arr, int *max, int n) {
-    int mx = arr[0]; 
+__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];
+            }
+        }
+    }
 
-    for (int i = 0; i < n; i++) 
-        if (arr[i] > mx) 
-            mx = arr[i];
-    max[0] = mx;
+    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];
+            }
+        }
+    
+    }
 } 
 
 __global__ void countSort(int *arr, int n, int exp) {
-- 
GitLab