Symphony of a Thousand
GPU Synthesis With Massively Parallel Oscillators
In the last few years, there has been an increasing interest in GPU DSP research. While the GPU brings highly parallel processing to the mix, the problems in implementing the real-time requirements and data flow of a GPU audio pipeline are well known. There are other challenges that stand out, such as the complexities of running GPU apps on consumer hardware, as well as identifying "killer apps" for GPU audio: desirable use cases where the GPU really shines and outclasses a classical CPU implementation for the everyday musician.
The aim of this talk is to cover the design, implementation, tradeoffs and compromises needed to build and run a basic GPU synthesizer on consumer hardware. This talk will be hands-on and suitable for audio developers that are relatively fresh to GPU applications in particular. We will present an algorithm implemented in NVIDIA CUDA that is based on straightforward wavetable synthesis and leverages the GPU's parallelism to outclass an equivalent CPU implementation. We will show how to integrate this algorithm and its CUDA kernels with JUCE to create a proof-of-concept synthesizer app.
The usual real-time challenges such as CPU-GPU copying, latency and buffering are addressed, and more hands-on issues such as interopability with 3D graphics running on the same GPU as well as real-time scheduling and persistent kernels will be covered as well as needed.
We purposely target lower-end hardware to explore the feasibility of a GPU synthesizer on consumer hardware, and to possibly enable a path towards a more extensive standalone "GPU hardware synthesizer" in the future.
Cecill Etheredge
CTO
KoalaDSP B.V.
In daily life, Cecill serves as the Technical Director of KoalaDSP, a European startup focused on whitelabel DSP, middleware and audio plugin development for major industry players. In the remaining hours, Cecill channels his engineering skills and artistic flair into tackling challenging and complex problems, driven by a classic hacker ethos and curiosity. With a lifelong passion for technology and music, and over 20 years of experience in areas involving hardware, games, graphics, audio & algorithms, Cecill is still on a never-ending journey to learn, to create impactful innovations, and to share the lessons learned with others.
Cecill's experience with GPGPU began in 2008 during the early days of NVIDIA CUDA and Cg with the development of custom graphics rasterization and voxel raytracing algorithms at the University of Twente. This led to a more prominent role in researching & creating mass-spring physics algorithms in CUDA for medical systems with sub-millisecond real-time haptics. The drive to explore new uses for GPGPU has never left ever since. Today, with GPGPU technology more relevant than ever, the integration of GPGPU and audio has become particularly significant and personally relevant.