Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Gentoo User (http://www.linux-archive.org/gentoo-user/)
-   -   A tale of computing thud and blunder (http://www.linux-archive.org/gentoo-user/611572-tale-computing-thud-blunder.html)

"Walter Dnes" 12-18-2011 11:05 PM

A tale of computing thud and blunder
 
On Sun, Dec 18, 2011 at 12:45:27PM +0200, Nikos Chantziaras wrote
>
> On 12/18/2011 12:34 PM, Walter Dnes wrote:
> >
> > This was only recently installed. Is it possible that the generic x86
> > code from the initial install was the problem? And that emerging
> > system+world got me full optimization?
>
> Could be. It could also be it's because of "-mfpmath=sse". That's only
> used by default on 64-bit. On 32-bit, the FPU is used for floating
> point operations by default, which gives better precision (80 bit vs 64
> bit) but slower speed.
>
> But then again, that sounds too much of a performance difference. So if
> I had to guess, I'd say it's because of the world rebuild that made sure
> everything was built with proper optimizations.

It's probably the sum total of the effect of all the flags. I've
renamed the thread, to be more accurate. Here's how things went...

* right after the install (presumably with generic i686 code) the PC
could not handle streaming 1080i video from my HDHomerun TV tuner

* I misinterpreted output from gcc diagnostics, and concluded that
"march=-native" left several flags disabled that shouldn't be

* acting on that (mis)information), I emerged system+world+kernel and
found that not only could my system handle 1080i, it could handle a
1080p Youtube clip without problems, after a lot of buffering. My 5
megabit ADSL connection was the limiting factor there. It's supposed
to be upgraded to 6 megabits one of these days, for some minor
improvement.

* I mistakenly thought that it was the additional flags in CFLAGS during
the emerge system+world that boosted the video. Actually, the emerge
would've done the trick.

The lesson from this is that, before doing any benchmarking or
heavy-duty usage, one should emerge system+world, to replace the generic
code from the install CD with fully optimized code. It's easiest to so
right after the initial install, so that there are as few packages to
emerge as possible.

--
Walter Dnes <waltdnes@waltdnes.org>

Dale 12-18-2011 11:17 PM

A tale of computing thud and blunder
 
Walter Dnes wrote:
It's probably the sum total of the effect of all the flags. I've
renamed the thread, to be more accurate. Here's how things went... *
right after the install (presumably with generic i686 code) the PC
could not handle streaming 1080i video from my HDHomerun TV tuner * I
misinterpreted output from gcc diagnostics, and concluded that
"march=-native" left several flags disabled that shouldn't be * acting
on that (mis)information), I emerged system+world+kernel and found
that not only could my system handle 1080i, it could handle a 1080p
Youtube clip without problems, after a lot of buffering. My 5 megabit
ADSL connection was the limiting factor there. It's supposed to be
upgraded to 6 megabits one of these days, for some minor improvement.
* I mistakenly thought that it was the additional flags in CFLAGS
during the emerge system+world that boosted the video. Actually, the
emerge would've done the trick. The lesson from this is that, before
doing any benchmarking or heavy-duty usage, one should emerge
system+world, to replace the generic code from the install CD with
fully optimized code. It's easiest to so right after the initial
install, so that there are as few packages to emerge as possible.



That is good advice too. When I do a install, I unpack the tarball and
do the normal things and get my make.conf settings done. Since there is
very little installed anyway, I do a emerge -ev world. It usually takes
only a hour or so depending on the speed of the rig. Thing is, you then
have everything compiled with your settings and not the generic ones the
tarball had. It also updates anything that needs it too. Even before
amd64 came along I did it this way. Lots of people use Intel CPUs but I
use AMD. I don't know what the person that made the tarball uses but
either way, he has to make it generic so that it will run on ANY CPU.


I wonder if they should mention this in the docs? It seemed to have
made a difference in your case for sure. You went from not being able
to play a video to being able to play a HD video.


Dale

:-) :-)

--
I am only responsible for what I said ... Not for what you understood or how you interpreted my words!

Miss the compile output? Hint:
EMERGE_DEFAULT_OPTS="--quiet-build=n"

Pandu Poluan 12-19-2011 04:41 AM

A tale of computing thud and blunder
 
On Dec 19, 2011 7:20 AM, "Dale" <rdalek1967@gmail.com> wrote:

>

> Walter Dnes wrote:

>>

>> It's probably the sum total of the effect of all the flags. I've renamed the thread, to be more accurate. Here's how things went... * right after the install (presumably with generic i686 code) the PC could not handle streaming 1080i video from my HDHomerun TV tuner * I misinterpreted output from gcc diagnostics, and concluded that "march=-native" left several flags disabled that shouldn't be * acting on that (mis)information), I emerged system+world+kernel and found that not only could my system handle 1080i, it could handle a 1080p Youtube clip without problems, after a lot of buffering. My 5 megabit ADSL connection was the limiting factor there. It's supposed to be upgraded to 6 megabits one of these days, for some minor improvement. * I mistakenly thought that it was the additional flags in CFLAGS during the emerge system+world that boosted the video. Actually, the emerge would've done the trick. The lesson from this is that, before doing any benchmarking or heavy-duty usage, one should emerge system+world, to replace the generic code from the install CD with fully optimized code. It's easiest to so right after the initial install, so that there are as few packages to emerge as possible.


>

>

>

> That is good advice too. *When I do a install, I unpack the tarball and do the normal things and get my make.conf settings done. *Since there is very little installed anyway, I do a emerge -ev world. *It usually takes only a hour or so depending on the speed of the rig. *Thing is, you then have everything compiled with your settings and not the generic ones the tarball had. *It also updates anything that needs it too. *Even before amd64 came along I did it this way. *Lots of people use Intel CPUs but I use AMD. *I don't know what the person that made the tarball uses but either way, he has to make it generic so that it will run on ANY CPU.


>

> I wonder if they should mention this in the docs? *It seemed to have made a difference in your case for sure. *You went from not being able to play a video to being able to play a HD video.

>


Kind of like what I always do when I switch from -march=nocona to -march=native. (Usually I use -march=nocona to ensure seamless VM migration on my XenServer-equipped boxen, but for some VMs, i.e., those requiring me to wring out every last drop of performance, I go native.)



That said, if you want to experience fully the "GCC Graphite" optimizations, you'll also want to do emerge -ev ;-)


Rgds,

Dale 12-19-2011 05:15 AM

A tale of computing thud and blunder
 
Pandu Poluan wrote:


Kind of like what I always do when I switch from -march=nocona to
-march=native. (Usually I use -march=nocona to ensure seamless VM
migration on my XenServer-equipped boxen, but for some VMs, i.e.,
those requiring me to wring out every last drop of performance, I go
native.)


That said, if you want to experience fully the "GCC Graphite"
optimizations, you'll also want to do emerge -ev ;-)


Rgds,




Is Graphite worthwhile on a desktop system or is it better suited for
servers or both? I found this but still not sure what it is intended for:


http://gcc.gnu.org/wiki/Graphite/4.5

Are there any reasons to leave this be for a while? You know, bugs or
packages that don't work with it?


Dale

:-) :-)

--
I am only responsible for what I said ... Not for what you understood or how you interpreted my words!

Miss the compile output? Hint:
EMERGE_DEFAULT_OPTS="--quiet-build=n"

Nikos Chantziaras 12-19-2011 05:49 AM

A tale of computing thud and blunder
 
On 12/19/2011 08:15 AM, Dale wrote:

Pandu Poluan wrote:


Kind of like what I always do when I switch from -march=nocona to
-march=native. (Usually I use -march=nocona to ensure seamless VM
migration on my XenServer-equipped boxen, but for some VMs, i.e.,
those requiring me to wring out every last drop of performance, I go
native.)

That said, if you want to experience fully the "GCC Graphite"
optimizations, you'll also want to do emerge -ev ;-)



Is Graphite worthwhile on a desktop system or is it better suited for
servers or both?


This isn't something that even remotely has anything to do with servers
or desktops. Just like -O2 does not magically work better on servers.




I found this but still not sure what it is intended for:

http://gcc.gnu.org/wiki/Graphite/4.5


It's an optimization that produces faster running executables. Are you
interested in *how* it works :-)




Are there any reasons to leave this be for a while? You know, bugs or
packages that don't work with it?


Just like with any other optimization switch, there can be bugs. If
Gentoo says it doesn't support graphite, then I'd stay away from it
because Gentoo devs might not listen to your bug reports if you use it.
I don't know if they support it or not though.

Dale 12-19-2011 06:21 AM

A tale of computing thud and blunder
 
Nikos Chantziaras wrote:

On 12/19/2011 08:15 AM, Dale wrote:

Pandu Poluan wrote:


Kind of like what I always do when I switch from -march=nocona to
-march=native. (Usually I use -march=nocona to ensure seamless VM
migration on my XenServer-equipped boxen, but for some VMs, i.e.,
those requiring me to wring out every last drop of performance, I go
native.)

That said, if you want to experience fully the "GCC Graphite"
optimizations, you'll also want to do emerge -ev ;-)



Is Graphite worthwhile on a desktop system or is it better suited for
servers or both?


This isn't something that even remotely has anything to do with
servers or desktops. Just like -O2 does not magically work better on
servers.





Sounds like it may work on both then. That's sort of what I was
thinking but wasn't sure.



I found this but still not sure what it is intended for:

http://gcc.gnu.org/wiki/Graphite/4.5


It's an optimization that produces faster running executables. Are
you interested in *how* it works :-)





From what I read it makes some processes run in parallel instead of
serial or one at a time. Some think it is meaningless but some think it
is awesome. I don't know what to think since I have not used it or
compared the differences.




Are there any reasons to leave this be for a while? You know, bugs or
packages that don't work with it?


Just like with any other optimization switch, there can be bugs. If
Gentoo says it doesn't support graphite, then I'd stay away from it
because Gentoo devs might not listen to your bug reports if you use
it. I don't know if they support it or not though.




That would be another good thing to know. I don't file many bug reports
but if something breaks and it needs one, I do file them. This may be
like good wine. It may need to rest a while longer unless someone else
knows it is supported and works well. I got a good install and I don't
want to break it.


Dale

:-) :-)

--
I am only responsible for what I said ... Not for what you understood or how you interpreted my words!

Miss the compile output? Hint:
EMERGE_DEFAULT_OPTS="--quiet-build=n"

Pandu Poluan 12-19-2011 07:14 AM

A tale of computing thud and blunder
 
On Dec 19, 2011 1:18 PM, "Dale" <rdalek1967@gmail.com> wrote:

>

> Pandu Poluan wrote:

>>

>>

>> Kind of like what I always do when I switch from -march=nocona to -march=native. (Usually I use -march=nocona to ensure seamless VM migration on my XenServer-equipped boxen, but for some VMs, i.e., those requiring me to wring out every last drop of performance, I go native.)


>>

>> That said, if you want to experience fully the "GCC Graphite" optimizations, you'll also want to do emerge -ev ;-)

>>

>> Rgds,

>>

>

>

> Is Graphite worthwhile on a desktop system or is it better suited for servers or both? *I found this but still not sure what it is intended for:

>

> http://gcc.gnu.org/wiki/Graphite/4.5

>

> Are there any reasons to leave this be for a while? *You know, bugs or packages that don't work with it?

>


In my experience, I've never encountered any bugs due to graphite. And I've "graphite-ed" 4 production servers, including 2 firewalls, 1 DNS server, and 1 mail server.


Of course, YMMV.


Rgds,

walt 12-19-2011 11:49 AM

A tale of computing thud and blunder
 
On 12/18/2011 10:49 PM, Nikos Chantziaras wrote:


Just like with any other optimization switch, there can be bugs. If
Gentoo says it doesn't support graphite, then I'd stay away from it
because Gentoo devs might not listen to your bug reports if you use
it.


I've been using gcc with graphite support for about a year or so and
I've had zero problems so far. (I should also mention that I haven't
measured how much difference it makes, either.)

Very important to notice that *building* gcc with graphite support is
not at all the same as *using* graphite support while compiling.

To actually *use* your graphite support, you must include these CFLAGS
while compiling each package:

-floop-block -floop-strip-mine -floop-interchange

That implies that you can turn off graphite support by removing those
flags and recompiling your buggy package before filing a bug report.
(I did that only once and discovered that it didn't change the bug
at all.)

IIRC, gcc doesn't use those flags while compiling itself, but I could
be mistaken about that. I'll check again next time I compile gcc.

Paul Hartman 12-19-2011 03:37 PM

A tale of computing thud and blunder
 
On Mon, Dec 19, 2011 at 12:15 AM, Dale <rdalek1967@gmail.com> wrote:
> Pandu Poluan wrote:
>>
>>
>> Kind of like what I always do when I switch from -march=nocona to
>> -march=native. (Usually I use -march=nocona to ensure seamless VM migration
>> on my XenServer-equipped boxen, but for some VMs, i.e., those requiring me
>> to wring out every last drop of performance, I go native.)
>>
>> That said, if you want to experience fully the "GCC Graphite"
>> optimizations, you'll also want to do emerge -ev ;-)
>>
>> Rgds,
>>
>
>
> Is Graphite worthwhile on a desktop system or is it better suited for
> servers or both? *I found this but still not sure what it is intended for:
>
> http://gcc.gnu.org/wiki/Graphite/4.5
>
> Are there any reasons to leave this be for a while? *You know, bugs or
> packages that don't work with it?

I used it for @world and ran into a couple times when things were
broken with it enabled... Don't really remember specifics. I didn't
notice any perceivable speed difference, so I stopped using it just to
simplify things in the future. :)

In general,I have changed my CFLAGS to be less aggressive over the
past years. I started with the most aggressive optimizations, and
using -march=whatever... At some point I researched compile times for
different optimizations and realized some packages were taking tens of
minutes longer to compile! Surely whatever potential speed increase of
-O3 vs -O2 was not going to give me tens of minutes cumulatively. If
there is a package that really benefits from some specific
optimization (and doesn't already set those flags itself in the
ebuild), I'll set the CFLAGS for that individual package but leave the
rest of world very simplistic.

Same with -march, I've gone to using -mtune instead, after having to
move hard drives into a system with different CPU feature set. And for
virtual machines (in hosts I don't control, especially), they could be
migrated to some other machine without my knowledge, and i don't want
it to stop working if that happens.


All times are GMT. The time now is 08:41 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.