[LAD] vectorization

Jens M Andreasen jens.andreasen at comhem.se
Fri Apr 18 10:47:18 UTC 2008


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

On Wed, 2008-04-16 at 17:37 +0200, torbenh at gmx.de 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 at localhost 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 at localhost 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 at lists.linuxaudio.org
> > http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
> 
-- 




More information about the Linux-audio-dev mailing list