compilation architecture

Callum Lerwick seg at haxxed.com
Mon Jan 14 20:14:02 UTC 2008


On Sat, 2008-01-12 at 18:51 +0100, drago01 wrote:
> 2008/1/12 Jakub 'Livio' Rusinek <jakub.rusinek at gmail.com>:
> > do we need to support legacy cpu's by i386 compilation?
> > i586 would make fedora faster even 3 times.
> > difference is noticeable.
> 
> .....
> where are your benchmarks for the "3 times faster" claim?
> the i386 packages are already optimized for newer cpus (mtune vs. march)
> where it makes sense to have i686 versions there are some (kernel, glibc)

Lets get some real numbers in here. For a quick and dirty benchmark I'm
using OpenJPEG's MJ2 tools, I encode the speedway example using
"frames_to_mj2 -i Speedway.yuv -o Speedway.mj2 -I 1", then decode it.
I'm measuring the decode time. Tests were performed on a Mobile Celeron
1.3, which is P3 architecture.

Here it is with -march=i386 -mcpu=generic. That is, standard Fedora
flags:

Total decoding time: 21.14 seconds (9.5 fps)

With -march=i586 -mcpu=generic:

Total decoding time: 21.26 seconds (9.4 fps)

And -march=i686 -mcpu=generic:

Total decoding time: 20.45 seconds (9.8 fps)

So it is 0.54% *slower* when compiled for i586, which is unexpected and
strange, but such is gcc. I wouldn't expect much of a speed difference
compiling for i586, there was no major additions to the instruction set,
and we're already scheduling for modern processors.

Not quite "three times" faster, but 3.26% faster with i686. A major
addition to the i686 architecture was cmov, and gcc is actually very
aggressive about eliminating branching using cmovs, increasing
performance on modern deeply pipelined processors by eliminating
pipeline stalls.

And yes, cmov is technically optional, earlier VIA C3 processors, still
being sold, lack it. Completely dropping support for pre-i686 just isn't
an option yet.

If Smolt is to be believed, i686 machines are 99.43% (!) of all x86
machines. (Though I don't know if those pesky C3's are being counted as
i686 or i586 or what...) I think its safe to say the vast majority of
x86 systems out there have cmov, and are suffering with reduced
performance in order to cater to a minority of systems.

I suggest all key performance critical packages be made available in
both i386 and i686 versions. glibc and openssl already do this. Off the
top of my head, this would include Mesa, I know for a fact the majority
of Second Life runtime is actually consumed by T&L inside Mesa/DRI. From
what I understand, even Intel's latest chipsets lack hardware T&L. Makes
sense, it helps sell more multi-core Intel processors, and probably
helps consolidate power management.

Also, all multimedia codecs. Old sub-Ghz machines have a lot of trouble
playing the MPEG4 video that is common these days, and MythTV could use
all the help it can get. Not that the MPEG4 codecs are in Fedora
itself...

Not that any of this has anything to do with the "firefox startup is
slow" complaint that this thread has devolved into.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://listman.redhat.com/archives/fedora-devel-list/attachments/20080114/ec3ed93f/attachment.sig>


More information about the fedora-devel-list mailing list