RFR: 8298427: Detect Ampere-1 and Ampere-1A CPUs and set default options

Patrick Zhang qpzhang at openjdk.org
Fri Jan 6 08:39:27 UTC 2023


This patch is to add CPU detection for Ampere-1 and Ampere-1A and set -XX:+UseSIMDForMemoryOps by default. In addition, an `enum Ampere_CPU_Model ` got introduced in order to clearly describe all Ampere CPUs in `src/hotspot/cpu/aarch64/vm_version_aarch64.hpp`.

Tests done:
1. Jtreg tier1 sanity check on Ampere Altra AArch64 platforms, and Ampere-1 systems as well. No new issue found.
4. GitHub Actions (GHA) sanity tests: https://github.com/cnqpzhang/jdk/actions/runs/3845722221
3. OpenJDK bundled JMH, `make run-test TEST="micro:java.lang.ArrayCopy*" `, SIMD vs NoSIMD ratios are mostly positive. For example, `java.lang.ArrayCopyAligned.testChar` with `-p length=600` showed +42% improvement on Ampere-1. 
2. Ran [JMH JDK Microbenchmarks](https://github.com/openjdk/jmh-jdk-microbenchmarks), ~1500 cases. No obvious perf regression found.

Signed-off-by: Patrick Zhang <patrick at os.amperecomputing.com>

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

Commit messages:
 - 8298427: Detect Ampere-1 and Ampere-1A CPUs and set default options

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

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


More information about the hotspot-compiler-dev mailing list