Abstract
Several applications in the field of bioinformatics require extracting individual source signals from a large amount of observed data (signal mixtures). Among the available solutions, a possible approach is the independent component analysis (ICA). However, this computationally intensive algorithm does not fit for many real-time or large size data applications. As a result, this shortcoming calls for speeding up the execution of this algorithm. Recently, graphics processing units (GPUs) have emerged as general-purpose parallel processing accelerators. This platform has the potentials to be leveraged in processing a large amount of signals received from medical devices such as EEG and ECG tools. This work provides the implementation of an ICA algorithm, Joint Approximate Diagonalization of Eigen-matrices (JADE), on a low cost programmable graphics cards using CUDA programming toolkits. For this implementation, we achieved an overall speedup of over 7.9x for estimating 64 components, each with 9760 samples.
Chapter PDF
Similar content being viewed by others
Keywords
References
Hyvärinen, A., Oja, E.: Independent Component Analysis, Algorithms and Applications. Neural Networks 13(4-5), 411–430 (2000)
Bell, A.J., Sejnowski, T.J.: An Information-maximization Approach to Blind Separation and Blind Deconvolution. Neural Computation 7(6), 1129–1159 (1995)
Cardoso, J., Souloumiac, A.: Blind Beamforming for Non-Gaussian Signals. IEE Proceedings. Part F. Radar and Signal Processing 140(6), 362–370 (1993)
Févotte, C., Theis, F.J.: Orthonormal Approximate Joint Block-diagonalization. Technical Report (2007)
NVIDIA Corporation: NVIDIA CUDA C Programming Guide. Version 4.1 (2011)
Forgette, J., Wachowiak-Smolíková, R., Wachowiak, M.: Implementing Independent Component Analysis in General-Purpose GPU Architectures. In: Snasel, V., Platos, J., El-Qawasmeh, E. (eds.) ICDIPC 2011, Part II. CCIS, vol. 189, pp. 233–243. Springer, Heidelberg (2011)
Brandt, D.: Investigation of GPGPU for Use in Processing of EEG in Real-time. Master Thesis (2010)
Ramalho, R., Tomás, P., Sousa, L.: Efficient Independent Component Analysis on a GPU. In: 2010 IEEE 10th International Conference on Computer and Information Technology, CIT, pp. 1128–1133 (2010)
Forgette, J., Wachowiak-Smolíková, R., Wachowiak, M.: Scalable Parallel Implementation of Independent Components Analysis on the Graphics Processing Unit. In: 2011 24th Canadian Conference on Electrical and Computer Engineering, CCECE, pp. 912–916 (2011)
Liang, T.-Y., Wang, T.-H.: A Cloud Computing Service for Fast Audio Source Signal Separation. In: 2011 IEEE International Workshop on Machine Learning for Signal Processing, MLSP, pp. 1–6 (2011)
Raimondo, F., Kamienkowski, E.J., Sigman, M., Slezak, D.F.: CUDAICA: GPU Optimization of Infomax-ICA EEG Analysis. Computational Intelligence and Neuroscience 2012, Article ID 206972 (2012)
Jiang, C., Li, P., Luo, Q.: High Speed Parallel Processing of Biomedical Optics Data with PC Graphic Hardware. In: Proc. of SPIE-OSA-IEEE Asia Communications and Photonics, SPIE, vol. 7634, p. 76340U (2009)
Himawan, B., Vachharajani, M.: Deconstructing Hardware Usage for General Purpose Computation on GPUs. In: Fifth Annual Workshop on Duplicating, Deconstructing, and Debunking (in Conjunction with ISCA-33) (2006)
Blackford, L.S., Demmel, J., Dongarra, J.J., Duff, I.S., Hammarling, S., Henry, G., Heroux, M., Kaufman, L., Lumsdaine, A., Petitet, A., Pozo, R., Remington, K.: An Updated Set of Basic Linear Algebra Subprograms (BLAS). ACM Trans. Math. Soft. 28(2), 135–151 (2002)
Anderson, E., Bia, Z., Bischof, C., Blackford, S., Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A., Sorensen, D.: LAPACK users’ guide, 3rd edn. SIAM (1999)
Hyvärinen, A., Karhunen, J., Oja, E.: Independent Component Analysis. John Wiey & Sons (June 1, 2001)
NVIDIA Corporation: CUBLAS Library. CUDA Toolkit 4.1 (January 2012)
NVIDIA Corporation: CUSPARCE Library. CUDA Toolkit 4.1 (January 2012)
Harris, M.: Optimizing Parallel Reduction in CUDA. CUDA Webinar, NVIDIA Corporation (2007)
Goldberger, A.L., Amaral, L.A.N., Glass, L., Hausdorff, J.M., Ivanov, P.C., Mark, R.G., Mietus, J.E., Moody, G.B., Peng, C.K., Stanley, H.E.: PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals. Circulation 101(23), e215–e220 (2000)
EEG Motor Movement/Imagery Dataset, http://www.physionet.org/pn4/eegmmidb/
Schalk, G., McFarland, D.J., Hinterberger, T., Birbaumer, N., Wolpaw, J.R.: BCI2000: A General-Purpose Brain-Computer Interface (BCI) System. IEEE Transactions on Biomedical Engineering 51(6), 1034–1043 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Foshati, A., Khunjush, F. (2013). A Novel Implementation of Double Precision and Real Valued ICA Algorithm for Bioinformatics Applications on GPUs. In: Caragiannis, I., et al. Euro-Par 2012: Parallel Processing Workshops. Euro-Par 2012. Lecture Notes in Computer Science, vol 7640. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36949-0_31
Download citation
DOI: https://doi.org/10.1007/978-3-642-36949-0_31
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36948-3
Online ISBN: 978-3-642-36949-0
eBook Packages: Computer ScienceComputer Science (R0)