GPU Accelerated Spherical K-Means Training

The spherical K-means algorithm is frequently used in high-dimensional data clustering. Although there are some GPU algorithms for K-means training, their implementations suffer from a large amount of data transfer between CPU and GPU, and a large number of rendering passes. By utilizing the random write ability of vertex shaders, we can reduce the overheads mentioned above. However, this vertex shader based approach can handle low dimensional data only. This paper presents a GPU-based training implementation for spherical K-means for high dimensional data. We utilizes the feature of geometry shaders to generate new vertices to handle high-dimensional data.