RFR: 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
erik.joelsson at oracle.com
Thu Sep 6 16:55:29 UTC 2018
On 2018-09-06 03:12, Severin Gehwolf wrote:
> Hi David,
> On Thu, 2018-09-06 at 07:32 +1000, David Holmes wrote:
>> Hi Severin,
>> Might as well raise this here too as it's really a build philosophy
>> issue. Shouldn't flags like -ffp-contract=off (and the existing AIX
>> -qfloat=nomaf) be toolchain specific rather than platform specific?
> Looks like Clang has -ffp-contract:
> Is there any other (supported) toolchain other than gcc and clang on
> linux? As for AIX I suppose there is only on supported toolchain?
We don't have a big variety of toolchain/platform combinations that we
actively support no, but we still try to be conscious of when a flag is
toolchain specific and when it's platform specific. There is certainly
interest in using other compilers on Linux, and GCC could potentially be
used on other platforms as well. Until we actually try it, it can be
hard to know for sure if a flag actually applies in other cases for the
toolchain and/or platform, but we can at least try our best guess.
>> On 5/09/2018 11:12 PM, Severin Gehwolf wrote:
>>> Cross-posting this review-thread on core-libs-dev and build-dev as
>>> is a build change, but affects fdlibm which is core-libs.
>>> With JDK-8170153 optimization for fdlibm code has been turned on
>>> ppc64 s390 and aarch64. This patch intends to turn it on on all
>>> on Linux. I've not observed any precision issues. Is there a good
>>> reason to not use -O3 -ffp-contract=off everywhere?
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8210416
>>> Testing: - java/lang/Math, java/lang/StrictMath tests (all pass).
>>> - Currently running through submit repo.
>>> A simple micro benchmark from JDK-8170153 shows these numbers
>>> Function | before | after
>>> sin | 0m33.382s | 0m18.731s
>>> cos | 0m31.562s | 0m18.796s
>>> tan | 0m33.657s | 0m21.093s
>>> atan | 0m5.714s | 0m4.902s
>>> log | 0m6.212s | 0m4.439s
>>> log10 | 0m7.946s | 0m5.543s
>>> sqrt | 0m0.481s | 0m0.449s
>>> cbrt | 0m5.295s | 0m5.214s
>>> tanh | 0m1.404s | 0m1.307s
>>> log1p | 0m6.457s | 0m5.131s
>>> IEEEremainder | 0m10.629s | 0m6.048s
>>> atan2 | 0m8.037s | 0m5.668s
>>> hypot | 0m2.171s | 0m2.147s
More information about the core-libs-dev