From: Herman Oosthuysen <Herman@WirelessNetworksInc.com>
To: P@draigBrady.com
Cc: Helge Hafting <helgehaf@aitel.hist.no>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: gcc 2.95 vs 3.21 performance
Date: Tue, 04 Feb 2003 13:36:46 -0700 [thread overview]
Message-ID: <3E40245E.4010507@WirelessNetworksInc.com> (raw)
In-Reply-To: <3E3FC898.4040809@draigBrady.com>
Hi there,
More than anything else, the execution speed on modern processors seem
to be a factor of code and data allignment. Some processors are OK with
16 bit word allignment, other require 32 bit word allignment and the new
crop of processors will probably require 64 bit word allignment.
If the data accesses are not alligned for your type of processor, then
SDRAM accesses go to hell as the bursting gets upset.
Unfortunately, this is a factor of processor architecture and the MS and
Intel compilers support a small number of processors and can therefore
be more easily optimized than GCC, which supports every processor in the
whole world.
If some application of yours is very speed sensitive, then you'll have
to insert specific allignment control switches/pragmas to force GCC to
do things the right way for speed, but that will typically increase the
code and data size a little.
Cheers,
--
------------------------------------------------------------------------
Herman Oosthuysen
B.Eng.(E), Member of IEEE
Wireless Networks Inc.
http://www.WirelessNetworksInc.com
E-mail: Herman@WirelessNetworksInc.com
Phone: 1.403.569-5687, Fax: 1.403.235-3965
------------------------------------------------------------------------
P@draigBrady.com wrote:
> Helge Hafting wrote:
>
>>Padraig@Linux.ie wrote:
>>[...]
>>
>>
>>>Interesting. I just noticed that I get 50% decrease in
>>>the speed of my program if I just insert a printf(). I.E.
>>>my program is like:
>>>
>>>printf()
>>>for(;;) {
>>> do_sorting_loop_test();
>>>}
>>>
>>>If I remove the initial printf it doubles in speed?
>>>I assume this is some weird caching thing?
>>
>>
>>Looks like a cacheline alignment issue to me.
>>This loop of yours occupy x cachelines on your cpu,
>>moving it in memory by adding the printf
>>might cause it to ocupy x+1 cachelines.
>>That might be noticeable if x is a really small number,
>>such as 1.
>
>
> OK it is (as I suspected and as you explained nicely)
> related to the cachelines on my CPU (866 celery).
>
> ===============================
> GCC options loops/s
> ===============================
> gcc 2283
> gcc -O3 -falign-loops=2 3451
> gcc -O3 -falign-loops=4 3443
> gcc -O3 -falign-loops=8 7045
> gcc -march=i686 -O3 9101
> ===============================
>
> cheers,
> Pádraig.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
next prev parent reply other threads:[~2003-02-04 20:24 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-03 23:05 gcc 2.95 vs 3.21 performance Martin J. Bligh
2003-02-03 23:22 ` [Lse-tech] " Andi Kleen
2003-02-03 23:31 ` Richard B. Johnson
2003-02-04 0:43 ` J.A. Magallon
2003-02-04 13:42 ` Richard B. Johnson
2003-02-04 14:20 ` John Bradford
2003-02-04 6:54 ` Denis Vlasenko
2003-02-04 7:13 ` Martin J. Bligh
2003-02-04 12:25 ` Adrian Bunk
2003-02-04 15:51 ` Martin J. Bligh
2003-02-04 16:27 ` [Lse-tech] " Martin J. Bligh
2003-02-04 17:40 ` Patrick Mansfield
2003-02-04 17:55 ` Martin J. Bligh
2003-02-04 9:54 ` Bryan Andersen
2003-02-04 15:46 ` Martin J. Bligh
2003-02-04 19:09 ` Timothy D. Witham
2003-02-04 19:35 ` John Bradford
2003-02-04 19:44 ` Dave Jones
2003-02-04 20:11 ` John Bradford
2003-02-04 20:20 ` John Bradford
2003-02-04 20:45 ` Herman Oosthuysen
2003-02-04 21:44 ` Timothy D. Witham
2003-02-05 7:15 ` Denis Vlasenko
2003-02-05 10:36 ` Andreas Schwab
2003-02-05 11:41 ` Denis Vlasenko
2003-02-05 12:20 ` Dave Jones
2003-02-05 13:10 ` [Lse-tech] " Dipankar Sarma
2003-02-05 15:30 ` Martin J. Bligh
2003-02-04 21:38 ` Linus Torvalds
2003-02-04 21:54 ` John Bradford
2003-02-04 22:11 ` Linus Torvalds
2003-02-04 23:27 ` Timothy D. Witham
2003-02-04 23:21 ` Larry McVoy
2003-02-04 23:42 ` b_adlakha
2003-02-05 0:19 ` Andy Pfiffer
2003-02-04 23:51 ` Jakob Oestergaard
2003-02-05 1:03 ` Hugo Mills
2003-02-10 22:26 ` Andrea Arcangeli
2003-02-10 23:28 ` J.A. Magallon
2003-02-04 23:51 ` Eli Carter
2003-02-05 0:27 ` Larry McVoy
2003-02-06 20:42 ` Paul Jakma
2003-02-05 3:03 ` Tomas Szepe
2003-02-05 6:03 ` Mark Mielke
2003-02-07 16:09 ` Pavel Machek
2003-02-04 10:57 ` Padraig
2003-02-04 13:11 ` Helge Hafting
2003-02-04 13:29 ` Jörn Engel
2003-02-04 14:05 ` P
2003-02-04 20:36 ` Herman Oosthuysen [this message]
2003-02-04 12:20 ` [Lse-tech] " Dave Jones
2003-02-04 15:50 ` Martin J. Bligh
2003-02-10 12:13 ` Momchil Velikov
2003-02-06 15:42 ` gcc -O2 vs gcc -Os performance Martin J. Bligh
2003-02-06 15:51 ` [Lse-tech] " Andi Kleen
2003-02-06 17:48 ` Alan Cox
2003-02-06 17:06 ` Martin J. Bligh
2003-02-06 20:38 ` Martin J. Bligh
2003-02-06 21:32 ` John Bradford
2003-02-06 22:12 ` Linus Torvalds
2003-02-06 22:58 ` Martin J. Bligh
2003-02-06 23:16 ` Linus Torvalds
2003-02-06 23:59 ` Martin J. Bligh
2003-02-06 23:17 ` Roger Larsson
2003-02-06 23:33 ` Martin J. Bligh
[not found] <1044385759.1861.46.camel@localhost.localdomain.suse.lists.linux.kernel>
[not found] ` <200302041935.h14JZ69G002675@darkstar.example.net.suse.lists.linux.kernel>
[not found] ` <b1pbt8$2ll$1@penguin.transmeta.com.suse.lists.linux.kernel>
2003-02-04 22:05 ` gcc 2.95 vs 3.21 performance Andi Kleen
2003-02-04 22:14 ` Linus Torvalds
2003-02-05 10:04 ` Pavel Janík
2003-02-05 20:07 ` Linus Torvalds
2003-02-06 15:00 ` Horst von Brand
2003-02-04 22:59 ` Jeff Muizelaar
2003-02-04 23:12 ` b_adlakha
2003-02-05 8:41 ` Horst von Brand
2003-02-05 19:09 ` Linus Torvalds
2003-02-05 19:22 ` Randy.Dunlap
2003-02-05 19:24 ` John Bradford
2003-02-06 7:02 ` Neil Booth
[not found] ` <courier.3E423112.00007219@softhome.net>
[not found] ` <20030206212218.GA4891@daikokuya.co.uk>
2003-02-07 10:31 ` b_adlakha
2003-02-07 18:46 ` Horst von Brand
2003-02-07 21:49 ` Neil Booth
2003-02-10 2:14 ` Jeff Garzik
2003-02-10 9:19 ` Tomas Szepe
[not found] <120432836@toto.iv>
2003-02-05 2:45 ` Peter Chubb
[not found] <200302052021.h15KLrXv000881@darkstar.example.net>
2003-02-05 20:28 ` b_adlakha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3E40245E.4010507@WirelessNetworksInc.com \
--to=herman@wirelessnetworksinc.com \
--cc=P@draigBrady.com \
--cc=helgehaf@aitel.hist.no \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox