Github messages for voidlinux
 help / color / mirror / Atom feed
* [ISSUE] foot: Add PGO build option
@ 2021-03-17  8:17 travankor
  2021-04-27 23:49 ` ericonr
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: travankor @ 2021-03-17  8:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 387 bytes --]

New issue by travankor on void-packages repository

https://github.com/void-linux/void-packages/issues/29526

Description:
[PGO optimization](https://codeberg.org/dnkl/foot/src/branch/master/doc/benchmark.md) speed foot up by a significant amount. Add a build option that [enables PGO ](https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#user-content-partial-pgo) during build.

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

* Re: foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
@ 2021-04-27 23:49 ` ericonr
  2021-07-02  6:02 ` dnkl
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ericonr @ 2021-04-27 23:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 224 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/issues/29526#issuecomment-828031140

Comment:
Definitely not on by default, since PGO is affected by the CPU that's being used.

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

* Re: foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
  2021-04-27 23:49 ` ericonr
@ 2021-07-02  6:02 ` dnkl
  2021-07-02  8:05 ` sternenseemann
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: dnkl @ 2021-07-02  6:02 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1123 bytes --]

New comment by dnkl on void-packages repository

https://github.com/void-linux/void-packages/issues/29526#issuecomment-872740075

Comment:
> since PGO is affected by the CPU that's being used.

It's actually not. PGO counts functions and branches executed, and helps re-organize the code; it clusters "hot" functions, to improve cache locality. It can also re-arrange code within a function to make the "normal" path the fast path (i.e. placing the not-often executed branches at e.g. the end of the function). But PGO in itself does not emit CPU specific instructions, nor does it depend on CPU-specific knowledge for e.g. instruction scheduling.

Over at nix, @sternenseemann has been able to do reproducable PGO builds. That is, builds on different systems produce identical output. I can't for my life find the issue, or comment, where I saw this, but pretty sure sterni can fill in the details, if needed.

Oh, and as a bonus, PGO builds tend to be smaller (in binary size) than regular release builds. This is _at least_ true for LTO builds (which I strongly recommend building foot with, with or without PGO).

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

* Re: foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
  2021-04-27 23:49 ` ericonr
  2021-07-02  6:02 ` dnkl
@ 2021-07-02  8:05 ` sternenseemann
  2021-07-02  8:05 ` sternenseemann
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sternenseemann @ 2021-07-02  8:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 842 bytes --]

New comment by sternenseemann on void-packages repository

https://github.com/void-linux/void-packages/issues/29526#issuecomment-872803985

Comment:
I can configure that building foot with PGO can be reproducible, i. e. I can reproduce the exact hash of the binary package produced by our builders on two different local machines (at different times). This also leads me to [believe that a reproducible gcc with PGO is possible](https://github.com/NixOS/nixpkgs/pull/112928#issuecomment-809336063), but most likely very hard to get to work.

The only thing necessary to achieve a reproducible foot build is generating the random inputs which are used for profiling while building using a [fixed seed](https://github.com/NixOS/nixpkgs/blob/43b257365c2c73fc31421e9b28dde1166d75506a/pkgs/applications/terminal-emulators/foot/default.nix#L62).

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

* Re: foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
                   ` (2 preceding siblings ...)
  2021-07-02  8:05 ` sternenseemann
@ 2021-07-02  8:05 ` sternenseemann
  2022-05-09  2:13 ` github-actions
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sternenseemann @ 2021-07-02  8:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 840 bytes --]

New comment by sternenseemann on void-packages repository

https://github.com/void-linux/void-packages/issues/29526#issuecomment-872803985

Comment:
I can confirm that building foot with PGO can be reproducible, i. e. I can reproduce the exact hash of the binary package produced by our builders on two different local machines (at different times). This also leads me to [believe that a reproducible gcc with PGO is possible](https://github.com/NixOS/nixpkgs/pull/112928#issuecomment-809336063), but most likely very hard to get to work.

The only thing necessary to achieve a reproducible foot build is generating the random inputs which are used for profiling while building using a [fixed seed](https://github.com/NixOS/nixpkgs/blob/43b257365c2c73fc31421e9b28dde1166d75506a/pkgs/applications/terminal-emulators/foot/default.nix#L62).

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

* Re: foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
                   ` (3 preceding siblings ...)
  2021-07-02  8:05 ` sternenseemann
@ 2022-05-09  2:13 ` github-actions
  2022-05-10  2:44 ` ericonr
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: github-actions @ 2022-05-09  2:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 293 bytes --]

New comment by github-actions[bot] on void-packages repository

https://github.com/void-linux/void-packages/issues/29526#issuecomment-1120562442

Comment:
Issues become stale 90 days after last activity and are closed 14 days after that.  If this issue is still relevant bump it or assign it.

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

* Re: foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
                   ` (4 preceding siblings ...)
  2022-05-09  2:13 ` github-actions
@ 2022-05-10  2:44 ` ericonr
  2022-05-10 11:10 ` ifreund
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ericonr @ 2022-05-10  2:44 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 254 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/issues/29526#issuecomment-1121827542

Comment:
Not stale. @ifreund do you have anything in effect for this? I think I had a branch attempting it a while back

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

* Re: foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
                   ` (5 preceding siblings ...)
  2022-05-10  2:44 ` ericonr
@ 2022-05-10 11:10 ` ifreund
  2022-08-09  2:13 ` github-actions
  2022-08-24  2:14 ` [ISSUE] [CLOSED] " github-actions
  8 siblings, 0 replies; 10+ messages in thread
From: ifreund @ 2022-05-10 11:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 197 bytes --]

New comment by ifreund on void-packages repository

https://github.com/void-linux/void-packages/issues/29526#issuecomment-1122249554

Comment:
@ericonr nope, I haven't tried to implement this yet.

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

* Re: foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
                   ` (6 preceding siblings ...)
  2022-05-10 11:10 ` ifreund
@ 2022-08-09  2:13 ` github-actions
  2022-08-24  2:14 ` [ISSUE] [CLOSED] " github-actions
  8 siblings, 0 replies; 10+ messages in thread
From: github-actions @ 2022-08-09  2:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 293 bytes --]

New comment by github-actions[bot] on void-packages repository

https://github.com/void-linux/void-packages/issues/29526#issuecomment-1208832543

Comment:
Issues become stale 90 days after last activity and are closed 14 days after that.  If this issue is still relevant bump it or assign it.

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

* Re: [ISSUE] [CLOSED] foot: Add PGO build option
  2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
                   ` (7 preceding siblings ...)
  2022-08-09  2:13 ` github-actions
@ 2022-08-24  2:14 ` github-actions
  8 siblings, 0 replies; 10+ messages in thread
From: github-actions @ 2022-08-24  2:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 390 bytes --]

Closed issue by travankor on void-packages repository

https://github.com/void-linux/void-packages/issues/29526

Description:
[PGO optimization](https://codeberg.org/dnkl/foot/src/branch/master/doc/benchmark.md) speed foot up by a significant amount. Add a build option that [enables PGO ](https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#user-content-partial-pgo) during build.

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

end of thread, other threads:[~2022-08-24  2:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-17  8:17 [ISSUE] foot: Add PGO build option travankor
2021-04-27 23:49 ` ericonr
2021-07-02  6:02 ` dnkl
2021-07-02  8:05 ` sternenseemann
2021-07-02  8:05 ` sternenseemann
2022-05-09  2:13 ` github-actions
2022-05-10  2:44 ` ericonr
2022-05-10 11:10 ` ifreund
2022-08-09  2:13 ` github-actions
2022-08-24  2:14 ` [ISSUE] [CLOSED] " github-actions

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 NNTP newsgroup(s).