FDTD Acceleration using MATLAB Parallel Computing Toolbox and GPU
Keywords:
FDTD, GPU, MATLABAbstract
We present a MATLAB based finite difference time domain (FDTD) method accelerated using the GPU functions in MATLAB’s parallel computing toolbox (PCT). Procedures to achieve significant speedups over a CPU implementation of the same code are outlined. The use of specialized code with NVIDIA's compute unified device architecture (CUDA) programming results in impressive computational speedups. However, this requires specialized programming knowledge to efficiently implement. The MATLAB PCT can be applied directly to pre-existing MATLAB FDTD code and obtain reasonable speedups over equivalent CPU code. We demonstrate several modifications to increase the efficiency on several different NVIDIA graphics cards. Benchmarks are presented on problems of practical size (millions of cells) with a CPML terminated domain.
Downloads
References
V. Demir and A. Z. Elsherbeni, “Compute unified device architecture (CUDA) based finite-difference time-domain (FDTD) implementation,” ACES Journal, vol. 25, no. 4, pp. 303-314, April 2010.
A. Z. Elsherbeni and V. Demir, The FiniteDifference Time-Domain Method for Electromagnetics with MATLAB Simulations. second edition, ACES Series on Computational Electromagnetics and Engineering, SciTech Publishing, an Imprint of IET, Edison, NJ, 2016.
V. Demir, “A stacking scheme to improve the efficiency of finite-difference time-domain solutions on graphics processing units,” ACES Journal, vol. 25, no. 4, pp. 323-330, April 2010.
Illustrating three approaches to GPU Computing: the Mandelbrot Set, http://www.mathworks.com/help/ distcomp/examples/illustrating-three-approaches-togpu-computing-the-mandelbrot-set.html, May, 2016.
Improve Performance of Element-wise MATLAB Functions on the GPU using ARRAYFUN, http://www.mathworks.com/help/distcomp/examp les/improve-performance-of-element-wise-matlabfunctions-on-the-gpu-using-arrayfun.html, May, 2016.
M. J. Inman, A. Z. Elsherbeni, and C. J. Reddy, “CUDA based LU decomposition solvers for CEM applications,” ACES Journal, vol. 25, no. 4, pp. 339-347, April 2010.
Joss Knight, High-Performance MATLAB with GPU Acceleration, https://devblogs.nvidia. com/parallelforall/high-performance-matlab-gpuacceleration, January 2017.
V. Demir, A. Z. Elsherbeni, CEMS Software Package, based on [2], 2014.
MATLAB Answers Forum Question, http:// www.mathworks.com/matlabcentral/answers/239 817-matlab-s-r2015b-new-jit-experiences-a-severedegradation-in-speed-in-the-following-examplebut-the, February 2017.