Return
FPGA, GPU, and CPU implementations of Jacobi algorithm for eigenanalysis
DOI:10.1016/j.jpdc.2016.05.014.png)
Abstract
En 中文
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. (C) 2016 Elsevier Inc. All rights reserved.
Keywords:
Eigenanalysis
Principal component analysis
Karhunen-Loeve transform
Jacobi algorithm
Chess tournament
CORDIC
Memory coalescing
FPGA
GPU
CPU
Journal
IF:
4
Papers:
3.8K
Citations:
4.8K

