Hello,

On 9/5/2018 6:12 AM, Severin Gehwolf wrote:
Hi,

Cross-posting this review-thread on core-libs-dev and build-dev as this
is a build change, but affects fdlibm which is core-libs.

With JDK-8170153 optimization for fdlibm code has been turned on for
ppc64 s390 and aarch64. This patch intends to turn it on on all arches
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
webrev: http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8210416/webrev.01/

Testing: - java/lang/Math, java/lang/StrictMath tests (all pass).
          - Currently running through submit repo.

A simple micro benchmark from JDK-8170153[1] shows these numbers for
StrictMath:

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



Note that pow (JDK-8134795), hypot (JDK-7130085), cbrt (JDK-8136799), and exp (JDK-8139688), have been ported to Java as of JDK 9. The sqrt method is commonly handled as an intrinsic.

Testing that was not geared toward finding precision/rounding issues would be unlikely to find them.

I don't see the sources of the microbenchmark in JDK-8170153.

Cheers,

-Joe

Reply via email to