"A GPU Implementation of an Explicit Compact FDTD Algorithm with a Digital Impedance Filter for Room Acoustics Applications"

Research areas:
  • Uncategorized
Year:
2015
Type of Publication:
Article
Keywords:
Digital impedance filter, Explicit compact finite difference time domain FDTD, Graphics processing unit GPU, Room acoustics
Authors:
  • C. Spa
  • A. Rey
  • E. Hernández
Journal:
IEEE-ACM TRANSACTIONS ON AUDIO SPEECH AND LANGUAGE PROCESSING
Volume:
23
Number:
8
Pages:
1368-1380
Month:
August
ISSN:
2329-9290
Abstract:
In recent years, computational engineering has undergone great changes due to the development of the graphics processing unit (GPU) technology. For example, in room acoustics, the wave-based methods, that formerly were considered too expensive for 3-D impulse response simulations, are now chosen to exploit the parallel nature of GPU devices considerably reducing the execution time of the simulations. There exist contributions related to this topic that have explored the performance of different GPU algorithms; however, the computational analysis of a general explicit model that incorporates algorithms with different neighboring orders and a general frequency dependent impedance boundary model has not been properly developed. In this paper, we present a GPU implementation of a complete room acoustic model based on a family of explicit finite-difference time-domain (FDTD) algorithms. We first develop a strategy for implementing a frequency independent (FI) impedance model which is free from thread divergences and then, we extend the model adding a digital impedance filter (DIF) boundary subroutine able to compute the acoustic pressure of different nodes such as corners or edges without an additional performance penalty. Both implementations are validated and deeply analyzed by performing different 3-D numerical experiments. Finally, we define a performance metric which is able to objectively measure the computing throughput of a FDTD implementation using a simple number. The robustness of this metric allows us to compare algorithms even if these have been run in different GPU cards or have been formulated with other explicit models.