diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..4d861c7e4ad62f9a39b316785324aadb1f3be408 --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/cudaUtil/cudaUtil.cuh b/src/cudaUtil/cudaUtil.cuh new file mode 100644 index 0000000000000000000000000000000000000000..e7373deeb09df7c1a792df2f9c5fee33a7ebcfd6 --- /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 0000000000000000000000000000000000000000..6a0c7b6df7a4f621ba5bd55e97314bccebb5879e --- /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 0000000000000000000000000000000000000000..8e8917a09d9174b14354e66184c8d5535c1ce353 --- /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 0000000000000000000000000000000000000000..8409449db79c33ec092f081c56cde6f5cfdda0b7 --- /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 0000000000000000000000000000000000000000..ac95ea1e111ed5e38d1a08f12141171b0474fd8a --- /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 0000000000000000000000000000000000000000..5e23e74c43412edabe21692d1f5e871ef8967d1b --- /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