Skip to content

A KMeans implemented in C++ with Python bindings and GPU acceleration

License

Notifications You must be signed in to change notification settings

rmiguelkelly/QuickCluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuickCluster 🔥

A KMeans algorithm implemented in C++ along with Pythoin bindings that runs on the CPU or the GPU.

I wrote this project more as a proof of concept for some key learning points I wanted to understand.

This project is definitely still in beta so there may be some bugs and upgrades to add as time goes on.

Features

  • Simple Python interface similar to SKLearn's KMeans
  • Dynamic libraries for MacOS and Linux (Windows coming soon) for C++ integration
  • Support for Apple's GPU for hardware acceleration (CUDA coming soon too)

Building

Build the dynamic library from source

git clone https://github.com/rmiguelkelly/QuickCluster
cd QuickCluster/quickcluster

MacOS

make darwin

Linux

make linux

Windows and CUDA implementations

Coming soon!

Examples

Some example code for running the program

Python (CPU) Example

Python (GPU) Example

C++ (CPU) Example

C++ (GPU) Example

Python Installation

You must build the project first with the above steps

cd ..
pip install .

Note: you may have to edit the runtime paths using a tool like install_name_tool on MacOS for the dynamic library so that the Python module can link it properly

Authors