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