A GPU/FPGA-Based K-Means Clustering Using a Parameterized Code Generator

  • Jeronimo Costa Penha UFV / CEFET-MG
  • Lucas Bragança UFV
  • Kristtopher Coelho UFV
  • Michael Canesche UFV
  • Jansen Silva UFV
  • Giovanni Comarela UFV
  • José Augusto M. Nacif UFV
  • Ricardo Ferreira UFV


The K-means algorithm is a method used for the unsupervised learning task of data clustering. This work presents a K-means specific domain code generator capable of generating code for GPUs and FPGAs. To increase efficiency, the code is parameterized and specialized for Nvidia GPUs and Intel/Altera CPU-FPGA HARP v.2 platform. Furthermore, the generator is modular and can be extended to other FPGA and GPU platforms. Another contribution of this work is to simplify the use of high performance FPGAs for programmers, once our generator does not require hardware knowledge in order to provide a high performance accelerator at the software level. The generator also simplifies GPU programming. In comparison to an Intel XEON CPU, our experiments show a 55x speed-up for the GPU execution time and a 13.8x speed up for the FPGA. With regard to energy, the FPGA was up to 10 times more efficient than the evaluated GPUs (Nvidia K40 and 1080ti).
Palavras-chave: Field programmable gate arrays, Graphics processing units, Informatics, Hardware, Generators, High performance computing, FPGA, GPU, Accelerators, K-Means
Como Citar

Selecione um Formato
PENHA, Jeronimo Costa; BRAGANÇA, Lucas; COELHO, Kristtopher; CANESCHE, Michael; SILVA, Jansen; COMARELA, Giovanni; NACIF, José Augusto M.; FERREIRA, Ricardo. A GPU/FPGA-Based K-Means Clustering Using a Parameterized Code Generator. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 19. , 2018, São Paulo. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2018 . p. 61-69.