Fast Audio Thread Synchronization for GPU Data - Evan Mezeske - ADC23

  Рет қаралды 907

ADC - Audio Developer Conference

ADC - Audio Developer Conference

24 күн бұрын

Join Us For ADC24 - Bristol - 11-13 November 2024
More Info: audio.dev/
@audiodevcon​
Fast Audio Thread Synchronization for GPU Data - Evan Mezeske - ADC 2023
While building my GPU-based physics simulation instrument Anukari ( • Introducing Anukari ), I had to solve a number of significant challenges, and I'll explain my solutions in this talk. The talk is not about Anukari per se; rather it's about some of the interesting solutions I developed as part of building it.
One challenge had to do with synchronizing the Anukari's data model from the GUI thread to the audio thread. Anukari models arbitrary networks of masses and springs, and can simulate close to a thousand masses and many thousands of springs. This data model is thus rather large, and it was nontrivial to provide model updates from the GUI to the audio thread. I designed a reliable wait-free approach that works without mutexes, without memory allocation, has support for transactions, and with minimal data transfer between threads. I will discuss a few technologies that I used together, including wait-free SPSC queues, the difference between wait-free and lock-free algorithms, reasons for avoiding mutexes and memory allocations, and custom data structures for avoiding memory allocations.
Another challenge was in regards to running GPU physics simulations at audio sample rates (48kHz). Memory bandwidth was a major issue, as well as kernel execution latency and cross-GPU-thread synchronization. I will discuss the OpenCL language and its limitations, the approaches I used to deal with OpenCL kernel execution latency, and the on-GPU thread synchronization, and memory optimizations..
And, of course, I will show how all of this ties together into a reliable system for synchronizing the GUI and audio threads with no waits, despite a large data model and compute-intensive physics simulation.
Prerequisite(s): Familiarity with C++ programming Familiarity with thread synchronization primitives like mutexes.
_
Evan Mezeske
Evan Mezeske is a software engineer and amateur musician based out of Arizona, USA. He spent the last 10 years working as a senior engineering leader on large-scale distributed systems at Google before defecting in early 2023 to found his music software company, Anukari Music. Anukari's upcoming eponymous flagship product will allow users to construct 3D arbitrary models of springs and masses and to manipulate them in real time to produce music, sound effects, and audio filters ( / @anukarimusic . Primarily a jazz guitarist, Evan also plays keyboards, produces electronic music, and enjoys learning obscure musical instruments (such as the two-chamber Peruvian Ocarina). Anyone interested in learning more about Anukari is encouraged to join Anukari's Discord server! / discord
_
Streamed & Edited by Digital Medium Ltd: online.digital-medium.co.uk
_
Organized and produced by JUCE: juce.com/
_
Special thanks to the ADC23 Team:
Sophie Carus
Derek Heimlich
Andrew Kirk
Bobby Lombardi
Tom Poole
Ralph Richbourg
Jim Roper
Jonathan Roper
Prashant Mishra
#adc #cppprogramming #dsp #audio

Пікірлер: 3
@clayrab
@clayrab 19 күн бұрын
Super innovative stuff. It's amazing what a bit of real low level engineering can unlock.
@anukarimusic
@anukarimusic 23 күн бұрын
00:00 Introduction 00:47 What is Anukari? 02:43 Chapter 1: Thread Synchronization 09:38 Wait-free Diff Queue 21:38 Intermission: A Simple way to prove NO memory allocation 24:45 Chapter 2: GPU Computation 31:57 GPU synchronization bug: crazy physics explosion video
@thtithilrunagate4577
@thtithilrunagate4577 23 күн бұрын
ADC, could you please post the 20 minute Q&A for this session? I did not get to see it but am very interested in doing so
Odd Challenges of Using Deep Learning in Designing a Feedback Delay Network Reverb - ADC23
44:10
ТАМАЕВ УНИЧТОЖИЛ CLS ВЕНГАЛБИ! Конфликт с Ахмедом?!
25:37
КАК ДУМАЕТЕ КТО ВЫЙГРАЕТ😂
00:29
МЯТНАЯ ФАНТА
Рет қаралды 5 МЛН
How Many Balloons Does It Take To Fly?
00:18
MrBeast
Рет қаралды 139 МЛН
Did you believe it was real? #tiktok
00:25
Анастасия Тарасова
Рет қаралды 56 МЛН
Creating Ubiquitous, Composable, Performant DSP Modules - Stefano D’Angelo - ADC23
42:35
ADC - Audio Developer Conference
Рет қаралды 833
Why I Chose Rust Over Zig
33:18
ThePrimeTime
Рет қаралды 34 М.
NVIDIA Unveils "NIMS" Digital Humans, Robots, Earth 2.0, and AI Factories
1:13:59
Creator of git, Linus Torvalds Presents the Fundamentals of git
1:10:15
Developers Alliance
Рет қаралды 23 М.
The Man Who Revolutionized Computer Science With Math
7:50
Quanta Magazine
Рет қаралды 2,8 МЛН
Coding a Web Server in 25 Lines - Computerphile
17:49
Computerphile
Рет қаралды 328 М.
iPhone socket cleaning #Fixit
0:30
Tamar DB (mt)
Рет қаралды 12 МЛН
Красиво, но телефон жаль
0:32
Бесполезные Новости
Рет қаралды 963 М.
Samsung Galaxy Unpacked July 2024: Official Replay
1:8:53
Samsung
Рет қаралды 23 МЛН