A graphics processing unit implementation of the particle filter

Modern graphics cards for computers, and especially their graphics processing units (GPUs), are designed for fast rendering of graphics. In order 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 GPU implementation of state-of-the-art recursive Bayesian estimation using particle filters (PF). 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 one achieved with a traditional CPU implementation. The resulting GPU filter is faster with the same accuracy as the CPU filter for many particles, and it shows how the particle filter can be parallelized.

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

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

[3]  Fredrik Gustafsson,et al.  On Resampling Algorithms for Particle Filters , 2006, 2006 IEEE Nonlinear Statistical Signal Processing Workshop.

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

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

[6]  Ali H. Sayed,et al.  Linear Estimation (Information and System Sciences Series) , 2000 .

[7]  Juan José Pantrigo,et al.  Improving GPU particle filter with shader model 3.0 for visual tracking , 2006, SIGGRAPH '06.

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

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

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

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

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

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

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

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

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

[17]  Nando de Freitas,et al.  Sequential Monte Carlo Methods in Practice , 2001, Statistics for Engineering and Information Science.

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