Repository of sorting algorithms in C and CUDA.
The program generates and fills arrays in four different ways:
Sorting methods implemented
NVIDIA CUDA Toolkit 6.0, NVCC v6.0.1, GCC and G++
Follow these instructions to set up your environment:
prosciens’s tutorial to set up CUDA 6 compiler environment on Debian testing/sid
Our CUDA sorting code requires devices with CUDA compute capability 3.5 or higher, in order to use
the Dinamic Parallelism technology, read more about it here:
NVIDIA blog describing Dinamic Parallelism in Kepler GPUs
Run the MAKEFILE
To run the program, type:
./a.out -a $algorithm -n $number_of_elements -s $state [-P]
- -a sorting algorithm
| Param | Value |
|---|---|
| -a | selection |
| insertion | |
| shell | |
| quick | |
| heap | |
| merge | |
| gpuquick | |
| gpumerge | |
| -n | int > 0 |
| -s | random |
| ascending | |
| descending | |
| almost | |
| -P |
CUDA code tested on a GeForce GT 740M
| GeForce GT 740M | Features |
|---|---|
| CUDA Driver Version / Runtime Version | 6.5 / 6.0 |
| CUDA Capability Major/Minor version number: | 3.5 |
| Total amount of global memory: | 2048 MBytes (2147352576 bytes) |
| ( 2) Multiprocessors, (192) CUDA Cores/MP: | 384 CUDA Cores |