public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* EGCS-971016: i686 Linux vs. SparcULTRA Solaris
@ 1997-10-16 21:04 Fred Richardson
  1997-10-16 23:09 ` Oleg Krivosheev
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Fred Richardson @ 1997-10-16 21:04 UTC (permalink / raw)
  To: egcs

I've run a quick benchmark on a program I've been debugging for a
while.  It's very C++'ified and makes heavy use of the STL.  It also
does a lot of floating point.  Here are some run-time stats when the
input parameters are the same on both machines:


Solaris2.5  UltraSPARC 170  (192 MB RAM, 830 MB VIRTUAL):
    TIME:   557.43s
    SIZE:   190832K

Linux2.0    i686            (386 MB RAM, 1.04 GB VIRTUAL):
    TIME:   359.37s
    SIZE:   138012K

On both architectures, EGCS was built with 
    --with-gnu-as --with-gnu-ld --enable-shared --enable-haifa

The flags used for compiling on the i686 were:
    -m486 -funsigned-char -fno-exceptions -O6 -finline-functions
     -ffast-math -fomit-frame-pointer -funroll-loops 

The flags used for compiling on the Ultra were:
    -mcpu=ultrasparc -funsigned-char -fno-exceptions -O6
    -finline-functions -ffast-math -fomit-frame-pointer -funroll-loops 

This seems like a remarkable difference.  I find the allocation
differences really suprising.  But I can't say that I have any idea
of what's going on.  I'm hoping someone else will find this data-
point enlightening ;)

                -Fred

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: EGCS-971016: i686 Linux vs. SparcULTRA Solaris
  1997-10-16 21:04 EGCS-971016: i686 Linux vs. SparcULTRA Solaris Fred Richardson
@ 1997-10-16 23:09 ` Oleg Krivosheev
  1997-10-17  0:28 ` Teemu Torma
  1997-10-17  2:51 ` Wolfram Gloger
  2 siblings, 0 replies; 5+ messages in thread
From: Oleg Krivosheev @ 1997-10-16 23:09 UTC (permalink / raw)
  To: Fred Richardson; +Cc: egcs

On Thu, 16 Oct 1997, Fred Richardson wrote:

> I've run a quick benchmark on a program I've been debugging for a
> while.  It's very C++'ified and makes heavy use of the STL.  It also
> does a lot of floating point.  Here are some run-time stats when the
> input parameters are the same on both machines:
> 
> 
> Solaris2.5  UltraSPARC 170  (192 MB RAM, 830 MB VIRTUAL):
                               ^^^^^^^^^^^
>     TIME:   557.43s
>     SIZE:   190832K
              ^^^^^^^

> 
> Linux2.0    i686            (386 MB RAM, 1.04 GB VIRTUAL):
>     TIME:   359.37s
>     SIZE:   138012K
> 
> On both architectures, EGCS was built with 
>     --with-gnu-as --with-gnu-ld --enable-shared --enable-haifa
> 
> The flags used for compiling on the i686 were:
>     -m486 -funsigned-char -fno-exceptions -O6 -finline-functions
>      -ffast-math -fomit-frame-pointer -funroll-loops 
> 
> The flags used for compiling on the Ultra were:
>     -mcpu=ultrasparc -funsigned-char -fno-exceptions -O6
>     -finline-functions -ffast-math -fomit-frame-pointer -funroll-loops 
> 
> This seems like a remarkable difference.  I find the allocation
> differences really suprising.  But I can't say that I have any idea
> of what's going on.  I'm hoping someone else will find this data-
> point enlightening ;)

sure it is enlightening...

your Ultra program should swap quite a lot...
Or you're measuring disk performance ? ;)

regards

OK


^ permalink raw reply	[flat|nested] 5+ messages in thread

* EGCS-971016: i686 Linux vs. SparcULTRA Solaris
  1997-10-16 21:04 EGCS-971016: i686 Linux vs. SparcULTRA Solaris Fred Richardson
  1997-10-16 23:09 ` Oleg Krivosheev
@ 1997-10-17  0:28 ` Teemu Torma
  1997-10-17  2:51 ` Wolfram Gloger
  2 siblings, 0 replies; 5+ messages in thread
From: Teemu Torma @ 1997-10-17  0:28 UTC (permalink / raw)
  To: frichard; +Cc: egcs

    From:  Fred Richardson <frichard@bbn.com>
    Date:  Thu, 16 Oct 1997 23:27:00 -0400

    The flags used for compiling on the Ultra were:
        -mcpu=ultrasparc -funsigned-char -fno-exceptions -O6
        -finline-functions -ffast-math -fomit-frame-pointer -funroll-loops 
    
This may be a bit off from the topic, but

It seems that -mcpu=ultrasparc generates sometimes slower code 
than -mcpu=supersparc, and gcc 2.7.2.1 is faster than egcs.

I ran some speed tests last week using Eric Young's libdes `speed'
program.  These were the results, without haifa, 
on Sun Enterprice 450 (248Mhz UltraSparc).  Of course this kind
of test is not a good general speed test, but still...

EGCS 971008 -O3 -mcpu=supersparc

set_key       per sec =    212606.48 (  4.7uS)
DES ecb bytes per sec =   2930562.93 (  2.7uS)
DES cbc bytes per sec =   2909686.20 (  2.7uS)
crypt         per sec =     12788.55 ( 78.2uS)

EGCS 971008 -O3 -mcpu=ultrasparc

set_key       per sec =    231505.91 (  4.3uS)
DES ecb bytes per sec =   3043186.47 (  2.6uS)
DES cbc bytes per sec =   3118386.32 (  2.6uS)
crypt         per sec =     12224.42 ( 81.8uS)

GCC 2.7.2.1 -O3 -msupersparc

set_key       per sec =    245225.03 (  4.1uS)
DES ecb bytes per sec =   3212060.54 (  2.5uS)
DES cbc bytes per sec =   3218404.89 (  2.5uS)
crypt         per sec =     13785.99 ( 72.5uS)

Quick analysis with quantify revealed that egcs spends more time
when doing shifting, or'ing, and'ing etc.  I guess something must
be broken in the optimizer.

Teemu

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: EGCS-971016: i686 Linux vs. SparcULTRA Solaris
  1997-10-16 21:04 EGCS-971016: i686 Linux vs. SparcULTRA Solaris Fred Richardson
  1997-10-16 23:09 ` Oleg Krivosheev
  1997-10-17  0:28 ` Teemu Torma
@ 1997-10-17  2:51 ` Wolfram Gloger
  1997-10-17  6:48   ` Fred Richardson
  2 siblings, 1 reply; 5+ messages in thread
From: Wolfram Gloger @ 1997-10-17  2:51 UTC (permalink / raw)
  To: frichard; +Cc: egcs

> Solaris2.5  UltraSPARC 170  (192 MB RAM, 830 MB VIRTUAL):
>     TIME:   557.43s
>     SIZE:   190832K
> 
> Linux2.0    i686            (386 MB RAM, 1.04 GB VIRTUAL):
>     TIME:   359.37s
>     SIZE:   138012K
...
> This seems like a remarkable difference.  I find the allocation
> differences really suprising.

[sorry, getting slightly offtopic]

If what you are reporting as `SIZE' is the maximum memory footprint of
the application, then I am not that surprised.  The malloc in Linux
libc and glibc (by Doug Lea) is heavily optimized for memory savings
(while remaining quite fast as well).  I haven't seen a malloc version
that performs better in this respect; see

  http://www.dent.med.uni-muenchen.de/~wmglo/malloc-slides.html

for some comparisons (Solaris isn't yet covered in my tests but will
be soon).  You might want to use Doug Leas malloc on Solaris as well
and check whether your SIZE goes down...

Regards,
Wolfram.
-- 
`Surf the sea, not double-u three...'
wmglo@dent.med.uni-muenchen.de

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: EGCS-971016: i686 Linux vs. SparcULTRA Solaris
  1997-10-17  2:51 ` Wolfram Gloger
@ 1997-10-17  6:48   ` Fred Richardson
  0 siblings, 0 replies; 5+ messages in thread
From: Fred Richardson @ 1997-10-17  6:48 UTC (permalink / raw)
  To: wmglo; +Cc: egcs

Wolfram-

>>  If what you are reporting as `SIZE' is the maximum memory footprint of
>>  the application, then I am not that surprised.  The malloc in Linux
>>  libc and glibc (by Doug Lea) is heavily optimized for memory savings
>>  (while remaining quite fast as well).  I haven't seen a malloc version
>>  that performs better in this respect; see

Thanks for the tip!  Indeed this solves the allocation problem.  Here
are my new set of stats:

Solaris2.5  UltraSPARC 170  (192 MB RAM, 830 MB VIRTUAL):
     TIME:   547.24
     SIZE:   138224K

Linux2.0    i686            (386 MB RAM, 1.04 GB VIRTUAL):
    TIME:   359.37s
    SIZE:   138012K


Now memory allocation is about the same on both platforms (no real
suprise since the malloc package is now the same).  But the speed is 
still an issue.  I probably need some UltraSPARC changes to the
optimizer (does anyone know if there are any out there?).

            Thanks,

                -Fred

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~1997-10-17  6:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-10-16 21:04 EGCS-971016: i686 Linux vs. SparcULTRA Solaris Fred Richardson
1997-10-16 23:09 ` Oleg Krivosheev
1997-10-17  0:28 ` Teemu Torma
1997-10-17  2:51 ` Wolfram Gloger
1997-10-17  6:48   ` Fred Richardson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).