Git Product home page Git Product logo

Comments (6)

workingjubilee avatar workingjubilee commented on May 18, 2024 2

Absolutely, it could still be incredibly profitable for them if e.g. the team working on pgvecto.rs happened to have someone available to basically commit full time to making sure:

  • PGO works
  • BOLT works
  • they don't introduce any problems
  • maybe doing some other opportunistic performance opts
  • and keeping an eye on that for a while after as their setup evolves. how long? ...I dunno!

Anyways, BOLT-related miscompiles:

Generic BOLT issues:

Relevant perf tracking issues for rustc:

Rust partially mitigated this by extending testing to the optimized artifacts as well:

from pgvecto.rs.

zamazan4ik avatar zamazan4ik commented on May 18, 2024 1

Since I agree with your comments about BOLT and PGO stability issues, I still think PGO and BOLT combination is still a good thing to consider for the projects. Yes, combining PGO and BOLT can cause the issue but the decision on the tradeoff between "PGO+BOLT miscompilation possibilities" vs "gains from BOLT with PGO" should be considered for each project individually based on the projects' merits ("performance for all money", "stability first") and available resources like active contributors (as you said above).

Regarding BOLT + PGO issues - do you have a list of them anywhere near you? I am very interested in the story behind them and definitely will add to my PGO repository as the warnings for anyone who will test PGO with BOLT.

Thanks in advance!

from pgvecto.rs.

gaocegege avatar gaocegege commented on May 18, 2024

Thanks for the issue!

/cc @usamoi @VoVAllen

from pgvecto.rs.

workingjubilee avatar workingjubilee commented on May 18, 2024

This person has made many comments to this effect, however, I recommend not combining PGO and BOLT. It has caused many upstream issues for rust-lang, and Rust gets away with it mostly by having a lot of active contributors, such that when there's an all-hands-on-deck moment due to miscompilation, someone shows up to resolve it fairly quickly. It basically needs continuous monitoring to make sure nothing has gone wrong, because for whatever reason, rustc seems to be very good at generating code that surprises LLVM's tooling.

One or the other, independently, is probably safe to use, however. Rust had been using PGO for some time without BOLT, and it was only when used in tandem that they caused these issues.

from pgvecto.rs.

zamazan4ik avatar zamazan4ik commented on May 18, 2024

Thanks a lot for the links!

from pgvecto.rs.

Kobzol avatar Kobzol commented on May 18, 2024

It has caused many upstream issues for rust-lang

I'm not aware of any miscompilations caused by BOLT so far. We had miscompilations caused by LTO on Windows, but we don't use BOLT there.

Maybe you meant LTO + PGO? But that just sometimes fails to compile, I haven't seen any miscompilations related to that.

from pgvecto.rs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.