compilation architecture

drago01 drago01 at gmail.com
Sat Jan 12 19:45:44 UTC 2008


2008/1/12 Jakub 'Livio' Rusinek <jakub.rusinek at gmail.com>:

> So I can say only one thing: "fedora does something in wrong,
> performance-loss way".

OK here is one synthetic benchmark (non real world) but it should show
you that compiling for a different arch does not automatically  makes
things go faster:

benchmark used was "flops.c"
first run:
gcc flops.c -o flops -m32 -O2 -march=i386 -mtune=i686 -DUNIX

 FLOPS C Program (Double Precision), V2.0 18 Dec 1992

   Module     Error        RunTime      MFLOPS
                            (usec)
     1     -8.1208e-11      0.0171    816.4320
     2      1.4704e-15      0.0195    358.7055
     3     -3.8213e-15      0.0101   1676.3571
     4      6.1151e-14      0.0102   1471.7699
     5     -4.4419e-14      0.0184   1574.1210
     6      7.7002e-15      0.0172   1683.3209
     7     -6.6161e-13      0.0517    232.0156
     8      2.2789e-14      0.0187   1606.4346

   Iterations      =  512000000
   NullTime (usec) =     0.0000
   MFLOPS(1)       =   482.7594
   MFLOPS(2)       =   542.8299
   MFLOPS(3)       =  1017.2301
   MFLOPS(4)       =  1618.1922
----------------------------------------------------------

second run:
gcc flops.c -o flops -m32 -O2 -march=i686 -mtune=i686 -DUNIX

   FLOPS C Program (Double Precision), V2.0 18 Dec 1992

   Module     Error        RunTime      MFLOPS
                            (usec)
     1     -8.1208e-11      0.0172    812.6376
     2      1.4704e-15      0.0196    357.9533
     3     -3.8213e-15      0.0101   1677.3263
     4      6.1151e-14      0.0102   1471.7699
     5     -4.4419e-14      0.0184   1575.9585
     6      7.7002e-15      0.0172   1682.3675
     7     -6.6161e-13      0.0517    232.1120
     8      2.2789e-14      0.0187   1603.4166

   Iterations      =  512000000
   NullTime (usec) =     0.0000
   MFLOPS(1)       =   481.8683
   MFLOPS(2)       =   542.8753
   MFLOPS(3)       =  1016.6906
   MFLOPS(4)       =  1617.0692
------------------------------------------------------------
even thought not the topic here I have done a x86_64 run too:
gcc flops.c -DUNIX -o flops -O2
./flops

   FLOPS C Program (Double Precision), V2.0 18 Dec 1992

   Module     Error        RunTime      MFLOPS
                            (usec)
     1      4.0146e-13      0.0144    969.8444
     2     -1.4166e-13      0.0163    430.2659
     3      4.7184e-14      0.0091   1871.3076
     4     -1.2557e-13      0.0083   1808.1842
     5     -1.3800e-13      0.0302    960.4358
     6      3.2380e-13      0.0158   1834.0442
     7     -8.4583e-11      0.0433    276.9485
     8      3.4867e-13      0.0303    991.5022

   Iterations      =  512000000
   NullTime (usec) =     0.0000
   MFLOPS(1)       =   575.0329
   MFLOPS(2)       =   605.2412
   MFLOPS(3)       =   964.2780
   MFLOPS(4)       =  1434.2150
-----------------------------------------------------

Test machine was a Core 2 Duo T7400 running F8.
So as you can see here there is no virtually difference between i386 and i686.
x86_64 is faster in most cases but not always. (and its no way near "3
times faster")

So numbers prove what I (and others) said before ... "it feels faster"
isn't going to convince anyone or change anything.




More information about the fedora-devel-list mailing list