Mailinglist Archive: opensuse-factory (355 mails)

< Previous Next >
[opensuse-factory] Glibc performance (Was: Re: why upgrading too leap15.2?)
  • From: Martin Jambor <mjambor@xxxxxxx>
  • Date: Wed, 11 Mar 2020 16:31:08 +0100
  • Message-id: <ri6wo7q29j7.fsf@suse.cz>
Hello,

On Tue, Mar 03 2020, David C. Rankin wrote:
On 02/29/2020 07:00 AM, Frans de Boer wrote:
LS,

Just installed the beta version of leap15.2, just to see if there is anything
too upgrade for.
Nope, just a new kernel and may some other new or updated packages, but even
glibc stays ancient, just as many other packages.  Thus keeping leap15.2 as
slow as leap15.1 which is 4 times slower then TW for mathematics due to the
ancient glibc library and possible the very ancient gcc tool set.

Feel free to install a newer gcc from
https://build.opensuse.org/project/show/devel:gcc


But, maybe I am pessimistic and can someone correct me?


Chuckling.... can somebody correct you?

That's a very difficult question to answer. However, there are some
observations to be made, "slower" and "faster" are qualitative and 4 times a
qualitative measure is still itself qualitative.

Can you include some specific benchmarks you are referring to? The reason
being, is I haven't seen any great leap in performance tied to glibc that I
can think of.

From release notes of glibc 2.27:

* Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin, cosf,
sinf, sincosf and tan with FMA, contributed by Arjan van de Ven and
H.J. Lu from Intel.

* Optimized x86-64 trunc and truncf for processors with SSE4.1.

* Optimized generic expf, exp2f, logf, log2f, powf, sinf, cosf and sincosf.

From release notes of glibc 2.29:

* Optimized generic exp, exp2, log, log2, pow, sinf, cosf, sincosf and
tanf.

About a year ago I was comparing 2.26 from SLES 15.0 and 2.29(*) on SPEC
FPrate 2017 using gcc 9.1 (rc) on a Zen1-based AMD CPU. At -Ofast and
with -march=native:

- 521.wrf improved by 29%
- 227.cam4 improved by 26%
- 544.nab_r improved by 13.3%
- 554.roms_r improved by almost 9%

At -O2 (not a very good optimization level for SPEC rate) and generic
march/mtune 503.bwases improved by 42%(!). It should not be difficult
to construct a synthetic benchmark that would be 4x as fast with current
glibc compared to 2.26 - just benchmark repeated invocations of exp :-)

Some of these improvements - some of those coming from glibc 2.27 - were
backported to SLE 15.1 and thus to leap 15.1. Unfortunately, the second
batch was also quite significant and is not present in Leap glibc.

(*) This 2.29 glibc also had a backport of
/usr/include/finclude/math-vector-fortran.h which IIRC is upstream only
since glibc 2.30. To make use of it, you need gcc 9.1 or newer.

Were it not for the cessation of updates, I could happily still
be running 11.0 and the performance of assembly, C, C++ would still be very
comparable. (though STL availability would be a problem)

I have repeatedly measured that a lot of CPU-intensive code produced
with more modern toolchain has significantly better performance in the
last few years, let alone since 11.0.

Martin
--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >
List Navigation
References