FW: Re: FreeBSD 5.2 v/s FreeBSD 4.9 MFLOPS performance (gcc3.3.3
v/s gcc2.9.5)
Juan Tumani
jtumani55 at hotmail.com
Sun Feb 15 12:33:31 PST 2004
(adding freebsd-performance for any comments someone there may have)
We did some more experiments and when we compiled the object file on 5.2
then linked it on the 4.9 machine and then ran it on the 5.2 machine, there
was no cyclical problem seen (Frankenstein run). Kind of points to the
5.2 link stage, i.e., 5.2 libraries?
Check out the graphical exhibits at
http://www.employees.org/~rsargent/flops/
The graph at the very bottom shows the Frankenstein run. The graphs
depict the /usr/bin/time results of running 300 iterations of flops 1.2
while incrementing the env one byte between iterations.
We use flops 1.2, it runs less modules than 2.0 but still exhibits the
cyclical slowness [alignment] problem as module #2 in flops 2.0.
Source code for flops 1.2 is at the bottom of the above link.
Juan
>From: Alexandr Kovalenko <never at nevermind.kiev.ua>
>To: Wes Peters <wes at softweyr.com>
>CC: Juan Tumani <jtumani55 at hotmail.com>, freebsd-hackers at freebsd.org
>Subject: Re: FreeBSD 5.2 v/s FreeBSD 4.9 MFLOPS performance (gcc3.3.3 v/s
>gcc2.9.5)
>Date: Sat, 14 Feb 2004 10:24:21 +0200
>
>Hello, Wes Peters!
>
>On Tue, Feb 10, 2004 at 11:29:34AM -0800, you wrote:
>
> > On Monday 09 February 2004 13:20, Juan Tumani wrote:
> > > I have an Intel D845GE m/b w/ a P4 1.7 CPU and I have the box setup
> > > to dual boot to either 4.9 or 5.2. Both OS are right off the latest
> > > posted iso CD image, i.e., no updates, no kernel tweaks, everything
> > > vanilla right out of the box. I compiled flops.c on both 4.9 and
> > > 5.2 and the 5.2 performance is less than half that of 4.9: 760
> > > MFLOPS on 4.9 v/s 340 MFLOPS on 5.2.
> > >
> > > I tried turning off the SMP and other kernel tweaks and no
> > > improvement in 5.2. I then downloaded and installed gcc295 on the
> > > 5.2 machine and that fixed the problem. So now all I have to do is
> > > figure out the gcc 3.3.3 switches to make it run like gcc 2.9.5 or
> > > figure out how to rebuild 5.2 w/ gcc 2.9.5 :-).
> >
> > I'm not sure that kernel tweaks are going to make much difference on a
> > single-threaded floating point benchmark. Compiler optimizations sure
> > do, though. (Note: I couldn't find version 1.2 of flops.c, so this is
> > based on version 2.0.) On a 2.0GHz P4, I see:
> >
> > wpeters at salty> cc -o flops -O -DUNIX flops.c
>
>Could you please explain me this? Result is fully reproduceable. Please
>note,
>that the only difference is the output file name. Even resulting files
>match
>bit-to-bit. If I do
>
>mv very-slow-flops flops2
>
>and then run ./flops2, it runs as flops2 - fast.
>
>Machine is Dual 2.8 GHz Xeon with HTT disabled (in BIOS). FreeBSD is
>5.2.1-RC2.
>
>%fetch http://home.iae.nl/users/mhx/flops.c
>Receiving flops.c (34942 bytes): 100%
>34942 bytes transferred in 0.6 seconds (54.72 kBps)
>%cc -o flops2 -O2 -mcpu=pentium4 -DUNIX flops.c
>flops.c: In function `main':
>flops.c:174: warning: return type of `main' is not `int'
>%cc -o flops-sse-4 -O2 -mcpu=pentium4 -DUNIX flops.c
>flops.c: In function `main':
>flops.c:174: warning: return type of `main' is not `int'
>%cc -o very-slow-flops -O2 -mcpu=pentium4 -DUNIX flops.c
>flops.c: In function `main':
>flops.c:174: warning: return type of `main' is not `int'
>%./flops2
>
> FLOPS C Program (Double Precision), V2.0 18 Dec 1992
>
> Module Error RunTime MFLOPS
> (usec)
> 1 4.0146e-13 0.0130 1074.8815
> 2 -1.4166e-13 0.0128 545.3338
> 3 4.7184e-14 0.0177 960.4579
> 4 -1.2557e-13 0.0166 903.6914
> 5 -1.3800e-13 0.0317 915.0687
> 6 3.2380e-13 0.0310 936.3149
> 7 -8.4583e-11 0.0403 297.7250
> 8 3.4867e-13 0.0310 968.6112
>
> Iterations = 512000000
> NullTime (usec) = 0.0006
> MFLOPS(1) = 635.0698
> MFLOPS(2) = 560.4516
> MFLOPS(3) = 805.4502
> MFLOPS(4) = 945.5219
>
>%./flops-sse-4
>
> FLOPS C Program (Double Precision), V2.0 18 Dec 1992
>
> Module Error RunTime MFLOPS
> (usec)
> 1 4.0146e-13 0.0177 791.6075
> 2 -1.4166e-13 0.0309 226.7944
> 3 4.7184e-14 0.0202 842.7146
> 4 -1.2557e-13 0.0166 902.8921
> 5 -1.3800e-13 0.0317 916.2631
> 6 3.2380e-13 0.0309 937.0923
> 7 -8.4583e-11 0.0403 297.9173
> 8 3.4867e-13 0.0309 969.3446
>
> Iterations = 512000000
> NullTime (usec) = 0.0006
> MFLOPS(1) = 297.9983
> MFLOPS(2) = 546.3944
> MFLOPS(3) = 775.3701
> MFLOPS(4) = 922.1566
>
>%./very-slow-flops
>
> FLOPS C Program (Double Precision), V2.0 18 Dec 1992
>
> Module Error RunTime MFLOPS
> (usec)
> 1 4.0146e-13 0.0317 442.0039
> 2 -1.4166e-13 0.0331 211.3728
> 3 4.7184e-14 0.0350 485.1899
> 4 -1.2557e-13 0.0168 892.8307
> 5 -1.3800e-13 0.0319 909.7385
> 6 3.2380e-13 0.0311 931.1527
> 7 -8.4583e-11 0.0405 296.4570
> 8 3.4867e-13 0.0312 962.3224
>
> Iterations = 512000000
> NullTime (usec) = 0.0004
> MFLOPS(1) = 259.1938
> MFLOPS(2) = 492.7930
> MFLOPS(3) = 669.1527
> MFLOPS(4) = 797.1471
>
>--
>NEVE-RIPE, will build world for food
>Ukrainian FreeBSD User Group
>http://uafug.org.ua/
_________________________________________________________________
Keep up with high-tech trends here at "Hook'd on Technology."
http://special.msn.com/msnbc/hookedontech.armx
More information about the freebsd-performance
mailing list