Want more timely Centmin Mod News Updates?
Become a Member

Beta Branch Testing GCC 8, GCC 9 & Clang 5/6/7 compiler for Centmin Mod Nginx & PHP-FPM

Discussion in 'Beta release code' started by eva2000, Jan 14, 2018.

Thread Status:
Not open for further replies.
  1. eva2000

    eva2000 Administrator Staff Member

    42,020
    9,474
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +14,580
    Local Time:
    5:14 PM
    Nginx 1.17.x
    MariaDB 5.5/10.x

    GCC 9.1.0



    GCC 9.1.0 compiler is due out next week on May 3rd, 2019 with improved cpu support for latest Intel Cascade Lake (Intel Xeon Scalable 42xx, 52xx, 62xx, 82xx and 92xx) and AMD Zen2 (AMD EPYC Rome2) next generation cpus https://www.phoronix.com/scan.php?page=news_item&px=GCC-9.1-RC1-Released

    So privately testing Centmin Mod 123.09beta01's Nginx support with GCC 9.1.0 RC (release candidate) version first to make sure Centmin Mod Nginx (eventually PHP-FPM) build routines support the new GCC 9.1.0 release :)

    Code (Text):
    /opt/gcc-9.1.0-RC-20190426/bin/gcc -v
    Using built-in specs.
    COLLECT_GCC=/opt/gcc-9.1.0-RC-20190426/bin/gcc
    COLLECT_LTO_WRAPPER=/opt/gcc-9.1.0-RC-20190426/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --prefix=/opt/gcc-9.1.0-RC-20190426 --disable-multilib --enable-bootstrap --enable-plugin --with-gcc-major-version-only --enable-shared --disable-nls --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-install-libiberty --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++ --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --build=x86_64-redhat-linux --enable-lto --enable-gold
    Thread model: posix
    gcc version 9.1.0 20190426 (prerelease) (GCC)
    

    Code (Text):
    yum info gcc9 -q
    Installed Packages
    Name        : gcc9
    Arch        : x86_64
    Version     : 9.1.0
    Release     : 1.el7
    Size        : 319 M
    Repo        : installed
    Summary     : gcc9 for centminmod.com LEMP stack installs
    URL         : https://centminmod.com
    License     : unknown
    Description : gcc9 for centminmod.com LEMP stacks
    

    Nginx 1.15.12 mainline with GCC 9.1.0 RC built binary :)
     
    • Like Like x 1
    • Winner Winner x 1
  2. eva2000

    eva2000 Administrator Staff Member

    42,020
    9,474
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +14,580
    Local Time:
    5:14 PM
    Nginx 1.17.x
    MariaDB 5.5/10.x
    Yesterday GCC 9.1.0 GA stable release compiler version was announced https://www.phoronix.com/scan.php?page=news_item&px=GCC-9.1-Compiler-Released so doing private testing to ensure Centmin Mod 123.09beta01 supports the new GCC 9.1.0 version. Phoronix also posted benchmarks of GCC 8 vs GCC 9 performance on new Intel Cascade Lake processors at https://www.phoronix.com/scan.php?page=news_item&px=Intel-Cascade-Lake-GCC9 :)

    Here I am testing Centmin Mod 123.09beta01's Nginx built from Nginx master development branch so Nginx 1.17.0 mainline paired with OpenSSL 1.1.1b for TLS 1.3 support and compiled/built using newly released GCC 9.1.0 compiler :D

    Code (Text):
    gcc -v
    Using built-in specs.
    COLLECT_GCC=/opt/gcc9/bin/gcc
    COLLECT_LTO_WRAPPER=/opt/gcc-9.1.0/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --prefix=/opt/gcc-9.1.0 --disable-multilib --enable-bootstrap --enable-plugin --with-gcc-major-version-only --enable-shared --disable-nls --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-install-libiberty --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++ --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --build=x86_64-redhat-linux --enable-lto --enable-gold
    Thread model: posix
    gcc version 9.1.0 (GCC) 
    


     
    • Winner Winner x 1
  3. eva2000

    eva2000 Administrator Staff Member

    42,020
    9,474
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +14,580
    Local Time:
    5:14 PM
    Nginx 1.17.x
    MariaDB 5.5/10.x
    Add testing for newly released GCC 9.2 release with AMD EPYC 2 (znver2) improvements backported from GCC 10 https://www.phoronix.com/scan.php?page=news_item&px=GCC-9.2-Released

    Code (Text):
    yum -q info gcc9
    Installed Packages
    Name        : gcc9
    Arch        : x86_64
    Version     : 9.2.0
    Release     : 1.el7
    Size        : 359 M
    Repo        : installed
    Summary     : gcc9 for centminmod.com LEMP stack installs
    URL         : https://centminmod.com
    License     : unknown
    Description : gcc9 for centminmod.com LEMP stacks
    

     
    • Like Like x 1
  4. eva2000

    eva2000 Administrator Staff Member

    42,020
    9,474
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +14,580
    Local Time:
    5:14 PM
    Nginx 1.17.x
    MariaDB 5.5/10.x
    Updated 123.09beta01 with preliminary GCC 9.2 compiler support for PHP routines as well on CentOS 7 only Beta Branch - add GCC 9.2+ support to PHP compile routine in 123.09beta01

    Below is php benchmark on Intel Core i7 4790K Haswell dedicated server for PHP 7.4.0RC1 built with both GCC 8.3.1 (default) in CentOS 7 Centmin Mod 123.09beta01 and with optional GCC 9.2.0 support compared with Remi YUM repo's PHP-FPM 7.4.0RC1, 7.3.9, 7.2.22, 7.1.22 and 7.0.33. GCC 9.2 built binaries will have more performance boost in theory with newer cpu models newer than Intel Skylake or AMD Zen2 just as GCC 8 had for newer than Intel Broadwell cpus. As the Intel Core i7 4790K Haswell older than Intel Broadwell cpu, it isn't the best example for performance boost that GCC 9 built binaries will have for Centmin Mod Nginx and PHP-FPM performance.

    GCC 9.2.0
    Code (Text):
    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/gcc-9.2.0/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --prefix=/opt/gcc-9.2.0 --disable-multilib --enable-bootstrap --enable-plugin --with-gcc-major-version-only --enable-shared --disable-nls --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-install-libiberty --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++ --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --build=x86_64-redhat-linux --enable-lto --enable-gold
    Thread model: posix
    gcc version 9.2.0 (GCC)
    

    GCC 8.3.1
    Code (Text):
    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
    Thread model: posix
    gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
    

    Centmin Mod's GCC 9.2.0 built PHP 7.4.0RC1 is slighly faster than GCC 8.3.1 (default) PHP 7.4.0RC1 builds.

    php74-gcc9-vs-gcc8-01.png

    Centmin Mod 123.09beta01 already has Nginx supporting GCC 9.2.0 via private GCC 9.2 built RPMs - just waiting on SCL devtoolset-9 GCC 9.2 support. But Centmin Mod's Nginx and PHP-FPM routines are GCC 9.2 ready. Will be working on GCC 10 support soon via custom GCC 10 built RPMs as well :D
     
  5. eva2000

    eva2000 Administrator Staff Member

    42,020
    9,474
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +14,580
    Local Time:
    5:14 PM
    Nginx 1.17.x
    MariaDB 5.5/10.x
    Previous PHP benchmarks were with GCC 9.2.0, but updated to GCC 9.2.1 and retested against GCC 8.3.1 compiler for all major PHP 7 versions built by Centmin Mod 123.09beta01 and compared them to REMI YUM repo's PHP versions. Also tested Centmin Mod with Profile Guided Optimization (PGO) training and looks good :D

    gcc 8.3.1
    Code (Text):
    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
    Thread model: posix
    gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
    

    gcc 9.2.0
    Code (Text):
    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/gcc-9.2.0/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --prefix=/opt/gcc-9.2.0 --disable-multilib --enable-bootstrap --enable-plugin --with-gcc-major-version-only --enable-shared --disable-nls --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-install-libiberty --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++ --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --build=x86_64-redhat-linux --enable-lto --enable-gold
    Thread model: posix
    gcc version 9.2.0 (GCC)
    

    gcc 9.2.1
    Code (Text):
    gcc -v
    Using built-in specs.
    COLLECT_GCC=/opt/gcc-9-20190907/bin/gcc
    COLLECT_LTO_WRAPPER=/opt/gcc-9-20190907/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --prefix=/opt/gcc-9-20190907 --disable-multilib --enable-bootstrap --enable-plugin --with-gcc-major-version-only --enable-shared --disable-nls --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-install-libiberty --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++ --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --build=x86_64-redhat-linux --enable-lto --enable-gold
    Thread model: posix
    gcc version 9.2.1 20190907 (GCC)
    


    Also tested Centmin Mod PHP-FPM with FFI enabled (Foreign Function Interface) support

    php74-gcc9-vs-gcc8-pgo-01.png
     
    • Winner Winner x 1
Thread Status:
Not open for further replies.