High-performance K-means Implementation based on a Coarse-grained Map-Reduce Architecture

The k-means algorithm is one of the most common clustering algorithms and widely used in data mining and pattern recognition. The increasing computational requirement of big data applications makes hardware acceleration for the kmeans algorithm necessary. In this paper, a coarse-grained Map-Reduce architecture is proposed to implement the kmeans algorithm on an FPGA. Algorithmic segmentation, data path elaboration and automatic control are applied to optimize the architecture for high performance. In addition, high level synthesis technique is utilized to reduce development cycles and complexity. For a single iteration in the k-means algorithm, a throughput of 28.74 Gbps is achieved. The performance shows at least 3.93x speedup compared with four representative existing FPGA-based implementations and can satisfy the demand of big data applications.

[1]  Paul Chow,et al.  K-means implementation on FPGA for high-dimensional data using triangle inequality , 2012, 22nd International Conference on Field Programmable Logic and Applications (FPL).

[2]  George A. Constantinides,et al.  FPGA-based K-means clustering using tree-based data structures , 2013, 2013 23rd International Conference on Field programmable Logic and Applications.

[3]  Huseyin Seker,et al.  FPGA implementation of K-means algorithm for bioinformatics application: An accelerated approach to clustering Microarray data , 2011, 2011 NASA/ESA Conference on Adaptive Hardware and Systems (AHS).

[4]  Venkatesh Bhaskaran,et al.  Parameterized Implementation of K-means Clustering on Reconfigurable Systems , 2004 .

[5]  Dominique Lavenier FPGA implementation of the k-means clustering algorithm for hyperspectral images , 2000 .

[6]  James Theiler,et al.  Algorithmic transformations in the implementation of K- means clustering on reconfigurable hardware , 2001, FPGA '01.

[7]  Dominique Lavenier,et al.  Experience with a Hybrid Processor: K-Means Clustering , 2004, The Journal of Supercomputing.

[8]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[9]  J. A. Hartigan,et al.  A k-means clustering algorithm , 1979 .

[10]  George A. Constantinides,et al.  A Case for Work-stealing on FPGAs with OpenCL Atomics , 2016, FPGA.

[11]  Tsutomu Maruyama,et al.  An FPGA Implementation of K-Means Clustering for Color Images Based on Kd-Tree , 2006, 2006 International Conference on Field Programmable Logic and Applications.

[12]  Hayden Kwok-Hay So,et al.  Map-reduce processing of k-means algorithm with FPGA-accelerated computer cluster , 2014, 2014 IEEE 25th International Conference on Application-Specific Systems, Architectures and Processors.