Announcement

Collapse
No announcement yet.

Google Using AutoFDO On Linux Meant Up To 12% Less Cycles Spent Within The Kernel

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

  • Google Using AutoFDO On Linux Meant Up To 12% Less Cycles Spent Within The Kernel

    Phoronix: Google Using AutoFDO On Linux Meant Up To 12% Less Cycles Spent Within The Kernel

    While a Microsoft engineer was at Linux Plumbers Conference this week talking up their LTO and PGO optimization work for the Linux kernel, Google engineers have now one upped that work by also shipping kernels with AutoFDO optimizations...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    AutoFDO isn't a step up from PGO, it's half of step down.

    Comment


    • #3
      Originally posted by Brane215 View Post
      AutoFDO isn't a step up from PGO, it's half of step down.
      Why is that?

      Comment


      • #4
        Originally posted by Brane215 View Post
        AutoFDO isn't a step up from PGO, it's half of step down.
        It may not be as good at tracking everything but the benefits are great. Using hardware counters means it isn't as slow as building in recording. It does not require writing to a file or other output, which is difficult to do in a kernel. Not requiring special profiling code means it can be built as normal and have profiling done at any time without special preparation.

        So, if it is a half-step down, it is also three steps to the side.

        Comment


        • #5
          My numbers still stand.

          Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite


          OpenGL renderer string: Radeon RX 580 Series (POLARIS10, DRM 3.38.0, 5.8.5-1.gf0adcb3-default, LLVM
          11.0.0)
          OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.0-devel (git-9e21c1f95e)

          Comment


          • #6
            Originally posted by Brane215 View Post
            AutoFDO isn't a step up from PGO, it's half of step down.
            Originally posted by Brane215 View Post
            Google is not only leveraging link-time optimizations (LTO) and profile-guided optimizations (PGO) for maximizing compiler-based efficiencies of their kernel images but also auto feedback directed optimizations.
            Michael said one-upped because Google is compiling using LTO + PGO + AutoFDO

            So, is it still a step-down from LTO+PGO only?

            Comment


            • #7
              It makes sense. What seems to be an insane amount of compute for a small return when you own your own individual hardware must look much different to Google, which owns a significant fraction of computing power on the planet.

              Also:

              Microsoft: 'We need to get together and use this optimisation for the kernel.'

              Google: 'Yo, dawg, we've been doing that for a while. Get on our level.'

              Though it seems to be a fact that Microsoft would have the result available upstream, while Google kept their work proprietary, probably as a performance advantage. The amount of compute available to Microsoft, they ought to be able to do exactly what Google did. It is interesting if they want to keep a level playing field for the entire market instead. Perhaps a product of not being the 800lb gorilla in the room any longer?

              Also interesting vis á vis benchmarking: Windows has been using PGO and LTO enhancements while Linux has not. That should be fun going forward.

              Comment


              • #8
                Originally posted by Teggs View Post

                Also interesting vis á vis benchmarking: Windows has been using PGO and LTO enhancements while Linux has not. That should be fun going forward.
                For kernel itself that might be true, but not for the whole system.
                I'm using LTO for most of everything for quite some time now and chose to use PGO on a few main packages ( e.g Firefox).

                Comment


                • #9
                  Originally posted by Teggs View Post
                  Also interesting vis á vis benchmarking: Windows has been using PGO and LTO enhancements while Linux has not. That should be fun going forward.
                  If you mean LTO in general, I believe Visual Studio for Windows has been doing LTO in Release builds since 2005 or so. There it is called Link Time Code Generation.

                  Comment

                  Working...
                  X