Re: [LAD] vectorization

From: Jens M Andreasen <jens.andreasen@email-addr-hidden>
Date: Fri Apr 18 2008 - 13:47:18 EEST

The quest for auto-vectorization continues. Introducing the Intel
icc/icpc combo (scroll down ...)

On Wed, 2008-04-16 at 17:37 +0200, torbenh@email-addr-hidden wrote:
> On Wed, Apr 16, 2008 at 04:46:10PM +0200, Jens M Andreasen wrote:
> > Benchmarking mixdown (no coeff):
> > pure C++ : 100 ms
> > ASM SSE : 140 ms
> > GCC vector extensions : 120 ms
> >
> > Benchmarking mixdown (WITH coeff):
> > pure C++ : 120 ms
> > ASM SSE : 150 ms
> > GCC vector extensions : 170 ms
> >
> > One more time for those who missed it the first time, this time
> > commenting out everything but 'pure cpp w coff':
> >
> > Benchmarking mixdown (WITH coeff):
> > pure C++ : 120 ms <-- bloody murder!
>
> hmm.. perhaps i should upgrade my gcc...
>

If you want to upgrade for speed, consider icc as well. This test is
again the "pure CPP" loop only as per above:

[root@email-addr-hidden mixdown]# make
icpc -O3 -msse -c mixdown.cpp
mixdown.cpp(159): (col. 9) remark: PERMUTED LOOP WAS VECTORIZED.
mixdown.cpp(58): (col. 5) remark: LOOP WAS VECTORIZED.
mixdown.cpp(54): (col. 5) remark: LOOP WAS VECTORIZED.
icpc -O3 -msse -o mixdown *.o
[root@email-addr-hidden mixdown]# ./mixdown

Benchmarking mixdown (WITH coeff):
                : 80 ms <-- shaved off yet another 30%

> on the vector extension:
>
> you should not use it. use xmmintrin.h which even exists on MSVC to
> make code compatible... however altivec is not supported then.
>

I spend about 20 - 30 minutes on checking pre-conditions,
post-conditions and reordering/doubling the ASM in the loop for these
two lines of C code, to match the results from g++. I dunno how long
time it would (hypothetically) take to match the output from icpc?

More interresting would be some "real" code. I just did a preliminary
test on a 4-pole filter written in C that I have here. It compiles and
something appeared to happen in the vector department, but I am not sure
how much or what, yet ..

For Altivec: Isn't it so that IBM has some nifty auto-vectorizing
compilers as well?
>
> >
> >
> >
> > _______________________________________________
> > Linux-audio-dev mailing list
> > Linux-audio-dev@email-addr-hidden
> > http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
>

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

This archive was generated by hypermail 2.1.8 : Fri Apr 18 2008 - 16:15:03 EEST