[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[fluid-dev] Parallelize rendering using openMP
From: |
Tom M. |
Subject: |
[fluid-dev] Parallelize rendering using openMP |
Date: |
Wed, 11 Apr 2018 20:59:29 +0200 |
I would like to rework fluidsynths parallel audio rendering. The current
implementation is not very efficient, the synchronization overhead seems to
dominate. At least for me, most of the time only one core is fully active. I
would like to get rid of that manual thread handling in rvoice_mixer and use
openMP to attempt a simpler, yet more efficient implementation. I think it
should be possible without any hard synchronization between threads. In case
the openMP implementation performs better than the current one, this will be
provided as a feature for the next major version. This means, in order to have
fluidsynth being able to render audio in parallel, it needs to be compiled
using a compiler that supports at least openMP 3.0, because I need the omp task
directive. OMP 3.0 was released in 2008. Nowadays all major compilers (clang,
gcc, Intel, IBM, Sun Studio) support this version... execpt Microsofts VC
compiler ofc, which is still lacking behind with openMP 2.0 (rel. 2002) and
apparently they have no plans to support any newer version [1] [2]. Just to be
clear: openMP would be an optional dependency. You can continue to compile
fluidsynth without it, it would just not be capable of parallel rendering.
Any thoughts on that? In case anybody is interested, you may follow the current
implementation progress: [3]
Reference issue with some nice pictures illustrating the basic implementation
of rvoice_mixer: [4]
Tom
[1]
https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/2276847-support-openmp-3-0-or-3-1
[2]
https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/13495731-add-support-for-openmp-4-5-to-vc
[3] https://github.com/FluidSynth/fluidsynth/compare/openmp
[4] https://github.com/FluidSynth/fluidsynth/issues/197
- [fluid-dev] Parallelize rendering using openMP,
Tom M. <=
Re: [fluid-dev] Parallelize rendering using openMP, Ceresa Jean-Jacques, 2018/04/16