fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] parallel loading of soundfont samples


From: Hamish Moffatt
Subject: Re: [fluid-dev] parallel loading of soundfont samples
Date: Fri, 30 Oct 2020 11:12:41 +1100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0

On 30/10/20 5:42 am, Marcus Weseloh wrote:
Hi,

for anybody who wants to try the OpenMP parallel loading, I've just
pushed the fix for the vorbis load to use separate file pointers to
Toms branch here:
https://github.com/FluidSynth/fluidsynth/tree/parallelize-sf3-loading

Hamish, would be great to see how that performs on your 6 core
machine. Like I said, I get a little over twice the speed on four
cores.
And the loaded font does actually play a test midi file... so at least
it's not completely broken :-)

Beautiful! Over 6 times faster. Here's master:

./fluidsynth -i -a file *.sf3  9.13s user 0.17s system 99% cpu 9.298 total

And here's the parallel version:

./fluidsynth -i -a file *.sf3  15.22s user 0.38s system 1105% cpu 1.411 total

Sounds good too.


To answer your question, is it enough? Yes, but now that I am loading in the background I will keep doing that too. Here's what I have done over time.

1. Block while load soundfonts. I used to use 1xSF2, 1xSF3 so is was ~5 seconds.

2. Start loading soundfonts (2xSF3) in a background thread (~10 seconds), do other initialisations, wait for soundfonts to finish, unblock application.

3. Start loading soundfonts, do other initialisation, unblock application, and only block again if the user tries to use the synth before loading is finished (not common).


So now I have #3 it's not really important for me to speed up the loading any further, but I posted this just for interest's sake and I'm glad it's generated some discussion, and I think other applications can benefit too. In order to get the best out of modern CPUs we have to use more threads as the cores aren't getting much faster.


cheers

Hamish




reply via email to

[Prev in Thread] Current Thread [Next in Thread]