From f1f329dc00e702c49c0bda440f33a71fdcaa3d1c Mon Sep 17 00:00:00 2001 From: Adylan Roaffa <adylanrff@gmail.com> Date: Wed, 10 Apr 2019 13:53:41 +0700 Subject: [PATCH] initial commit --- .gitignore | 51 ++++++++++++++++++++++++++++++++++++ src/cudaUtil/cudaUtil.cu | 0 src/cudaUtil/cudaUtil.cuh | 6 +++++ src/main.cu | 23 ++++++++++++++++ src/radixSort/radixSort.cu | 5 ++++ src/radixSort/radixSort.cuh | 6 +++++ src/util/util.cpp | 52 +++++++++++++++++++++++++++++++++++++ src/util/util.hpp | 9 +++++++ 8 files changed, 152 insertions(+) create mode 100644 .gitignore create mode 100644 src/cudaUtil/cudaUtil.cu create mode 100644 src/cudaUtil/cudaUtil.cuh create mode 100644 src/main.cu create mode 100644 src/radixSort/radixSort.cu create mode 100644 src/radixSort/radixSort.cuh create mode 100644 src/util/util.cpp create mode 100644 src/util/util.hpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d861c7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ + +# Created by https://www.gitignore.io/api/c++,visualstudiocode +# Edit at https://www.gitignore.io/?templates=c++,visualstudiocode + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history + +# End of https://www.gitignore.io/api/c++,visualstudiocode + diff --git a/src/cudaUtil/cudaUtil.cu b/src/cudaUtil/cudaUtil.cu new file mode 100644 index 0000000..e69de29 diff --git a/src/cudaUtil/cudaUtil.cuh b/src/cudaUtil/cudaUtil.cuh new file mode 100644 index 0000000..e7373de --- /dev/null +++ b/src/cudaUtil/cudaUtil.cuh @@ -0,0 +1,6 @@ +#ifndef CUDA_UTIL_CUH +#define CUDA_UTIL_CUH + + + +#endif \ No newline at end of file diff --git a/src/main.cu b/src/main.cu new file mode 100644 index 0000000..6a0c7b6 --- /dev/null +++ b/src/main.cu @@ -0,0 +1,23 @@ +#include <stdio.h> +#include "util/util.hpp" + +__global__ void cuda_hello(){ + printf("Hello World from GPU!\n"); +} + +int main() { + int* arr; + int* d_arr; + + arr = (int *) malloc(sizeof(int) * 10); + cudaMalloc((void**)&d_arr, sizeof(int) * 10); + + cudaMemcpy(d_arr, arr, sizeof(float) * 10, cudaMemcpyHostToDevice); + + generate_random(arr, 10); + print_arr(arr, 10); + + cuda_hello<<<1,1>>>(); + cudaDeviceSynchronize(); + return 0; +} diff --git a/src/radixSort/radixSort.cu b/src/radixSort/radixSort.cu new file mode 100644 index 0000000..8e8917a --- /dev/null +++ b/src/radixSort/radixSort.cu @@ -0,0 +1,5 @@ +#include "radixSort.cuh" + +void radixSort(int* out, int* arr, int n){ + +} diff --git a/src/radixSort/radixSort.cuh b/src/radixSort/radixSort.cuh new file mode 100644 index 0000000..8409449 --- /dev/null +++ b/src/radixSort/radixSort.cuh @@ -0,0 +1,6 @@ +#ifndef RADIX_SORT_CUH +#define RADIX_SORT_CUH + +void radixSort(int* out, int* arr, int n); + +#endif \ No newline at end of file diff --git a/src/util/util.cpp b/src/util/util.cpp new file mode 100644 index 0000000..ac95ea1 --- /dev/null +++ b/src/util/util.cpp @@ -0,0 +1,52 @@ +#include "util.hpp" +#include <stdlib.h> +#include <limits.h> +#include <stdio.h> + +void generate_random(int *arr, int n){ + int seed = 13516016; + srand(seed); + for (long i = 0; i < n; i++) + { + arr[i] = (int)rand(); + } +} + +void print_arr(int *array, int num_elements){ + { + for (int i = 0; i < num_elements; i++) + { + printf("%d ", array[i]); + } + printf("\n"); + } +} + +int get_max(int arr[], int n){ + int max=INT_MIN; + for (int i=0; i<n; i++){ + if (max<arr[i]){ + max = arr[i]; + } + } + return max; +} + +void assert_sorted(int arr[], int n, double time_elapsed){ + int err_index = 0; + for (int i=0; i<n-1; i++){ + if (arr[i] > arr[i+1]){ + err_index = i+1; + } + } + + if (!err_index){ + printf("Sorted!\n"); + } else { + printf("Not sorted after index %d\n", err_index); + } + + printf("Time elapsed : %f microseconds\n", time_elapsed*1000000); + +} + diff --git a/src/util/util.hpp b/src/util/util.hpp new file mode 100644 index 0000000..5e23e74 --- /dev/null +++ b/src/util/util.hpp @@ -0,0 +1,9 @@ +#ifndef UTIL_HPP +#define UTIL_HPP + +void generate_random(int* arr, int n); +void print_arr(int * array, int num_elements); +int get_max(int arr[], int n); +void assert_sorted(int arr[], int n, double time_elapsed); + +#endif \ No newline at end of file -- GitLab