1. A method for reordering data, the method comprising: generating an ordered list of radix occurrences based on radix symbol and thread group number; performing a prefix sum operation across the radix occurrences to produce a prefix sum output list; modifying the prefix sum output list to produce an ordered list of offsets; selecting a first sub-key for each thread in a first thread group, wherein each thread corresponds to a different sort key in a first set of sort keys, and each sort key comprises an identical number of sub-keys; determining a value of the first sub-key for each thread in the first thread group; determining a first offset associated with the first sub-key value determined for each thread in the first thread group; and storing data associated with the sort key corresponding to each thread in the first thread group at a buffer location based on the first offset determined for the thread.