Abstract
New computational architectures, such as multi-core processors and graphics processing units (GPUs), pose challenges to application developers. Although in the case of general-purpose GPU programming, environments and toolkits such as CUDA and OpenCL have simplified application development, different ways of thinking about memory access, storage, and program execution are required. This paper presents a strategy for implementing a specific signal processing technique for blind-source separation: infomax independent component analysis (ICA). Common linear algebra operations are mapped to a low cost programmable graphics card using the OpenCL programming toolkit. Because many components of ICA are inherently parallel, ICA computations can be accelerated by low cost parallel hardware. Experimental results on simulated and speech signals indicate that efficiency gains and scalability are achievable through general-purpose GPU implementation, and suggest that important applications in telecommunications, speech processing, and biomedical signal analysis can benefit from these new architectures. The utilization of low cost GPUs for programming may potentially facilitate real-time applications of previously offline algorithms.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Stone, J.V.: Independent Component Analysis: A Tutorial Introduction. MIT Press, Cambridge (2004)
Hyvärinen, A., Oja, E.: Independent Component Analysis: Algorithms and Applications. Neural Networks 13, 411–430 (2000)
Ding, P., Kang, X., Zhang, L.: Personal Recognition Using ICA. In: Proceedings ICONIP (2001)
Esposito, F., et al.: Real-time Independent Component Analysis of fMRI Time-series. Neuroimage 20(4), 2209–2224 (2003)
Moore, S.K.: Multicore CPUs: Processor Proliferation- From Multicore to Many-core to Hard-to-describe-in-a-single-word Core. IEEE Spectrum, 40–42 (January 2011)
Kirk, D.B., Hwu, W.W.: Programming Massively Parallel Processors: A Hands on Approach. Morgan Kaufman, Burlington (2010)
Mushi, A.: OpenCL Specification Version 1.0. The Kronos Group (2009), www.khronos.org/registry/cl
Blake, G., Dreslinksi, R.G., Mudge, T.: A Survey of Multicore Processors. IEEE Sig. Proc. Mag. 26(6), 26–37 (2009)
NVIDIA OpenCL Best Practices Guide Version 1.0, NVIDIA (August 10, 2009)
Hyvärinen, A.: Fast and Robust Fixed-Point Algorithms for Independent Component Analysis. IEEE Transactions on Neural Networks 10(3), 626–634 (1999)
Bell, A.J., Sejnowski, T.J.: An Information-Maximization Approach to Blind Separation and Blind Deconvolution. Neural Computation 7, 1129–1159 (1995)
Cardoso, J.F.: High-Order Contrasts for Independent Component Analysis. Neural Computation 11, 157–192 (1999)
Belouchrani, A., Abed-Meraim, K., Cardoso, J.F., Moulines, E.: A Blind Source Separation Technique Based on Second-Order Statistics. IEEE Transactions on Signal Processing 45, 434–444 (1997)
Kachenoura, A., Albera, L., Senhadji, L., Comon. P.: ICA: A Potential Tool for BCI Systems. IEEE Signal Processing Magazine, 57–68 (January 2008)
Lee, T.-W., Girolami, M., Sejnowski, T.J.: Independent Component Analysis Using an Extended Infomax Algorithm for Mixed Subgaussian and Supergaussian Sources. Neural Computation 11, 417–441 (1999)
Oliva-Moreno, L.N., Arce-Aleman, M.A., Lamont, J.G.: Implementation of Infomax ICA Algorithm for Blind Source Separation. In: Electronics, Robotics and Automotive Mechanics Conference, pp. 447–451. IEEE Press, Los Alamitos (2008)
Cardoso, J.F.: Infomax and Maximum Likelihood for Source Separation. IEEE Letters on Signal Processing 4, 112–114 (1997)
Stone, J.E., Gohara, D., Shi, G.: OpenCL: A Parallel Programming Standard for Heterogeneous Computing Systems. Computing in Science and Engineering 12(3), 66–73 (2010)
Schnabel, R.B.: A View of the Limitations, Opportunities, and Challenges in Parallel Nonlinear Optimization. Parallel Computing 21(3), 875–905 (1995)
Volkov, V., Demmel, J.W.: Benchmarking GPUs to Tune Dense Linear Algebra. In: Proc. 2008 ACM/IEEE Conference on Supercomputing, pp. 1–11 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Forgette, J., Wachowiak-SmolĂková, R., Wachowiak, M. (2011). Implementing Independent Component Analysis in General-Purpose GPU Architectures. In: Snasel, V., Platos, J., El-Qawasmeh, E. (eds) Digital Information Processing and Communications. ICDIPC 2011. Communications in Computer and Information Science, vol 189. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22410-2_20
Download citation
DOI: https://doi.org/10.1007/978-3-642-22410-2_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-22409-6
Online ISBN: 978-3-642-22410-2
eBook Packages: Computer ScienceComputer Science (R0)