Re: [LAD] vectorization

From: Sampo Savolainen <v2@email-addr-hidden>
Date: Tue Apr 15 2008 - 21:12:22 EEST

On Tue, 2008-04-15 at 19:45 +0200, Christian Schoenebeck wrote:
> Yeah, I'm respawning this topic ...
>
> because I was curious how the GCC vector extension situation changed meanwhile
> and wrote a small benchmark for mixing signals with and without gain. You can
> find it here:
>
> http://download.linuxsampler.org/dev/mixdown.tar.gz
>
> I compared a pure C++ implementation vs. the hand crafted SSE assembly code
> (by Sampo Savolainen, Ardour) and of course an implementation utilizing GCC's
> vector extensions. On my very weak, but environment friendly ;-) VIA box the
> GCC vector implementation outperforms the other two solutions (using GCC
> 4.2.3 BTW):
>
> Benchmarking mixdown (no coeff):
> pure C++ : 670 ms
> ASM SSE : 200 ms
> GCC vector extensions : 180 ms
>
> Benchmarking mixdown (WITH coeff):
> pure C++ : 890 ms
> ASM SSE : 300 ms
> GCC vector extensions : 230 ms

Great stuff, very interesting. It seems it's finally getting easier to
vectorize functions. Too bad the code is awfully slow for non-sse
compiles. That still leaves the responsibility of choosing the fastest
algorithms per architecture at runtime to the application developers.

What about gcc 4.3.0 performance? I seem to recall that 4.3 should have
even better vectorization support.

I have to test whether I could squeeze a few more cycles out of
compute_peak(). That algorithm is the sole reason I started writing SSE
for ardour. The function uses a huge amount of computing time without
optimization.

  Sampo

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Received on Wed Apr 16 00:15:02 2008

This archive was generated by hypermail 2.1.8 : Wed Apr 16 2008 - 00:15:02 EEST