SMCGen: Generating Reconfigurable Design for Sequential Monte Carlo Applications

The Sequential Monte Carlo (SMC) method is a simulation-based approach to compute posterior distributions. SMC methods often work well on applications considered intractable by other methods due to high dimensionality, but they are computationally demanding. While SMC has been implemented efficiently on FPGAs, design productivity remains a challenge. This paper introduces a design flow for generating efficient implementation of reconfigurable SMC designs. Through templating the SMC structure, the design flow enables efficient mapping of SMC applications to multiple FPGAs. The proposed design flow consists of a parametrisable SMC computation engine, and an open-source software template which enables efficient mapping of a variety of SMC designs to reconfigurable hardware. Design parameters that are critical to the performance and to the solution quality are tuned using a machine learning algorithm based on surrogate modelling. Experimental results for three case studies show that design performance is substantially improved after parameter optimisation. The proposed design flow demonstrates its capability of producing reconfigurable implementations for a range of SMC applications that have significant improvement in speed and in energy efficiency over optimised CPU and GPU implementations.

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

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

[3]  Nando de Freitas,et al.  An Introduction to Sequential Monte Carlo Methods , 2001, Sequential Monte Carlo Methods in Practice.

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

[5]  William Whittaker,et al.  Conditional particle filters for simultaneous mobile robot localization and people-tracking , 2002, Proceedings 2002 IEEE International Conference on Robotics and Automation (Cat. No.02CH37292).

[6]  Roberto Casarin,et al.  Bayesian Monte Carlo Filtering for Stochastic Volatility Models , 2004 .

[7]  Wayne Luk,et al.  High Quality Uniform Random Number Generation Using LUT Optimised State-transition Matrices , 2007, J. VLSI Signal Process..

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

[9]  J. Maciejowski,et al.  Sequential Monte Carlo for Model Predictive Control , 2009 .

[10]  Drew D. Creal A Survey of Sequential Monte Carlo Methods for Economics and Finance , 2012 .

[11]  Wayne Luk,et al.  An FPGA-specific algorithm for direct generation of multi-variate Gaussian random numbers , 2010, ASAP 2010 - 21st IEEE International Conference on Application-specific Systems, Architectures and Processors.

[12]  Marco Platzner,et al.  A self-adaptive heterogeneous multi-core architecture for embedded real-time video object tracking , 2011, Journal of Real-Time Image Processing.

[13]  Wayne Luk,et al.  Heterogeneous Reconfigurable System for Adaptive Particle Filters in Real-Time Applications , 2013, ARC.

[14]  Pierre Sens,et al.  Predicting Popularity and Adapting Replication of Internet Videos for High-Quality Delivery , 2013, FCCM 2013.

[15]  Wayne Luk,et al.  Parallelisation of Sequential Monte Carlo for real-time control in air traffic management , 2013, 52nd IEEE Conference on Decision and Control.

[16]  Wayne Luk,et al.  Accelerating sequential Monte Carlo method for real-time air traffic management , 2014, CARN.

[17]  Yunfei Chen,et al.  On secrecy outage of MISO SWIPT systems in the presence of imperfect CSI , 2016, 2016 24th European Signal Processing Conference (EUSIPCO).