uses an LSD radix sort and the CUDA framework