4th Street Bar Hive-Bar

Hive-Bar Powered by Hive beta-fdb5b5b

Community post

Sort: implementation of sorting algorithms in C and CUDA

sort

Repository of sorting algorithms in C and CUDA.

Proof of work

Information

The 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



Posted on Utopian.io - Rewarding Open Source Contributors

12 upvotes $17.72

Replies (3)

Review before signing

Posting as . Signing with . Keychain permission: Posting. Hive Keychain will ask you to approve this action next.


  
Technical details

Operation fingerprint: