The quest for auto-vectorization continues. Introducing the Intel
icc/icpc combo (scroll down ...)
On Wed, 2008-04-16 at 17:37 +0200, torbenh(a)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@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@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(a)lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev --