RFR: 8293484: AArch64: Enable SHA512 intrinsic by default on supported hardware

Hao Sun haosun at openjdk.org
Tue Nov 1 06:16:21 UTC 2022


SHA512 intrinsic for AArch64 was implemented in JDK-8165404. But it was not auto-enabled due to the lack of full test on real hardware. In this patch, we set this intrinsic enabled by default on hardware with sha512 feature support, after we did the following evaluation.

1) tier1~3 passed without new failures.

2) we ran the JMH test case MessageDigests.java on all available sha512 feature supported CPUs on our hands including Neoverse V1, Neoverse N2 and Apple silicon(M1). We witnessed about 1.3x ~ 3x performance uplifts. Here shows the data on V1.


Benchmark                    (digesterName)  (length)  (provider)   Mode  Cnt    Before     After   Units
MessageDigests.digest               SHA-384        64     DEFAULT  thrpt    5  2381.028  6161.576  ops/ms
MessageDigests.digest               SHA-384     16384     DEFAULT  thrpt    5    20.641    60.493  ops/ms
MessageDigests.digest               SHA-512        64     DEFAULT  thrpt    5  2407.225  6140.680  ops/ms
MessageDigests.digest               SHA-512     16384     DEFAULT  thrpt    5    20.633    60.942  ops/ms
MessageDigests.getAndDigest         SHA-384        64     DEFAULT  thrpt    5  1962.740  4714.510  ops/ms
MessageDigests.getAndDigest         SHA-384     16384     DEFAULT  thrpt    5    20.474    61.360  ops/ms
MessageDigests.getAndDigest         SHA-512        64     DEFAULT  thrpt    5  1949.511  4552.723  ops/ms
MessageDigests.getAndDigest         SHA-512     16384     DEFAULT  thrpt    5    20.477    59.693  ops/ms

-------------

Commit messages:
 - 8293484: AArch64: Enable SHA512 intrinsic by default on supported hardware

Changes: https://git.openjdk.org/jdk/pull/10925/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10925&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8293484
  Stats: 4 lines in 1 file changed: 0 ins; 1 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/10925.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10925/head:pull/10925

PR: https://git.openjdk.org/jdk/pull/10925


More information about the hotspot-dev mailing list