Particle Filtering: The Need for Speed

The particle filter(PF) has during the last decade been proposed for a wide range of localization and tracking applications. There is a general need in such embedded system to have a platform for efficient and scalable implementation of the PF. One such platform is the graphics processing unit (GPU), originally aimed to be used for fast rendering of graphics. To achieve this, GPUs are equipped with a parallel architecture which can be exploited for general-purpose computing on GPU (GPGPU) as a complement to the central processing unit (CPU). In this paper, GPGPU techniques are used to make a parallel recursive Bayesian estimation implementation using particle filters. The modifications made to obtain a parallel particle filter, especially for the resampling step, are discussed and the performance of the resulting GPU implementation is compared to the one achieved with a traditional CPU implementation. The comparison is made using a minimal sensor network with bearings-only sensors. The resulting GPU filter, which is the first complete GPU implementation of a PF published to this date, is faster than the CPU filter when many particles are used, maintaining the same accuracy. The parallelization utilizes ideas that can be applicable for other applications.

[1]  Matthew Papakipos,et al.  Pseudorandom number generation on the GPU , 2006, GH '06.

[2]  Tom Davis,et al.  OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL(R), Version 2 (5th Edition) (OpenGL) , 2005 .

[3]  Matt Pharr,et al.  Gpu gems 2: programming techniques for high-performance graphics and general-purpose computation , 2005 .

[4]  Petros G. Voulgaris,et al.  On optimal ℓ∞ to ℓ∞ filtering , 1995, Autom..

[5]  A. Matteis,et al.  Parallelization of random number generators and long-range correlations , 1988 .

[6]  Branko Ristic,et al.  Beyond the Kalman Filter: Particle Filters for Tracking Applications , 2004 .

[7]  Jun S. Liu,et al.  Mixture Kalman filters , 2000 .

[8]  Cedric Nishan Canagarajah,et al.  Mobility Tracking in Cellular Networks Using Particle Filtering , 2007, IEEE Transactions on Wireless Communications.

[9]  Chih Jeng Kenneth Tan,et al.  The PLFG parallel pseudo-random number generator , 2002, Future Gener. Comput. Syst..

[10]  A. Jazwinski Stochastic Processes and Filtering Theory , 1970 .

[11]  Mark D. Hill,et al.  Amdahl's Law in the Multicore Era , 2008, Computer.

[12]  Coniferous softwood GENERAL TERMS , 2003 .

[13]  Gergely V. Záruba,et al.  Incorporating Data from Multiple Sensors for Localizing Nodes in Mobile Ad Hoc Networks , 2007, IEEE Transactions on Mobile Computing.

[14]  Thomas B. Schön,et al.  Marginalized particle filters for mixed linear/nonlinear state-space models , 2005, IEEE Transactions on Signal Processing.

[15]  T. Başar,et al.  A New Approach to Linear Filtering and Prediction Problems , 2001 .

[16]  Michael Mccool Signal Processing and General-Purpose Computing and GPUs [Exploratory DSP] , 2007, IEEE Signal Processing Magazine.

[17]  Petar M. Djuric,et al.  Resampling algorithms and architectures for distributed particle filters , 2005, IEEE Transactions on Signal Processing.

[18]  Krishnendu Chakrabarty,et al.  Distributed Mobility Management for Target Tracking in Mobile Sensor Networks , 2007, IEEE Transactions on Mobile Computing.

[19]  G. Hendeby,et al.  Performance and Implementation Aspects of Nonlinear Filtering , 2008 .

[20]  Tom Davis,et al.  Opengl programming guide: the official guide to learning opengl , 1993 .

[21]  Josef Stoer,et al.  Numerische Mathematik 1 , 1989 .

[22]  Michael D. McCool Signal Processing and General-Purpose Computing on GPUs , 2007 .

[23]  Fredrik Gustafsson,et al.  Particle filters for positioning, navigation, and tracking , 2002, IEEE Trans. Signal Process..

[24]  Sebastian Thrun,et al.  FastSLAM 2.0: An Improved Particle Filtering Algorithm for Simultaneous Localization and Mapping that Provably Converges , 2003, IJCAI.

[25]  N. Gordon,et al.  Novel approach to nonlinear/non-Gaussian Bayesian state estimation , 1993 .

[26]  Jim X. Chen,et al.  OpenGL Shading Language , 2009 .

[27]  Juan José Pantrigo,et al.  Particle filter on GPUs for real-time tracking , 2004, SIGGRAPH '04.

[28]  Fredrik Gustafsson,et al.  A graphics processing unit implementation of the particle filter , 2007, 2007 15th European Signal Processing Conference.

[29]  Simon Maskell,et al.  A Single Instruction Multiple Data Particle Filter , 2006, 2006 IEEE Nonlinear Statistical Signal Processing Workshop.

[30]  F Gustafsson,et al.  Particle filter theory and practice with positioning applications , 2010, IEEE Aerospace and Electronic Systems Magazine.

[31]  Randi J. Rost OpenGL(R) Shading Language (2nd Edition) , 2005 .

[32]  Qiang Yang,et al.  Reducing the Calibration Effort for Probabilistic Indoor Location Estimation , 2007, IEEE Transactions on Mobile Computing.

[33]  Timothy J. Robinson,et al.  Sequential Monte Carlo Methods in Practice , 2003 .

[34]  Yaakov Bar-Shalom,et al.  Estimation and Tracking: Principles, Techniques, and Software , 1993 .

[35]  G. Kitagawa Monte Carlo Filter and Smoother for Non-Gaussian Nonlinear State Space Models , 1996 .