[oe] [PATCH 04/10] fluidsynth: performance improvements

Andreas Müller schnitzeltony at gmail.com
Fri Dec 1 18:23:53 UTC 2017


On Fri, Dec 1, 2017 at 6:52 PM, Khem Raj <raj.khem at gmail.com> wrote:

>
> >>
> >> > I wonder if gcc could be initiated to see if it can vectorize the
> code,
> >> > here
> >> > have you tried setting cmdline options or may be pragma hints
> >>
> >
> > I've sent patches like these to some projects. If I remember correctly
> first
> > one was jack2 [1]. For that I wrote some performance tests [2] and tested
> > vectorizing either but with disappointing results. This is ~ a year ago
> and
> > I think intrinsics are still the option performing better.
> >
> > [1]
> > https://github.com/jackaudio/jack2/commit/77bb8be12e0d856fbc004cf57185ab
> 36a2df04c2
> > [2]
> > https://github.com/jackaudio/jack2/commit/c32b823860bc8e887774ab10bc3e9b
> d76e85e3f3
>
> interesting. does it mean that vectorization sucks in gcc form arm ?
> and works ok on other architectures
>
I am not using other arches than ARM so I cannot help you here.

What I can say is that this patch together with setting fluidsynth to multi
threaded operation [1] helped me to play MIDI arrangements with >20 tracks
on Raspi3 without audible issues. Before it was a nightmare: Output was
distorted totally and XRUNS reached numbers > 1000 very soon.

A bit off-topic (but only a bit :) At the moment I am writing an extension
to qjackctl: Some chart for so called DSP performance and XRUN frequency to
gather reproducible numbers. So I can see exactly what change is an
enhancement and how much it increases performance. Once this is done I plan
to send this patch (and maybe others) upstream. I could try vectorizing
once again then.

Ahh - maybe I should mention: The patch causes effect only for fluidsynth
in multi threaded mode.

[1]
https://github.com/schnitzeltony/fluidsynth-dssi/commit/bad09c6f5c5508c5f5330aa5188510f975e50c50

Cheers

Andreas



More information about the Openembedded-devel mailing list