Flash-KMeans: Fast and Memory-Efficient Exact K-Means

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Yang, Shuo, Xi, Haocheng, Zhao, Yilong, Li, Muyang, Fan, Xiaoze, Zhang, Jintao, Cai, Han, Lin, Yujun, Li, Xiuyu, Keutzer, Kurt, Han, Song, Xu, Chenfeng, Stoica, Ion
Format: Preprint
Veröffentlicht: 2026
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866918437562875904
author Yang, Shuo
Xi, Haocheng
Zhao, Yilong
Li, Muyang
Fan, Xiaoze
Zhang, Jintao
Cai, Han
Lin, Yujun
Li, Xiuyu
Keutzer, Kurt
Han, Song
Xu, Chenfeng
Stoica, Ion
author_facet Yang, Shuo
Xi, Haocheng
Zhao, Yilong
Li, Muyang
Fan, Xiaoze
Zhang, Jintao
Cai, Han
Lin, Yujun
Li, Xiuyu
Keutzer, Kurt
Han, Song
Xu, Chenfeng
Stoica, Ion
contents $k$-means has historically been positioned primarily as an offline processing primitive, typically used for dataset organization or embedding preprocessing rather than as a first-class component in online systems. In this work, we revisit this classical algorithm under the lens of modern AI system design and enable $k$-means as an online primitive. We point out that existing GPU implementations of $k$-means remain fundamentally bottlenecked by low-level system constraints rather than theoretical algorithmic complexity. Specifically, the assignment stage suffers from a severe IO bottleneck due to the massive explicit materialization of the $N \times K$ distance matrix in High Bandwidth Memory (HBM). Simultaneously, the centroid update stage is heavily penalized by hardware-level atomic write contention caused by irregular, scatter-style token aggregations. To bridge this performance gap, we propose flash-kmeans, an IO-aware and contention-free $k$-means implementation for modern GPU workloads. 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. Extensive evaluations on NVIDIA H200 GPUs demonstrate that flash-kmeans achieves up to 17.9$\times$ end-to-end speedup over best baselines, while outperforming industry-standard libraries like cuML and FAISS by 33$\times$ and over 200$\times$, respectively. Our code is open-sourced at https://github.com/svg-project/flash-kmeans.
format Preprint
id arxiv_https___arxiv_org_abs_2603_09229
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Flash-KMeans: Fast and Memory-Efficient Exact K-Means
Yang, Shuo
Xi, Haocheng
Zhao, Yilong
Li, Muyang
Fan, Xiaoze
Zhang, Jintao
Cai, Han
Lin, Yujun
Li, Xiuyu
Keutzer, Kurt
Han, Song
Xu, Chenfeng
Stoica, Ion
Distributed, Parallel, and Cluster Computing
$k$-means has historically been positioned primarily as an offline processing primitive, typically used for dataset organization or embedding preprocessing rather than as a first-class component in online systems. In this work, we revisit this classical algorithm under the lens of modern AI system design and enable $k$-means as an online primitive. We point out that existing GPU implementations of $k$-means remain fundamentally bottlenecked by low-level system constraints rather than theoretical algorithmic complexity. Specifically, the assignment stage suffers from a severe IO bottleneck due to the massive explicit materialization of the $N \times K$ distance matrix in High Bandwidth Memory (HBM). Simultaneously, the centroid update stage is heavily penalized by hardware-level atomic write contention caused by irregular, scatter-style token aggregations. To bridge this performance gap, we propose flash-kmeans, an IO-aware and contention-free $k$-means implementation for modern GPU workloads. 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. Extensive evaluations on NVIDIA H200 GPUs demonstrate that flash-kmeans achieves up to 17.9$\times$ end-to-end speedup over best baselines, while outperforming industry-standard libraries like cuML and FAISS by 33$\times$ and over 200$\times$, respectively. Our code is open-sourced at https://github.com/svg-project/flash-kmeans.
title Flash-KMeans: Fast and Memory-Efficient Exact K-Means
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2603.09229