• Hacker News
  • new|
  • comments|
  • show|
  • ask|
  • jobs|
  • maiconburn 5 hours

    [dead]

  • jacquesm 4 hours

    Nice one. K-Means is one of those neat little powertools that once you get the hang of it you find more and more applications for, but it can be a bit slow for larger data sets. So this is very nice to have, thank you matt_d for posting.

  • matrix2596 8 hours

    looks like flash attention concepts applied to kmeans, nice speedup results

  • westurner 22 minutes

    ScholarlyArticle: "Flash-KMeans: Fast and Memory-Efficient Exact K-Means" (2026) https://arxiv.org/abs/2603.09229 .. gscholar: https://scholar.google.com/scholar?hl=en&as_sdt=0%2C43&q=Fla... :

    > Abstract: [...] Flash-kmeans introduces two core kernel-level innovations: (1) FlashAssign, which fuses distance computation with an online argmin to completely bypass intermediate memory materialization;

    > (2) sort-inverse update, which explicitly constructs an inverse mapping to transform high-contention atomic scatters into high-bandwidth, segment-level localized reductions.

    > Furthermore, we integrate algorithm-system co-designs, including chunked-stream overlap and cache-aware compile heuristics, to ensure practical deployability.

    > [...] flash-kmeans achieves up to 17.9X end-to-end speedup over best baselines, while outperforming industry-standard libraries like cuML and FAISS by 33X and over 200X, respectively.

    k-means clustering > Algorithms > Variations: https://en.wikipedia.org/wiki/K-means_clustering#Variations

  • frakt0x90 6 hours

    They created this in service of their video generation model which "clusters and reorders tokens based on semantic similarity using k-means.":

    http://arxiv.org/pdf/2505.18875

    smusamashah 2 hours

    Project website https://svg-project.github.io/

  • leecarraher 5 hours

    Do they mean deterministic k-means, k-means++ ... ? Global optimal k-means is NP-Hard, so linear speedups aren't terribly helpful. It's nice, until you add more input. Standard k-means would be nice, or the k-means++ seed algorithm.

    jmalicki 4 hours

    Kmeans++ is just a seed, this is the inner loop.

    Also analogous to flash attention, a linear speedup in big O sense based on the typical algorithmoc complexity computing model can be a polynomial speedup in measured wall clock time due to memory hierarchy differences.

    Still small compared to exponential differences, but for an NP-Hard problem, a linear 100x speedup is the difference between practically computable vs. not. There are a ton of things I'd wait 2 hours for that I wouldn't wait a week for.

    n4r9 56 minutes

    The abstract suggests they're proposing speed-up techniques for the assignment and centroid update stages of the classic k-means algorithm. Which would therefore also apply to k-means++.

  • wood_spirit 8 hours

    Does this have corresponding speed ups or memory gains for normal CPUs too? Just thinking about all the cups of coffee that have been made and drunk while scikit-learn kmeans chugs through a notebook :)

    openclaw01 7 hours

    [dead]

    snovv_crash 8 hours

    For CPU with bigger K you would put the centroids in a search tree, so take advantage of the sparsity, while a GPU would calculate the full NxK distance matrix. So from my understanding the bottleneck they are fixing doesn't show up on CPU.

    xavxav 7 hours

    search trees tend not to scale well to higher dimensions though, right?

    from what I've seen I had the impression that Yinyang k-means was the best way to take advantage of the sparsity.

    snovv_crash 2 hours

    Most data I've used is for geospatial with D<=4 (xyzt) so for me search trees worked great. But for things like descriptor or embedding clustering yes, trees wouldn't be useful.