CUDAICA: GPU Optimization of Infomax-ICA EEG Analysis

In recent years, Independent Component Analysis (ICA) has become a standard to identify relevant dimensions of the data in neuroscience. ICA is a very reliable method to analyze data but it is, computationally, very costly. The use of ICA for online analysis of the data, used in brain computing interfaces, results are almost completely prohibitive. We show an increase with almost no cost (a rapid video card) of speed of ICA by about 25 fold. The EEG data, which is a repetition of many independent signals in multiple channels, is very suitable for processing using the vector processors included in the graphical units. We profiled the implementation of this algorithm and detected two main types of operations responsible of the processing bottleneck and taking almost 80% of computing time: vector-matrix and matrix-matrix multiplications. By replacing function calls to basic linear algebra functions to the standard CUBLAS routines provided by GPU manufacturers, it does not increase performance due to CUDA kernel launch overhead. Instead, we developed a GPU-based solution that, comparing with the original BLAS and CUBLAS versions, obtains a 25x increase of performance for the ICA calculation.

[1]  Erkki Oja,et al.  Independent component analysis: algorithms and applications , 2000, Neural Networks.

[2]  Barak A. Pearlmutter,et al.  Independent Components of Magnetoencephalography: Localization , 2002, Neural Computation.

[3]  Jack J. Dongarra,et al.  A set of level 3 basic linear algebra subprograms , 1990, TOMS.

[4]  Terrence J. Sejnowski,et al.  An Information-Maximization Approach to Blind Separation and Blind Deconvolution , 1995, Neural Computation.

[5]  Andrzej Cichocki,et al.  A New Learning Algorithm for Blind Signal Separation , 1995, NIPS.

[6]  Josef Weidendorfer,et al.  Sequential Performance Analysis with Callgrind and KCachegrind , 2008, Parallel Tools Workshop.

[7]  S. Klinke,et al.  Exploratory Projection Pursuit , 1995 .

[8]  T. Sejnowski,et al.  Independent component analysis at the neural cocktail party , 2001, Trends in Neurosciences.

[9]  M. Laubach,et al.  Cortical ensemble activity increasingly predicts behaviour outcomes during learning of a motor task , 2000, Nature.

[10]  Tzyy-Ping Jung,et al.  Independent Component Analysis of Electroencephalographic Data , 1995, NIPS.

[11]  Erkki Oja,et al.  Independent component approach to the analysis of EEG and MEG recordings , 2000, IEEE Transactions on Biomedical Engineering.

[12]  Allen D. Malony,et al.  Parallel ICA methods for EEG neuroimaging , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[13]  V. Schöpf,et al.  Fully exploratory network ICA (FENICA) on resting-state fMRI data , 2010, Journal of Neuroscience Methods.

[14]  Scott Makeig,et al.  ERP Features and EEG Dynamics : An ICA Perspective , 2009 .

[15]  H. Harman Modern factor analysis , 1961 .

[16]  Yuefan Deng,et al.  New trends in high performance computing , 2001, Parallel Computing.

[17]  Jean-François Cardoso,et al.  Equivariant adaptive source separation , 1996, IEEE Trans. Signal Process..

[18]  T. Adali,et al.  Unmixing fMRI with independent component analysis , 2006, IEEE Engineering in Medicine and Biology Magazine.

[19]  Robert Oostenveld,et al.  FieldTrip: Open Source Software for Advanced Analysis of MEG, EEG, and Invasive Electrophysiological Data , 2010, Comput. Intell. Neurosci..

[20]  S Makeig,et al.  Blind separation of auditory event-related brain responses into independent components. , 1997, Proceedings of the National Academy of Sciences of the United States of America.

[21]  Tzyy-Ping Jung,et al.  Imaging brain dynamics using independent component analysis , 2001, Proc. IEEE.

[22]  Terrence J. Sejnowski,et al.  Enhanced detection of artifacts in EEG data using higher-order statistics and independent component analysis , 2007, NeuroImage.

[23]  Arnaud Delorme,et al.  EEGLAB: an open source toolbox for analysis of single-trial EEG dynamics including independent component analysis , 2004, Journal of Neuroscience Methods.

[24]  Pierre Comon,et al.  Independent component analysis, A new concept? , 1994, Signal Process..

[25]  Shun-ichi Amari,et al.  Neural Learning in Structured Parameter Spaces - Natural Riemannian Gradient , 1996, NIPS.

[26]  David M. Santucci,et al.  Learning to Control a Brain–Machine Interface for Reaching and Grasping by Primates , 2003, PLoS biology.

[27]  M. Nicolelis,et al.  Sensorimotor encoding by synchronous neural ensemble activity at multiple levels of the somatosensory system. , 1995, Science.

[28]  Seungjin Choi,et al.  Independent Component Analysis , 2009, Handbook of Natural Computing.

[29]  S. Makeig,et al.  Mining event-related brain dynamics , 2004, Trends in Cognitive Sciences.

[30]  Erkki Oja,et al.  Principal components, minor components, and linear neural networks , 1992, Neural Networks.

[31]  Aapo Hyvärinen,et al.  Fast and robust fixed-point algorithms for independent component analysis , 1999, IEEE Trans. Neural Networks.

[32]  Shun-ichi Amari,et al.  Natural Gradient Works Efficiently in Learning , 1998, Neural Computation.

[33]  Fusheng Yang,et al.  BCI competition 2003-data set IIb: enhancing P300 wave detection using ICA-based subspace projections for BCI applications , 2004, IEEE Transactions on Biomedical Engineering.

[34]  Kevin Skadron,et al.  Scalable parallel programming , 2008, 2008 IEEE Hot Chips 20 Symposium (HCS).

[35]  Jack J. Dongarra,et al.  Automated empirical optimizations of software and the ATLAS project , 2001, Parallel Comput..

[36]  V. Calhoun,et al.  Functional Brain Networks in Schizophrenia: A Review , 2009, Front. Hum. Neurosci..

[37]  Pedro Tomás,et al.  Efficient Independent Component Analysis on a GPU , 2010, 2010 10th IEEE International Conference on Computer and Information Technology.