Sorting and Permuting without Bank Conflicts on GPUs

Abstract

In this paper, we look at the complexity of designing algorithms without any bank conflicts in the shared memory of Graphical Processing Units (GPUs). Given input of size n, w processors and w memory banks, we study three fundamental problems: sorting, permuting and w-way partitioning (defined as sorting an input containing exactly n/w copies of every integer in [w]). We solve sorting in optimal O(nw n) time. When n w2, we solve the partitioning problem optimally in O(n/w) time. We also present a general solution for the partitioning problem which takes O(nw 3n/w w) time. Finally, we solve the permutation problem using a randomized algorithm in O(nw n/w n) time. Our results show evidence that when working with banked memory architectures, there is a separation between these problems and the permutation and partitioning problems are not as easy as simple parallel scanning.

0

Turn this paper into a lesson

ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…