Counting and occurrence sort for GPUs using an embedded language
Counting and occurrence sort for GPUs using an embedded language
复制标题
使用嵌入式语言对 GPU 进行计数和出现排序
DOI:
10.1145/2502323.2502325
复制
发表时间:
2013
期刊:
影响因子:
--
通讯作者:
M. Sheeran
中科院分区:
文献类型:
--
作者:
Josef Svenningsson;Bo Joel Svensson;M. Sheeran
This paper investigates two sorting algorithms: counting sort and a variation, occurrence sort, which also removes duplicate elements, and examines their suitability for running on the GPU. The duplicate removing variation turns out to have a natural functional, data-parallel implementation which makes it particularly interesting for GPUs.
The algorithms are implemented in Obsidian, a high-level domain specific language for GPU programming.
Measurements show that our implementations in many cases outperform the sorting algorithm provided by the library Thrust. Furthermore, occurrence sort is another factor of two faster than ordinary counting sort. We conclude that counting sort is an important contender when considering sorting algorithms for the GPU, and that occurrence sort is highly preferable when applicable. We also show that Obsidian can produce very competitive code.