https://github.com/ragibson/cuda-k-means
An implementation of Lloyd's algorithm for data clustering on GPUs and computational accelerators.
https://github.com/ragibson/cuda-k-means
clustering cuda gpu k-means unsupervised-clustering
Last synced: 2 months ago
JSON representation
An implementation of Lloyd's algorithm for data clustering on GPUs and computational accelerators.
- Host: GitHub
- URL: https://github.com/ragibson/cuda-k-means
- Owner: ragibson
- License: mit
- Created: 2019-05-22T18:12:37.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-23T19:44:12.000Z (almost 6 years ago)
- Last Synced: 2025-01-05T19:42:36.562Z (4 months ago)
- Topics: clustering, cuda, gpu, k-means, unsupervised-clustering
- Language: TeX
- Homepage:
- Size: 1.15 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CUDA-k-means
This repository contains three main implementation of Lloyd's k-means
algorithm:* [kmeans_cpu.c](kmeans_cpu.c): A k-means implementation for use on a single
CPU core.
* [kmeans_gpu.cu](kmeans_gpu.cu): A k-means implementation for use on CUDA
GPUs.
* [kmeans_atomic.cu](kmeans_atomic.cu): A k-means implementation for use on
CUDA GPUs, using atomic operations (for comparison purposes).In terms of "number of cluster updates per second", these programs
peak at* [kmeans_cpu.c](kmeans_cpu.c): ~950 million computations per second
* [kmeans_gpu.cu](kmeans_gpu.cu): ~65 billion computations per second
* [kmeans_atomic.cu](kmeans_atomic.cu): ~575 billion computations per second
(though this is only feasible for a large number of clusters)on a system with an E5-2650v3 CPU and TITAN V GPU.
A (significantly) more detailed performance analysis can be read
[here](report/report.pdf).