Announcement

Collapse
No announcement yet.

GCC 10 Enters Its Fourth Stage Of Development, 20 Bugs Of Highest Priority

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

  • GCC 10 Enters Its Fourth Stage Of Development, 20 Bugs Of Highest Priority

    Phoronix: GCC 10 Enters Its Fourth Stage Of Development, 20 Bugs Of Highest Priority

    Following the long-awaited GCC transition from SVN to Git that took place this weekend, the GNU Compiler Collection is kicking off this week by transitioning to "stage four" development on the GCC 10 compiler...

    http://www.phoronix.com/scan.php?pag...-Four-Compiler

  • pal666
    replied
    Originally posted by ms178 View Post
    Well, I haven't pinpointed if the different settings or the compilation flags were responsible, but a gain from 27 FPS to 36 FPS to my Kernel customizations is what I have observed in my own testing - good enough for me to be noticeable.
    do you realize that if "faster compiler" did 33% speed increase, your game has to be spending more than 100% of its time in kernel?

    Leave a comment:


  • ms178
    replied
    Originally posted by pal666 View Post
    your fps are not spent in kernel, so optimizing kernel is not going to help. you should try optimizing mesa and game itself. and nothing will help if game is gpu-bound
    Well, I haven't pinpointed if the different settings or the compilation flags were responsible, but a gain from 27 FPS to 36 FPS to my Kernel customizations is what I have observed in my own testing - good enough for me to be noticeable. And that particular game of the DX9 era is CPU bound by nature - the miserable overall performance for the tested hardware (R5 2600 / Vega 56) must come from a regression somewhere in the stack and already reported the issue. I've also customized Mesa but it turned out to be already at its limits, at least I couldn't gain anything with my custom compilation flags there. That was rather disappointing to see, but at least the out-of-the-box experience is quite decent already.

    Leave a comment:


  • pal666
    replied
    it looks like the only major c++20 feature missing the boat is modules

    Leave a comment:


  • pal666
    replied
    Originally posted by ms178 View Post
    By the way, if someone could point to a how-to to get LTO working with the kernel would be appreciated. I tried Andi Kleen's patches before but couldn't make it work... ... also there might be better tweaks I haven't talked about here, feel free to share them.
    your fps are not spent in kernel, so optimizing kernel is not going to help. you should try optimizing mesa and game itself. and nothing will help if game is gpu-bound

    Leave a comment:


  • pal666
    replied
    Originally posted by ms178 View Post
    And by the way, I got a nice increase in performance when going from the standard openSUSE Tumbleweed Kernel 5.4.7 to my heavily customized 5.4.11 rc-1 build (from 27 FPS to 36 FPS in the Company of Heroes 2 benchmark with Proton and ACO, with GCC 9.2.1 and Clang performing similar).
    at first i read it as you are claiming compiler has anything to do with this fps increase

    Leave a comment:


  • ms178
    replied
    By the way, if someone could point to a how-to to get LTO working with the kernel would be appreciated. I tried Andi Kleen's patches before but couldn't make it work... ... also there might be better tweaks I haven't talked about here, feel free to share them.

    Leave a comment:


  • ms178
    replied
    Originally posted by timofonic View Post

    Can you share your patches, diffs, config files and such? Or better yet, a repo in GitLab or GitHub? Thanks in advance.
    There is certainly room for more improvements, but here are the basic steps I do:

    1) You can try to experiment with BMQ (http://cchalpha.blogspot.com/2019/12...1-release.html) and https://github.com/graysky2/kernel_gcc_patch, but I would consider both to be optional, I also got missing symbol errors with BMQ on 5.4.11 but that could have been related to the GCC10 toolchain, I couldn't pinpoint it exactly.

    2) Kernel settings with probably the most impact: 1000 Hz tick rate (default: 250 Hz), performance governor (default: ondemand), preemptible kernel (low-latency) (default: voluuntary kernel preemption); I also disable some security related features (NSA / APPARMOR / TOMOYO) and configure many different other things, but mainly for the purpose to optimize the size of the kernel, you might have other priorities here and it also comes down how flexible you want to be with your kernel. I optimize for the hardware I run on.

    3) I usually modifiy the top level makefile and x86/makefile but also the following line should do the trick and you'll get an installable rpm-pkg in the end (if you are on deb-based distribution you should use deb-pkg target instead): make KCFLAGS="-O3 -march=native -mtune=native -feliminate-unused-debug-types -fno-semantic-interposition -falign-functions=32 -floop-nest-optimize -fgraphite-identity -fipa-pta -flive-range-shrinkage -fno-math-errno -fno-trapping-math -mtls-dialect=gnu2 -std=gnu89" KCPPFLAGS="-O3 -march=native -mtune=native -falign-functions=32 -feliminate-unused-debug-types -fno-semantic-interposition -ftree-loop-distribution -floop-nest-optimize -fgraphite-identity" KLDFLAGS="-O2 -mtune=native -march=native -Wl,--as-needed -fopenmp" rpm-pkg

    [The build targets are what makes it very convenient process, there are different more involved methods to build a kernel, e.g. Clear Linux has a package builder where you would need to tweak some files to get it to compile with your custom compiler flags.]

    I usually use -std=gnu17 instead, but this is not officially supported yet and this only works if I disable certain problematic drivers (hence I don't recommend this option).

    Leave a comment:


  • timofonic
    replied
    Originally posted by ms178 View Post

    Tweaking the kernel settings for low-latency desktop use and disabling lots of unneeded stuff for my setup, patching in the BMQ scheduler, aggressive compiler settings beyond -O3 -march=native plus GRAPHITE optimizations (or using POLLY with LLVM/Clang), that sort of thing. It is a bit too much to list it all in more detail.
    Can you share your patches, diffs, config files and such? Or better yet, a repo in GitLab or GitHub? Thanks in advance.

    Leave a comment:


  • ms178
    replied
    Originally posted by xorbe View Post

    What did you tweak?
    Tweaking the kernel settings for low-latency desktop use and disabling lots of unneeded stuff for my setup, patching in the BMQ scheduler, aggressive compiler settings beyond -O3 -march=native plus GRAPHITE optimizations (or using POLLY with LLVM/Clang), that sort of thing. It is a bit too much to list it all in more detail.

    Leave a comment:

Working...
X