Energy-efficient FPGA Implementation of the k-Nearest Neighbors Algorithm Using OpenCL
Department of Electronics and Telecommunication, Politecnico di Torino, Italy
Federated Conference on Computer Science and Information Systems (FedCSIS), pp. 141-145, 2016
@article{muslim2016energy,
title={Energy-efficient FPGA Implementation of the k-Nearest Neighbors Algorithm Using OpenCL},
author={Muslim, Fahad Bin and Demian, Alexandros and Ma, Liang and Lavagno, Luciano and Qamar, Affaq},
journal={ANNALS OF COMPUTER SCIENCE AND INFORMATION SYSTEMS},
volume={9},
pages={141–145},
year={2016}
}
Modern SoCs are getting increasingly heterogeneous with a combination of multi-core architectures and hardware accelerators to speed up the execution of compute-intensive tasks at considerably lower power consumption. Modern FPGAs, due to their reasonable execution speed and comparatively lower power consumption, are strong competitors to the traditional GPU based accelerators. High-level Synthesis (HLS) simplifies FPGA programming by allowing designers to program FPGAs in several high-level languages e.g. C/C++, OpenCL and SystemC. This work focuses on using an HLS based methodology to implement a widely used classification algorithm i.e. k-nearest neighbor on an FPGA based platform directly from its OpenCL code. Multiple fairly different implementations of the algorithm are considered and their performance on FPGA and GPU is compared. It is concluded that the FPGA generally proves to be more power efficient as compared to the GPU. Furthermore, using an FPGA-specific OpenCL coding style and providing appropriate HLS directives can yield an FPGA implementation comparable to a GPU also in terms of execution time.
October 22, 2016 by hgpu