Parallel GPU Implementation of Iterative PCA Algorithms

  title={Parallel GPU Implementation of Iterative PCA Algorithms},
  author={M. Andrecut},
  journal={Journal of computational biology : a journal of computational molecular cell biology},
  volume={16 11},
  • M. Andrecut
  • Published 2009
  • Biology, Computer Science, Physics, Medicine
  • Journal of computational biology : a journal of computational molecular cell biology
Principal component analysis (PCA) is a key statistical technique for multivariate data analysis. [...] Key Method Here we present an algorithm based on Gram-Schmidt orthogonalization (called GS-PCA), which eliminates this shortcoming of NIPALS-PCA. Also, we discuss the GPU (Graphics Processing Unit) parallel implementation of both NIPALS-PCA and GS-PCA algorithms. The numerical results show that the GPU parallel optimized versions, based on CUBLAS (NVIDIA), are substantially faster (up to 12 times) than the…Expand

Paper Mentions

Blog Post
Modified fast PCA algorithm on GPU architecture
The modified version of fast PCA (MFPCA) algorithm is presented on the GPU architecture and the suitability of the algorithm for face recognition task is discussed and Experimental results show a decrease of the MFPCA algorithm execution time while preserving the quality of the results. Expand
Accelerating a Geometrical Approximated PCA Algorithm Using AVX2 and CUDA
A cross-platform and cross-language perspective is presented, having several implementations of the gaPCA algorithm in Matlab, Python, C++ and GPU implementations based on NVIDIA Compute Unified Device Architecture (CUDA), which shows not only the advantage of using CUDA programming in implementing the ga PCA algorithm on a GPU in terms of performance and energy consumption, but also significant benefits in implementing it on the multi-core CPU using AVX2 intrinsics. Expand
Application of the OpenCL API for Implementation of the NIPALS Algorithm for Principal Component Analysis of Large Data Sets
  • J. Bowden
  • Computer Science
  • 2010 Sixth IEEE International Conference on e-Science Workshops
  • 2010
An implementation of the nonlinear iterative partial least squares algorithm (NIPALS) was used as a test case for use of OpenCL for computation on a general purpose graphics processing unit (GPGPU)Expand
Real-time PCA calculation for spectral imaging (using SIMD and GP-GPU)
Two optimized implementations of the PCA algorithm are presented, primarily targeted on spectral image analysis in real time, and one utilizes the SSE instruction set of contemporary CPUs, and the other one runs on graphics processors, using the CUDA environment. Expand
Tuning Principal Component Analysis for GRASS GIS on Multi-core and GPU Architectures
This paper uses imaging spectrometer data to demonstrate the performance improvements attained by the implementation of PCA in GRASS GIS, which reduced runtime by nearly 99% using only multi-core related optimizations and an additional 50% reduction using GPU related optimizations. Expand
A GPU parallel implementation of the Local Principal Component Analysis overcomplete method for DW image denoising
This work designs and implements a parallel version of the OLPCA, by using a suitable mapping of the tasks on a GPU architecture with the aim of investigating the performance and the denoising features of the algorithm. Expand
Performance Evaluation of Gradient-based Dimensionality Reduction Methods on Different Devices
  • A. Borisov, E. Myasnikov
  • Computer Science
  • 2020 Ural Symposium on Biomedical Engineering, Radioelectronics and Information Technology (USBEREIT)
  • 2020
This paper implemented the efficiency of the nonlinear mapping dimensionality reduction technique based on the stochastic and classic gradient descent algorithms using CUDA for NVIDIA GPU, HIP for AMD GPU, and OpenMP with AVX2 for CPU. Expand
Implmentation of a covariance-based principal component analysis algorithm for hyperspectral imaging applications with multi-threading in both CPU and GPU
  • Jian Zhang, Kim Hwa Lim
  • Computer Science
  • 2012 IEEE International Geoscience and Remote Sensing Symposium
  • 2012
An improvement which combines the multithreading in CPU, GPU and CUDA's graphics interoperability is presented and it is found that this combined framework approaches real-time processing much further. Expand
A collaborative CPU-GPU approach for principal component analysis on mobile heterogeneous platforms
This paper exploits the shared memory architecture of mobile devices in order to enhance the CPU–GPU collaboration and speed up PCA computation without sacrificing precision and suggests that this approach can be extended to accelerate other vectorized computations on mobile devices while still maintaining numerical accuracy. Expand
Implementation of a covariance-based principal component analysis algorithm with a CUDA-enabled graphics processing unit
  • Jian Zhang, Kim Hwa Lim
  • Computer Science
  • 2011 IEEE International Geoscience and Remote Sensing Symposium
  • 2011
It is found that the covariance-matrix approach has a great potential of reaching a real-time performance and compared the performance between them and their CPU counterparts. Expand


Efficient Gram–Schmidt orthonormalisation on parallel computers
The paper shows how these algorithms can be implemented on a parallel computer, and how their communication overhead can be minimized, and provides some guidelines for selecting the most appropriate algorithm. Expand
A User's Guide to Principal Components
Preface.Introduction.1. Getting Started.2. PCA with More Than Two Variables.3. Scaling of Data.4. Inferential Procedures.5. Putting It All Together-Hearing Loss I.6. Operations with Group Data.7.Expand
Loss and Recapture of Orthogonality in the Modified Gram-Schmidt Algorithm
The special structure of the product of the Householder transformations is derived, and then used to explain and bound the loss of orthogonality in MGS, which is illustrated by deriving a numerically stable algorithm based on MGS for a class of problems which includes solution of nonsingular linear systems. Expand
Principal component analysis
Principal Component Analysis (PCA) is a multivariate exploratory analysis method, useful to separate systematic variation from noise. It allows to define a space of reduced dimensions that preserveExpand