Skip to content

icaroharry/sort

Repository files navigation

sort

Repository of sorting algorithms in C and CUDA.

Information

Our program generates and fills arrays in four different ways:

  1. arrays with totally random elements
  2. arrays already ordered
  3. arrays ordered in descending order
  4. arrays 90% ordered.

Sorting methods implemented

  1. Selection sort
  2. Insertion sort
  3. Shell sort
  4. Quick sort
  5. Heap sort
  6. Merge sort
  7. CUDA Quick sort
  8. CUDA Merge sort

Requirements

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

Compiling

Run the MAKEFILE

Instructions

To run the program, type:

./a.out -a $algorithm -n $number_of_elements -s $state [-P]

Parameters

  1. -a sorting algorithm
  1. -n number of elements
  2. -s array state
  3. -P print results
Param Value
-a selection
insertion
shell
quick
heap
merge
gpuquick
gpumerge
-n int > 0
-s random
ascending
descending
almost
-P

Tested

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

About

Repository of sort algorithms in C and CUDA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published