| Karim Belabas on Thu, 16 Jun 2005 13:47:46 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Pari and Intel x86 compiler? |
* Bill Allombert [2005-06-16 12:11]:
> On Thu, Jun 16, 2005 at 09:51:36AM +0200, Ralf Stephan wrote:
> > Hello,
> > is the use of Intel's compiler on Linux supported?
> >
> > http://www.intel.com/software/products/noncom/
> >
> > Are there experiences, i.e. would there be a speed difference?
>
> We do not have experience with this compiler, but PARI has been
> strongly optimised for GCC so unless intel compiler support
> the GCC extensions we use and Configure is tweaked to activate them
> for intel compiler, it is likely to be significantly slower.
> Specifically, the inline asm kernel rely on the "Extended Asm" and the
> "Statement Exprs" GNU C extensions.
>
> Of course, you are welcome to try and report the results!
I've just tried the standard bench on my machine (PIV, 1.6MHz):
--- with gcc-3.3.2
\\ inline ASM kernel
* Testing objets for gp-sta..TIME=0
* Testing analyz for gp-sta..TIME=80
* Testing number for gp-sta..TIME=60
* Testing polyser for gp-sta..TIME=10
* Testing linear for gp-sta..TIME=20
* Testing elliptic for gp-sta..TIME=60
* Testing sumiter for gp-sta..TIME=50
* Testing graph for gp-sta..TIME=20
* Testing program for gp-sta..TIME=100
* Testing trans for gp-sta..TIME=240
* Testing nfields for gp-sta..TIME=480
+++ Total bench for gp-sta is 736
\\ no ASM kernel whatsoever (--kernel=none)
* Testing objets for gp-sta..TIME=10
* Testing analyz for gp-sta..TIME=90
* Testing number for gp-sta..TIME=160
* Testing polyser for gp-sta..TIME=20
* Testing linear for gp-sta..TIME=40
* Testing elliptic for gp-sta..TIME=80
* Testing sumiter for gp-sta..TIME=60
* Testing graph for gp-sta..TIME=40
* Testing program for gp-sta..TIME=190
* Testing trans for gp-sta..TIME=420
* Testing nfields for gp-sta..TIME=590
+++ Total bench for gp-sta is 1228
--- with Intel's icc-8.1
\\ non-inlined ASM kernel (standard Configure run + remove -rpath option)
* Testing objets for gp-sta..TIME=0
* Testing analyz for gp-sta..TIME=100
* Testing number for gp-sta..TIME=90
* Testing polyser for gp-sta..TIME=20
* Testing linear for gp-sta..TIME=40
* Testing elliptic for gp-sta..TIME=70
* Testing sumiter for gp-sta..TIME=70
* Testing graph for gp-sta..TIME=30
* Testing program for gp-sta..BUG [130]
* Testing trans for gp-sta..TIME=320
* Testing nfields for gp-sta..TIME=580
+++ [BUG] Total bench for gp-sta is 986 \\ install doesn't work
\\ no ASM kernel whatsoever (--kernel=none)
* Testing objets for gp-sta..TIME=10
* Testing analyz for gp-sta..TIME=110
* Testing number for gp-sta..TIME=170
* Testing polyser for gp-sta..TIME=30
* Testing linear for gp-sta..TIME=40
* Testing elliptic for gp-sta..TIME=80
* Testing sumiter for gp-sta..TIME=70
* Testing graph for gp-sta..TIME=40
* Testing program for gp-sta..BUG [160]
* Testing trans for gp-sta..TIME=450
* Testing nfields for gp-sta..TIME=610
+++ [BUG] Total bench for gp-sta is 1272
>From a glance at
http://www.intel.com/software/products/compilers/techtopics/LinuxCompilersCompatibility.htm
it looks like the GNU C extensions we need for the kernel are supported.
But enabling by hand the inline asm kernel (specifically, defining
ASMINLINE), I hit a compiler bug:
/opt/intel_cc_80/bin/icc -c -O2 -m486 -DBOTH_GNUPLOT_AND_X11 -I. -I../src/headers -o mp.o mp.c
icc: error: Fatal error in /opt/intel_cc_80/bin/mcpcom, terminated by segmentation violation
So I would advise sticking with gcc for now.
Karim.
--
Karim Belabas Tel: (+33) (0)1 69 15 57 48
Dep. de Mathematiques, Bat. 425 Fax: (+33) (0)1 69 15 60 19
Universite Paris-Sud http://www.math.u-psud.fr/~belabas/
F-91405 Orsay (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]