AN 856: K-Mean Clustering with the Intel® FPGA SDK for OpenCL™

ID 683395
Date 6/12/2018
Public

1. AN 856: K-Mean Clustering with the Intel® FPGA SDK for OpenCL™

When you have a set of data where each data point represents a d-dimensional observation, clustering divides that data into groups (or clusters) that are more similar to each other.

Clustering algorithms are used often in many fields such as data mining, machine learning, and image processing. K-mean clustering is a popular clustering algorithm, but it is a very time consuming process.
This algorithm is applied to a data set without any label and is considered an unsupervised learning algorithm

K-mean clustering was developed and optimized for different hardware platforms, and in this application note we propose a design for FPGAs using the Intel® FPGA SDK for OpenCL™ 1 2.

The Intel® FPGA SDK for OpenCL™ can help software engineers to develop and accelerate algorithms on higher efficiency platforms such as FPGAs much faster then coding in RTL.

In the following sections, we explain the k-mean clustering algorithm. Then, we discuss the OpenCL implementation of k-mean clustering. Finally, we provide some performance results comparing how the algorithm can be accelerated on an Intel® Arria® 10 FPGA versus an Intel Xeon CPU.

1 OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission of the Khronos Group™.
2 The Intel® FPGA SDK for OpenCL is based on a published Khronos Specification, and has passed the Khronos Conformance Testing Process. Current conformance status can be found at www.khronos.org/conformance.