This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC Benchmarks (coybench), AMD64 and i686, 14 August 2004

Joe Buck wrote:
icc's good performance on Kahan's Paranoia benchmark is surprising given
that it makes obviously unsafe floating point transformations; a
reasonable conclusion is that its developers were asked for both a good
Paranoia score and good floating point performance, and they cut corners,
but took care not to break Paranoia.


On my Pentium 4 (Northwood core), Intel produces an excellent Paranoia result: a single flaw (Kahan's most insignificant category of error), *when* the compile is performed with the -xN (optimize for Northwood) option. The -mp and -mp1 options, which purportedly improve floating-point consistency and accuracy, seem ineffective in terms of Paranoia.

On the Pentium 4, the best GCC 3.4 can do is one defect and one flaw, when the benchmark is compiled with -march=pentium4. Adding -O3 introduces a host of paranoia errors (ten more!), while -ffast-math adds a single defect.

There is one compiler that produces a perfect score on Paranoia: No failures, defects, or flaws.

GCC 3.5, on my Opteron system.

Compiled with -march=opteron, GCC 3.5 has a perfect paranoia score. Adding -O3 does *not* introduce any errors on the Opteron; adding -ffast-math results in a *single* minor "flaw".

Perhaps this is due to underlying architecture of the processors; or maybe the x86_64 code generator is just better than Intel's.

Ooh-ooh! Conspiracy theory: We all know how fanatical those AMD devotees are; maybe they quietly made certain that GCC produces perfect code on Paranoia for the Opteron! This would both help GCC *and* promote the AMD64 architecture.

Muwahahahaha! ;)

Scott Robert Ladd
Coyote Gulch Productions (
Software Invention for High-Performance Computing

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]