A Comparison of Highly Configurable CPU- and GPU-Based Convolution Engines
In this work the performance of real-time audio signal processing convolution engines is evaluated. A CPU-based implementation using the Integrated Performance Primitives Library and two GPU-based implementations using CUDA and OpenCL are compared. The purpose of these convolution engines is auralization, e.g., the binaural rendering of virtual multichannel configurations. Any multichannel input and output configuration is supported, e.g., 22.2 to 5.1, 7.1 to 2.0, vice versa, etc. This ability results in a trade-off between configurability and performance. Using a 5.1-to-binaural setup with continuous filter changes due to simulated head-tracking, GPU processing is more efficient when 24 filters of more than 1.92 seconds duration each @ 48 kHz sampling rate are convolved. The GPU is capable of convolving longer filters in real-time than a CPU-based processing. By comparing both GPU-based implementations, negligible performance differences between OpenCL and CUDA were measured.
Click to purchase paper as a non-member or login as an AES member. If your company or school subscribes to the E-Library then switch to the institutional version. If you are not an AES member and would like to subscribe to the E-Library then Join the AES!
This paper costs $33 for non-members and is free for AES members and E-Library subscribers.
The Engineering Briefs at this Convention were selected on the basis of a submitted synopsis, ensuring that they are of interest to AES members, and are not overly commercial. These briefs have been reproduced from the authors' advance manuscripts, without editing, corrections, or consideration by the Review Board. The AES takes no responsibility for their contents. Paper copies are not available, but any member can freely access these briefs. Members are encouraged to provide comments that enhance their usefulness.