Skip to content
Snippets Groups Projects
Commit f62dff01 authored by Azka Nabilah Mumtaz's avatar Azka Nabilah Mumtaz
Browse files

bismillah

parent adf78403
No related merge requests found
......@@ -16,12 +16,12 @@ __global__ void getMaxParallel(int *arr, int *max, int n) {
int stride = blockDim.x;
int maximum = arr[index];
for (int i = index; i < n; i+=stride) {
for (int i = index+stride; i < n; i+=stride) {
if (arr[i] > maximum) {
maximum = arr[i];
}
}
max[0] = maximum;
max[index] = maximum;
}
int getMax(int arr[], int n)
......
......@@ -2,15 +2,15 @@
#include <cuda_runtime.h>
#include "radix_sort_parallel.h"
__global__ void getMax(int *arr, int *max, int n) {
__global__ void getMax(int *arr, int *max, int *n) {
int index = threadIdx.x;
int stride = blockDim.x;
int mx = arr[index];
for (int i = index+stride; i < n; i+=stride)
for (int i = index+stride; i < n[0]; i+=stride)
if (arr[i] > mx)
mx = arr[i];
max[0] = mx;
max[index] = mx;
}
__global__ void countSort(int *arr, int n, int exp) {
......@@ -36,21 +36,23 @@ __global__ void countSort(int *arr, int n, int exp) {
void radix_sort(int arr[], int n)
{
int *max;
int *d_max, *d_arr;
int *d_max, *d_arr, *d_n;
// Allocate host memory
max = (int*)malloc(1 * sizeof(int));
// Allocate device memory
cudaMalloc((void**)&d_max, 1 * sizeof(int));
cudaMalloc((void**)&d_n, 1 * sizeof(int));
cudaMalloc((void**)&d_arr, n * sizeof(int));
// Transfer data from host to device
cudaMemcpy(d_arr, arr, n * sizeof(int), cudaMemcpyHostToDevice);
cudaMemcpy(d_max, max, sizeof(int) * 1, cudaMemcpyHostToDevice);
cudaMemcpy(d_n, n, sizeof(int) * 1, cudaMemcpyHostToDevice);
// Executing kernel
getMax<<<1, 500>>>(d_arr, d_max, n);
getMax<<<1, 500>>>(d_arr, d_max, d_n);
// Transfer data back to host memory
cudaMemcpy(max, d_max, 1 * sizeof(int), cudaMemcpyDeviceToHost);
......@@ -60,6 +62,10 @@ void radix_sort(int arr[], int n)
}
cudaMemcpy(arr, d_arr, n * sizeof(int), cudaMemcpyDeviceToHost);
cudaFree(d_max);
cudaFree(d_arr);
cudaFree(d_n);
free(max);
}
void print(int arr[], int n)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment