[Bug 2072478] Re: g++-14 performance regression - built with debug checks
Matthias Klose
2072478 at bugs.launchpad.net
Wed Oct 30 11:45:09 UTC 2024
14.2.0 is now in 24.04 LTS
** Changed in: gcc-14 (Ubuntu)
Status: Confirmed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-14 in Ubuntu.
https://bugs.launchpad.net/bugs/2072478
Title:
g++-14 performance regression - built with debug checks
Status in gcc-14 package in Ubuntu:
Fix Released
Bug description:
System information (Docker container for ubuntu:24.04):
```
$> lsb_release -rd
No LSB modules are available.
Description: Ubuntu 24.04 LTS
Release: 24.04
```
Package information:
```
$> apt-cache policy g++-14
g++-14:
Installed: 14-20240412-0ubuntu1
Candidate: 14-20240412-0ubuntu1
Version table:
*** 14-20240412-0ubuntu1 500
500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
100 /var/lib/dpkg/status
```
g++-14 in Ubuntu 24.04 builds extremely slow. At Boost, we've noticed
increases of around x2 in CI build times.
This thread by some of my colleagues at Boost summarizes the problems
we've found:
https://www.reddit.com/r/cpp/comments/1cfzydb/gcc_14_twice_as_slow_as_gcc_13/
It looks like Ubuntu 24.04 g++-14 is indeed a debug build, and hence
the slowdown. Running in an `ubuntu:24.04` Docker container the
following:
```
apt update
apt install -y --no-install-recommends g++-14
g++-14 -v
```
Yields the following:
```
g++-14 -v
Using built-in specs.
COLLECT_GCC=g++-14
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 14-20240412-0ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-14/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,rust --prefix=/usr --with-gcc-major-version-only --program-suffix=-14 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-14-OQFzmN/gcc-14-14-20240412/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-14-OQFzmN/gcc-14-14-20240412/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=yes,extra,rtl --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.0.1 20240412 (experimental) [master r14-9935-g67e1433a94f] (Ubuntu 14-20240412-0ubuntu1)
```
The problem is `--enable-checking=...` - as per the GCC configure
reference page (https://gcc.gnu.org/install/configure.html), it should
be set to `--enable-checking=release`.
Reading gcc's configure page, I think this happened because gcc was
built from the master branch (as the release branch wasn't out at the
time Ubuntu 24.04 was published).
Now that gcc 14 is officially out, it would be great if we could get
an updated package with gcc built in release mode.
Thanks,
Ruben.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-14/+bug/2072478/+subscriptions
More information about the foundations-bugs
mailing list