3.0.1 performance
Kurt Garloff
kurt@garloff.de
Fri Aug 17 02:16:00 GMT 2001
Hi,
doing some performance evaluation of the 3.0.1 prerelease (20010816)
gives rather disappointing ressults :-(
The code used is the benchmark from TBCI NumLib 2.2.1
http://pebbles.e-technik.uni-dortmund.de/numlib/
(If you want to test yourself, please ask me to send you an updated
Makefile.)
doxygen docu of this code is also available.
The code is heavily inlined templated numerical code representing Vectors
and Matrices and including solvers and similar stuff.
Here's the results:
3.0
---
garloff@pckurt:~/Physics/numerix-2.0-gcc3/bench $ time make OPT=1 OPT_ARCH=1
CC="gcc -V 3.0" CXX="g++ -V 3.0" SYSDEP=bin-ix86-300 -j2
[...]
real 2m32.318s user 3m48.110s sys 0m7.130s
garloff@pckurt:~/Physics/numerix-2.0-gcc3/bench $ bin-ix86-300/libbench_double
=============================================================
TBCI NumLib (2.2.1) benchmark 1.35 (Aug 17 2001 10:40:53)
[...]
Total for ALL : 20.394s e, 20.330s u+s
=============================================================
=> libbench SPEC values : 0.853 0.855
This value is compared with the same benchmark on this reference machine:
[Athlon1-700, 256MB PC-133, Linux-2.4, TBCI 2.1.2, gcc-3.0.0, OPT=1 OPT_ARCH=1]
(OPT_ARCH evaluates to -march=athlon there)
Flags are:
Compiler: Reading specs from
/raid/gcc300/lib/gcc-lib/i686-pc-linux-gnu/3.0/specs ../configure
--with-gcc-version-trigger=/raid/egcs/gcc/version.c --host=i686-pc-linux-gnu
--with-system-zlib --with-gnu-ld --with-gnu-as --enable-libstdcxx-v3
--prefix=/raid/gcc300 --enable-haifa --enable-threads=posix Thread model:
posix gcc driver version 3.0.1 20010816 (prerelease) executing gcc version 3.0 g++: No input files
Bench flags: -O2 -ffast-math -felide-constructors -O3 -fschedule-insns2
-funroll-loops -freduce-all-givs -frerun-loop-opt -fno-inline-functions
-fstrict-aliasing -mcpu=pentiumpro -march=pentiumpro -D__GNUC_SUBVER__=0
Machine info: pckurt.casa-etp.nl Intel Intel 686 686 Pentium III
(Coppermine) Pentium III (Coppermine) [8] [8] st.6 st.6 708.115 MHz 708.115
MHz 1412.30 Bogos 1415.57 Bogos 627 MB Linux 2.4.7-SMP SMP
Fri Aug 17 10:46:29 CEST 2001 up 1 day, 6:53, 10 users, load: 2.64, 2.81, 2.74
3.0.1
-----
garloff@pckurt:~/Physics/numerix-2.0-gcc3/bench $ time make OPT=1 OPT_ARCH=1
SYSDEP=bin-ix86-301 -j2
real 1m56.750s user 2m49.840s sys 0m3.970s
garloff@pckurt:~/Physics/numerix-2.0-gcc3/bench $ bin-ix86-301/libbench_double
[...]
Total for ALL : 54.430s e, 54.390s u+s
=============================================================
=> libbench SPEC values : 0.319 0.320
For reference:
2.95.3 (SuSE)
------
garloff@pckurt:~/Physics/numerix-2.0-gcc295/bench $ time make OPT=1
OPT_ARCH=1 -j2
real 2m24.167s user 3m35.440s sys 0m5.790s
garloff@pckurt:~/Physics/numerix-2.0-gcc295/bench $ bin-ix86/libbench_double
[...]
Total for ALL : 20.148s e, 20.010s u+s
=============================================================
=> libbench SPEC values : 0.863 0.869
Conclusion:
===========
While compile performance of 3.0.1 is improved by a factor of 1.34 over 3.0
(1.27 over 2.95.3), performance dropped dramatically, by a factor of
2.67 compared to 3.0 (2.71 comp. to 2.95.3).
Looking at the detailed results, the vector operations seem to have almost
the same performance, whereas the matrix operations are much slower, and thus
the solvers are also very slow.
Is this problem known?
I've not been following discussions on the gcc list too well the last weeks,
but I'd suspect the inlining limitations. I guess, we've gone too far there.
Or did the meaning of -fno-inline-functions change and does not only prevent
automatic inlining but inlining completely?
I did not yet play with parameters, like using plain -O3 (is it useable in
3.0.1?) or -finline-limit yet. Should I?
Other things I should try?
Suggestions, patches, command-line parameters, ... welcome.
(Please Cc: me when answering, I'm not subscribed to the gcc list.)
Regards,
--
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD4DBQE7fOD8xmLh6hyYd04RAsNdAJ4iOzR9P0uW8I40nsBfp1o0O5PWOwCYzO5k
tTRy70dBYUmThHrQIxOZFQ==
=CyXf
-----END PGP SIGNATURE-----
More information about the Gcc
mailing list