- Replace
DATA_TYPE
with a template parameter. - The Kmeans constructor should not accept a points struct, that should be
a parameter of
Kmeans::run()
. - Create a macro to make timing with
cudaEvent_t
less clunky. - Split the gemm and spmm distances strategies into two different member functions. They are different enough now to justify two different functions.
- Make
Kmeans::init_centroids_rand()
work with a CSRF
matrix. - Comprehensive integration tests that run all variants of K-means to convergence on different datasets and compare against RAFT.