JACIII Vol.20 No.5 pp. 743-754
doi: 10.20965/jaciii.2016.p0743


Evaluation of an OpenCL-Based FPGA Platform for Particle Filter

Shunsuke Tatsumi*, Masanori Hariyama*, and Norikazu Ikoma**

*Graduate School of Information Sciences, Tohoku University
6-6-05 Aramaki Aza Aoba, Aoba, Sendai 980-8579, Japan

**Faculty of Engineering, Nippon Institute of Technology
4-1 Gakuendai, Miyashiro-machi, Minamisaitama-gun, Saitama 345-8501, Japan

February 20, 2016
June 13, 2016
September 20, 2016
particle filter, Monte Carlo method, parallel processing, OpenCL, FPGA
Particle filter is one promising method to estimate the internal states in dynamical systems, and can be used for various applications such as visual tracking and mobile-robot localization. The major drawback of particle filter is its large computational amount, which causes long computational-time and large power-consumption. In order to solve this problem, this paper proposes an Field-Programmable Gate Array (FPGA) platform for particle filter. The platform is designed using the OpenCL-based design tool that allows users to develop using a high-level programming language based on C and to change designs easily for various applications. The implementation results demonstrate the proposed FPGA implementation is 106 times faster than the CPU one, and the power-delay product of the FPGA implementation is 1.1% of the CPU one. Moreover, implementations for three different systems are shown to demonstrate flexibility of the proposed platform.
Cite this article as:
S. Tatsumi, M. Hariyama, and N. Ikoma, “Evaluation of an OpenCL-Based FPGA Platform for Particle Filter,” J. Adv. Comput. Intell. Intell. Inform., Vol.20 No.5, pp. 743-754, 2016.
Data files:
  1. [1] N. J. Gordon, D. J. Salmond, and A. F. M. Smith, “Novel approach to nonlinear/non-Gaussian Bayesian state estimation,” IEE Proc. F, Vol.140, No.2, pp. 107-113, 1993.
  2. [2] G. Kitagawa, “Monte Carlo Filter and Smoother for Non-Gaussian Nonlinear State Space Models,” J. of Computational and Graphical Statistics, Vol.5, No.1, pp. 1-25, 1996.
  3. [3] M. Isard and A. Blake, “CONDENSATION – Conditional Density Propagation for Visual Tracking,” Int. J. of Computer Vision, Vol.29, Issue 1, pp. 5-28, 1998.
  4. [4] N. Ikoma, “Hands and Arms Motion Estimation of a Car Driver with Depth Image Sensor by Using Particle Filter,” Proc. of the 14th Int. Symp. on Advanced Intelligent Systems (ISIS), pp. 75-84, 2013.
  5. [5] N. Ikoma and A. Asahara, “Real Time Color Object Tracking on Cell Broadband Engine Using Particle Filters,” J. of Advanced Computational Intelligence and Intelligent Informatics (JACIII), Vol.14, No.3, pp. 272-280, 2010.
  6. [6] T. C. P. Chau, J. S. Targett, M. Wijeyasinghe, W. Luk, P. Y. K. Cheung, B. Cope, A. Eele, and J. Maciejowski, “Accelerating Sequential Monte Carlo Method for Real-time Air Traffic Management,” ACM SIGARCH Computer Architecture News, Vol.41, Issue 5, pp. 35-40, 2013.
  7. [7] Z. Shi, Y. Liu, S. Hong, J. Chen, and X. S. Shen, “POSE: Design of Hardware-Friendly Particle-Based Observation Selection PHD Filter,” IEEE Trans. on Industrial Electronics, Vol.61, No.4, pp. 1944-1956, 2014.
  8. [8] L. Miao, J. J. Zhang, C. Chakrabarti, and A. Papandreou-Suppappola, “Efficient Bayesian Tracking of Multiple Sources of Neural Activity: Algorithms and Real-Time FPGA Implementation,” IEEE Trans. on Signal Processing, Vol.61, No.3, pp. 633-647, 2013.
  9. [9] M. M. Bolić, “Architectures for Efficient Implementation of Particle Filters,” Ph.D. thesis, State University of New York at Stony Brook, 2004.
  10. [10] P. Engineer, R. Velmurugan, and S. B. Patkar, “Parameterizable FPGA framework for particle filter based object tracking in video,” 28th Int. Conf. on VLSI Design (VLSID), pp. 35-40, 2015.
  11. [11] Khronos Group, 2010, The OpenCL Specification, available:
  12. [12] “Altera SDK for OpenCL,”
  13. [13] A. Athalye, M. Boli’c, S. Hong, and P. M. Djuri’c, “Generic Hardware Architectures for Sampling and Resampling in Particle Filters,” EURASIP J. on Applied Signal Processing, Vol.2005, No.17, pp. 2888-2902, 2005.
  14. [14] Altera SDK for OpenCL Best Practices Guide, available:
  15. [15] “OpenCL: Single-threaded (Task) vs Multi-threaded (NDRange),”
  16. [16] M. Matsumoto and T. Nishimura, “Mersenne Twister: A 623-Dimensionally Equidistributed Uniform Pseudo-Random Number Generator,” ACM Trans. on Modeling and Computer Simulation (TOMACS), Vol.8, Issue 1, pp. 3-30, 1998.
  17. [17] “Monte Carlo Black-Scholes Asian Options Pricing Design Example,”
  18. [18] Altera SDK for OpenCL Programming Guide, available:
  19. [19] Stratix V Device Overview, available:

*This site is desgined based on HTML5 and CSS3 for modern browsers, e.g. Chrome, Firefox, Safari, Edge, Opera.

Last updated on May. 19, 2024