{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,24]],"date-time":"2025-10-24T16:41:08Z","timestamp":1761324068973,"version":"3.41.0"},"reference-count":18,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2016,9,24]],"date-time":"2016-09-24T00:00:00Z","timestamp":1474675200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100000038","name":"Natural Sciences and Engineering Research Council of Canada","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100000038","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/100008676","name":"Canadian Microelectronics Corporation","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100008676","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Altera Corporation"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Reconfigurable Technol. Syst."],"published-print":{"date-parts":[[2017,3,31]]},"abstract":"<jats:p>A K-means clustering algorithm involves partitioning of data iteratively into k clusters. It is one of the most popular data-mining algorithms [Wu et al. 2007], and is widely used in other applications, such as image processing and machine learning. However, k-means is highly time-consuming when data or cluster size is large. Traditionally, FPGAs have shown great promise for accelerating computationally intensive algorithms, but they are harder to use for acceleration if we rely on traditional HD-based design methods. The recent introduction of Altera SDK for the OpenCL high-level synthesis tool allows developers to utilize FPGA's potential without long development periods and extensive hardware knowledge. This article presents an optimized implementation of a k-means clustering algorithm on an FPGA using Altera SDK for OpenCL. Performance and power consumption is measured with various data, cluster, and dimension sizes. When compared to state-of-the-art solutions, this implementation supports larger cluster sizes, offers up to 21x speed over a CPU and is more power efficient than a GPU. Unlike previous implementations, it can deliver consistently high throughput across large or small feature dimensions given reasonable cluster sizes and large enough data size.<\/jats:p>","DOI":"10.1145\/2964910","type":"journal-article","created":{"date-parts":[[2016,9,29]],"date-time":"2016-09-29T19:06:10Z","timestamp":1475175970000},"page":"1-19","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":20,"title":["Acceleration of k-Means Algorithm Using Altera SDK for OpenCL"],"prefix":"10.1145","volume":"10","author":[{"given":"Qing Y.","family":"Tang","sequence":"first","affiliation":[{"name":"University of Windsor, Ontario, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mohammed A. S.","family":"Khalid","sequence":"additional","affiliation":[{"name":"University of Windsor, Ontario, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2016,9,24]]},"reference":[{"key":"e_1_2_2_1_1","unstructured":"Altera Corporation. 2015a. Altera SDK for OpenCL Overview. Retrieved August 3 2016 from https:\/\/www.altera.com\/products\/design-software\/embedded-software-developers\/opencl\/overview.html.  Altera Corporation. 2015a. Altera SDK for OpenCL Overview. Retrieved August 3 2016 from https:\/\/www.altera.com\/products\/design-software\/embedded-software-developers\/opencl\/overview.html."},{"key":"e_1_2_2_2_1","unstructured":"Altera Corporation. 2015b. Altera SDK for OpenCL Programming Guide version 15.0.0. Retrieved August 3 2016 from http:\/\/www.altera.com\/literature\/hb\/opencl-sdk\/aocl_programming_guide.pdf.  Altera Corporation. 2015b. Altera SDK for OpenCL Programming Guide version 15.0.0. Retrieved August 3 2016 from http:\/\/www.altera.com\/literature\/hb\/opencl-sdk\/aocl_programming_guide.pdf."},{"volume-title":"Proceedings of the 18th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA\u201907)","year":"2007","author":"Arthur David","key":"e_1_2_2_3_1"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.14778\/2180912.2180915"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2008.05.014"},{"volume-title":"IEEE 25th International Conference on Application-Specific Systems, Architectures and Processors.","author":"Choi Y.","key":"e_1_2_2_6_1"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1964179.1964182"},{"key":"e_1_2_2_8_1","unstructured":"W. Fang K. K. Lau M. Lu X. Xiao C. K. Lam P. Y. Yang B. Hel Q. Luo P. V. Sander and K. Yang. 2008. Parallel data mining on graphics processors. Technical report Hong Kong University of Science and Technology.  W. Fang K. K. Lau M. Lu X. Xiao C. K. Lam P. Y. Yang B. Hel Q. Luo P. V. Sander and K. Yang. 2008. Parallel data mining on graphics processors. Technical report Hong Kong University of Science and Technology."},{"volume-title":"Proceedings of the 2nd International Workshop on GPUs and Scientific Applications (GPUScA'11)","author":"Gunarathne T.","key":"e_1_2_2_9_1"},{"key":"e_1_2_2_10_1","unstructured":"Khronos OpenCL Working Group. 2009. The OpenCL Specification Version 1.0. Retrieved August 3 2016 from http:\/\/www.khronos.org\/registry\/cl\/specs\/opencl-1.0.48.pdf.  Khronos OpenCL Working Group. 2009. The OpenCL Specification Version 1.0. Retrieved August 3 2016 from http:\/\/www.khronos.org\/registry\/cl\/specs\/opencl-1.0.48.pdf."},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/CIT.2010.60"},{"key":"e_1_2_2_12_1","unstructured":"W. Liao. 2013. Parallel K-Means Data Clustering. Retrieved August 3 2016 from http:\/\/users.eecs.northwestern.edu\/&sim;wkliao\/Kmeans\/.  W. Liao. 2013. Parallel K-Means Data Clustering. Retrieved August 3 2016 from http:\/\/users.eecs.northwestern.edu\/&sim;wkliao\/Kmeans\/."},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2006.302743"},{"volume-title":"1st International Workshop on FPGAs for Software Programmers (FSP&rsquo;14)","author":"Segal O.","key":"e_1_2_2_14_1"},{"key":"e_1_2_2_15_1","unstructured":"Terasic Technologies Inc. 2014. DE5-Net FPGA Development Kit Specification. Retrieved August 3 2016 from de5-net.terasic.com\/.  Terasic Technologies Inc. 2014. DE5-Net FPGA Development Kit Specification. Retrieved August 3 2016 from de5-net.terasic.com\/."},{"key":"e_1_2_2_16_1","unstructured":"ThinkTank Energy Products Inc. 2015. Watt's Up Pro Power meter specifications. Retrieved August 3 2016 from https:\/\/www.wattsupmeters.com\/secure\/products.php?pn &equals; 0&wai&equals;276&spec&equals;4  ThinkTank Energy Products Inc. 2015. Watt's Up Pro Power meter specifications. Retrieved August 3 2016 from https:\/\/www.wattsupmeters.com\/secure\/products.php?pn &equals; 0&wai&equals;276&spec&equals;4"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1531666.1531668"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10115-007-0114-2"}],"container-title":["ACM Transactions on Reconfigurable Technology and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2964910","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2964910","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:40:01Z","timestamp":1750218001000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2964910"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,9,24]]},"references-count":18,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2017,3,31]]}},"alternative-id":["10.1145\/2964910"],"URL":"https:\/\/doi.org\/10.1145\/2964910","relation":{},"ISSN":["1936-7406","1936-7414"],"issn-type":[{"type":"print","value":"1936-7406"},{"type":"electronic","value":"1936-7414"}],"subject":[],"published":{"date-parts":[[2016,9,24]]},"assertion":[{"value":"2016-02-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-06-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-09-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}