Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enabling pgo #21583

Closed
octaviansoldea opened this issue Jun 29, 2018 · 7 comments
Closed

enabling pgo #21583

octaviansoldea opened this issue Jun 29, 2018 · 7 comments
Labels
build Issues and PRs related to build files or the CI.

Comments

@octaviansoldea
Copy link

  • Version: v11.0.0-pre
  • Platform: Linux
  • Subsystem:

Hello

This is about enabling pgo compilation. This issue, is also related to a previous effort:

#1409

In this context, I would like to initiate a pull request and ask the community feedback. From some preliminary results, I have the following data:

I have compared Node-DC-EIS and Ghost, and have obtained 3.7% and 3.8% improvements respectively. These numbers were validated with unpaired t-test. Moreover, I am collecting data regarding the Node.js benchmark suite and attached here two of the benchmarks:

assert_compare.txt
async_hooks_compare.txt

In this context, I would like to mention that assert and async manifest 3.17% and 3.92% improvements respectively.

The experiments were done on Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz. Nevertheless, the solution I would like to submit passes the tests, and also compiles for 32 bits, see also issue 1409.

I am looking forward to hearing from you.

@octaviansoldea

@Trott Trott added the build Issues and PRs related to build files or the CI. label Jun 29, 2018
@Trott
Copy link
Member

Trott commented Jun 29, 2018

@nodejs/build

@bnoordhuis
Copy link
Member

Do you want to add a configure option or enable PGO in release builds? The former isn't controversial and will likely be accepted. The latter still has the issue of a lack of comprehensive benchmarks.

Node-DC-EIS and Ghost are realistic workloads but using them as inputs could penalize e.g. build tool-esque workloads (gulp, webpack, etc.)

I'd start with the configure option because prepping the build system needs to happen anyway.

@mhdawson
Copy link
Member

+1 to starting with configure option.

@octaviansoldea
Copy link
Author

Hello

Thank you for your feedback. My solution is including configure indeed.

@octaviansoldea

@octaviansoldea
Copy link
Author

Hello

Just a small update. I have uploaded the modification proposed and created the pull request

pgo: enabling pgo at configure #21596

@octaviansoldea

octaviansoldea pushed a commit to octaviansoldea/node that referenced this issue Aug 31, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: nodejs#21583
Refs: nodejs#1409
gabrielschulhof pushed a commit that referenced this issue Sep 4, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: #21583
Refs: #1409
PR-URL: #21596
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
targos pushed a commit that referenced this issue Sep 5, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: #21583
Refs: #1409
PR-URL: #21596
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
targos pushed a commit that referenced this issue Sep 27, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: #21583
Refs: #1409
targos pushed a commit that referenced this issue Oct 3, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: #21583
Refs: #1409
PR-URL: #21596
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
@lundibundi
Copy link
Member

Closed via #21596.

Using PGO for release builds may be an idea worth discussion but this issue has concerned the ability to use PGO on Linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI.
Projects
None yet
Development

No branches or pull requests

5 participants