2004-06-07 12:42:37

by Ingo at Pyrillion

[permalink] [raw]
Subject: new icc kernel patch available (with kernel PGO)


Hi,

v0.9.1: please check http://www.pyrillion.org/linuxkernelpatch.html for
a new kernel patch including kernel PGO (profile guided optimization)
support, covers 2.6.3 - 2.6.6 (please note: 2.6.3, 2.6.4 deprecated).

Next version (1.0) will include a MINIMAL (less invasive) patch to the
Linux kernel + another change of the toolchain, and PDF documentation.

Please try it and send comments, corrections, nice to have's for 1.0

w.k.r., [email protected].

P.S. please cc me in responses to this msg. thx.


2004-06-07 14:51:20

by Jan Dittmer

[permalink] [raw]
Subject: Re: new icc kernel patch available (with kernel PGO)

Zitat von [email protected]:
> v0.9.1: please check http://www.pyrillion.org/linuxkernelpatch.html for
> a new kernel patch including kernel PGO (profile guided optimization)
> support, covers 2.6.3 - 2.6.6 (please note: 2.6.3, 2.6.4 deprecated).

Do you have any benchmark numbers that show any improvement?

Jan

--
[email protected]

2004-06-07 15:54:34

by Ingo at Pyrillion

[permalink] [raw]
Subject: Re: Re: new icc kernel patch available (with kernel PGO)


Hi,

I published some preliminary results in the German Linux Magazine, which
are copyrighted now. Sorry.
Some hints: maximum performance gain approx. 40%, avg. perf. gain:
approx. 8%; computed by LMBench+OProfile (accurate CPU cycle
measurement, 10us timer resolution).
These results were taken from a "general kernel", i.e. widespread kernel
load (foreground and background activities, networking, filesystems,
drivers, etc.) during kernel PGO instrumentalization.
The big advantage of kernel PGO: you can create your own specialized
kernels for dedicated tasks (3 phase compilation scheme: primary
compilation, kernel profiling (PGO), feedback compilation).

Jan Dittmer <[email protected]> schrieb am 07.06.2004, 16:51:06:
> Zitat von [email protected]:
> > v0.9.1: please check http://www.pyrillion.org/linuxkernelpatch.html for
> > a new kernel patch including kernel PGO (profile guided optimization)
> > support, covers 2.6.3 - 2.6.6 (please note: 2.6.3, 2.6.4 deprecated).
>
> Do you have any benchmark numbers that show any improvement?
>
> Jan
>
> --
> [email protected]

2004-06-07 16:41:15

by Andi Kleen

[permalink] [raw]
Subject: Re: new icc kernel patch available (with kernel PGO)

<[email protected]> writes:

> I published some preliminary results in the German Linux Magazine, which
> are copyrighted now. Sorry.
> Some hints: maximum performance gain approx. 40%, avg. perf. gain:
> approx. 8%; computed by LMBench+OProfile (accurate CPU cycle
> measurement, 10us timer resolution).

These were with profiling feedback, right? What training set did
you use for it?

-Andi

2004-06-07 19:22:30

by Ingo at Pyrillion

[permalink] [raw]
Subject: Re: Re: new icc kernel patch available (with kernel PGO)


Hi,

as I stated before, I created a generic training set in phase 2 of the
three phases compilation process by utilizing the kernel in various
ways: fore- and background activities, networking, filesystems, etc.
The PGO kernel module and the PGO daemon pgod are included in the
newest patch. You can create your own specialized training set for your
specific task. That's the big advantage of kernel PGO. This is the
first patch using both technologies of the Intel C/C++ Compiler, IPO
(Inter Procedural Optimization) and PGO (Profile Guided Optimization),
together.

Andi Kleen <[email protected]> schrieb am 07.06.2004, 18:40:50:
> writes:
>
> > I published some preliminary results in the German Linux Magazine, which
> > are copyrighted now. Sorry.
> > Some hints: maximum performance gain approx. 40%, avg. perf. gain:
> > approx. 8%; computed by LMBench+OProfile (accurate CPU cycle
> > measurement, 10us timer resolution).
>
> These were with profiling feedback, right? What training set did
> you use for it?
>
> -Andi

2004-06-08 09:02:49

by Andi Kleen

[permalink] [raw]
Subject: Re: Re: new icc kernel patch available (with kernel PGO)

On Mon, Jun 07, 2004 at 09:20:02PM +0200, [email protected] wrote:
> as I stated before, I created a generic training set in phase 2 of the
> three phases compilation process by utilizing the kernel in various
> ways: fore- and background activities, networking, filesystems, etc.

Ok.

> The PGO kernel module and the PGO daemon pgod are included in the
> newest patch. You can create your own specialized training set for your
> specific task. That's the big advantage of kernel PGO. This is the
> first patch using both technologies of the Intel C/C++ Compiler, IPO
> (Inter Procedural Optimization) and PGO (Profile Guided Optimization),
> together.

gcc supports PGO and even some forms of IPO just fine too, but it was never
done because it causes maintainability issues (nobody can reproduce your binary
image anymore, which makes it extremly hard to reproduce an oops)

BTW Someone pointed out that you're using flags to enable ansi aliasing
in your patchkit. That's an extremly bad idea, because the kernel
is not ANSI alias clean at all. If it worked you were quite lucky.

-Andi