FPGA, GPU, and CPU implementations of Jacobi algorithm for eigenanalysis

Mustafa U. Torun, Onur Yilmaz, Ali N. Akansu

Research output: Contribution to journalArticlepeer-review

21 Scopus citations


Parallel implementations of Jacobi algorithm for eigenanalysis of a matrix on most commonly used high performance computing (HPC) devices such as central processing unit (CPU), graphics processing unit (GPU), and field-programmable gate array (FPGA) are discussed in this paper. Their performances are investigated and compared. It is shown that CPU, even with multi-threaded implementation, is not a feasible option for large dense matrices. For the GPU implementation, performance impact of the global memory access patterns on the GPU board and the memory coalescing are emphasized. Three memory access methods are proposed. It is shown that one of them achieves 81.6% computational performance improvement over the traditional GPU methods, and it runs 68.5 times faster than a single-threaded CPU for a dense symmetric square matrix of size 1,024. Furthermore, FPGA implementation is presented and its performance running on chips from two major manufacturers are reported. A comparison of GPU and FPGA implementations is quantified and ranked. It is reported that FPGA design delivers the best performance for such a task while GPU is a strong competitor requiring less development effort with superior scalability. We predict that emerging big data applications will benefit from real-time and high performance computing implementations of eigenanalysis for information inference and signal analytics in the future.

Original languageEnglish (US)
Pages (from-to)172-180
Number of pages9
JournalJournal of Parallel and Distributed Computing
StatePublished - Oct 1 2016

All Science Journal Classification (ASJC) codes

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computer Networks and Communications
  • Artificial Intelligence


  • CPU
  • Chess tournament
  • Eigenanalysis
  • FPGA
  • GPU
  • Jacobi algorithm
  • Karhunen-Loève transform
  • Memory coalescing
  • Principal component analysis


Dive into the research topics of 'FPGA, GPU, and CPU implementations of Jacobi algorithm for eigenanalysis'. Together they form a unique fingerprint.

Cite this