K-Means for Parallel Architectures Using All-Prefix-Sum Sorting and Updating Steps
Kai Kohlhoff, Vijay S. Pande, Russ Biagio Altman · IEEE Transactions on Parallel and Distributed Systems · 2012
We present an implementation of parallel K-means clustering, called Kps-means, that achieves high performance with near-full occupancy compute kernels without imposing limits on the number of dimensions and data points permitted as input, thus combining flexibility with high degrees of parallelism and efficiency. As a key element to performance improvement, we introduce parallel sorting as data preprocessing and updating steps. Our final implementation for Nvidia GPUs achieves speedups of up to 200-fold over CPU reference code and of up to three orders of magnitude when compared with popular numerical software packages.