Announcement

Collapse
No announcement yet.

Facebook's BOLT Is An Effort To Speed-Up Linux Binaries

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Facebook's BOLT Is An Effort To Speed-Up Linux Binaries

    Phoronix: Facebook's BOLT Is An Effort To Speed-Up Linux Binaries

    BOLT is the Binary Optimization and Layout Tool that is a Facebook Incubator project for speeding up Linux x86-64/AArch64 ELF binaries...

    http://www.phoronix.com/scan.php?pag...imize-Binaries

  • #2
    Interesting. I wonder how strongly it's biased toward understanding the code generation quirks of C and C++. (ie. How suitable it is for being applied to other languages which compile to machine code using GCC- or LLVM-based compilers.)

    Comment


    • #3
      So, would that be usable for recompiling x86 executables for other architectures, or does it still needs to be done manually?

      Comment


      • #4
        I'm assuming the case for this is because you don't have the source? Otherwise, what would be the benefit compared to regular PGO?
        The generation of PGO data is still the same from the profiled binary... Magic Facebook optimization sauce?

        Comment


        • #5
          Originally posted by milkylainen View Post
          I'm assuming the case for this is because you don't have the source? Otherwise, what would be the benefit compared to regular PGO?
          E.g. optimize a userspace graphics driver for codeflow specific to a game, but only when the game is ran.

          Comment


          • #6
            Most things are fast for me already.
            Exception is GNOME Calculator because its packaged with Flatpak now on Ubuntu, and I think maybe things packaged with Flatpak gets slow?
            Also Electron apps are a bit slow to start...

            Comment


            • #7
              Disassemling and recompiling machine code based on a heuristic on what the control flow is supposed to be? Isn't that wildly unsafe? They explicitly say that the code must not make certain assumptions, but i guess an optimization like this only makes sense for really large binaries, built from huge amounts of source code, which probably makes auditing that code to see whether it conforms to these specifications. "Move fast and break things" i guess.

              Comment


              • #8
                Originally posted by uid313 View Post
                Most things are fast for me already.
                Exception is GNOME Calculator because its packaged with Flatpak now on Ubuntu, and I think maybe things packaged with Flatpak gets slow?
                Also Electron apps are a bit slow to start...
                Flatpak apps are fast for me, at least on Solus. Snap apps, however, are terribly slow and sluggish.
                Electron is heavy and it sucks (although I do use Spotify, but Electron is one of the few things I actually want to kill off).

                Comment


                • #9
                  Originally posted by Vistaus View Post

                  Flatpak apps are fast for me, at least on Solus. Snap apps, however, are terribly slow and sluggish.
                  Electron is heavy and it sucks (although I do use Spotify, but Electron is one of the few things I actually want to kill off).
                  Oops, I was wrong, GNOME Calculator on Ubuntu is not a Flatapp, its actually a Snap app.
                  So yeah GNOME Calculator is a Snap app and it is slow.

                  Also Spotify is slow to start up. I also use Atom and VS Code which are built on Electron.

                  Comment


                  • #10
                    They also have an article about it.

                    https://code.fb.com/data-infrastruct...ons-with-bolt/

                    Comment

                    Working...
                    X