Efficient stream compaction on wide SIMD many-core architectures
Paper i proceeding, 2009

Stream compaction is a common parallel primitive used to remove unwanted elements in sparse data. This allows highly parallel algorithms to maintain performance over several processing steps and reduces overall memory usage. For wide SIMD many-core architectures, we present a novel stream compaction algorithm and explore several variations thereof. Our algorithm is designed to maximize concurrent execution, with minimal use of synchronization. Bandwidth and auxiliary storage requirements are reduced significantly, which allows for substantially better performance. We have tested our algorithms using CUDA on a PC with an NVIDIA GeForce GTX280 GPU. On this hardware, our reference implementation provides a 3x speedup over previous published algorithms.


parallel sorting

stream compaction


prefix sum


Markus Billeter

Chalmers, Data- och informationsteknik, Datorteknik

Ola Olsson

Chalmers, Data- och informationsteknik, Datorteknik

Ulf Assarsson

Chalmers, Data- och informationsteknik, Datorteknik

Proceedings of the Conference on High Performance Graphics

Vol. 2009 159-166