RFR: 8258932: AArch64: Enhance floating-point Min/MaxReductionV with fminp/fmaxp [v6]
Dong Bo
dongbo at openjdk.java.net
Mon Jan 11 11:41:13 UTC 2021
> This patch optimizes vectorial Min/Max reduction of two floating-point numbers on aarch64 with NEON instructions `fmaxp` and `fminp`.
>
> Passed jtreg tier1-3 tests with `linux-aarch64-server-fastdebug` build.
> Tests under `test/jdk/jdk/incubator/vector/` runned specially for the correctness and passed.
>
> Introduced a new JMH micro `test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java` for performance test.
> Witnessed abount `37%` performance improvements on Kunpeng916. The JMH Results:
> Benchmark (COUNT) (seed) Mode Cnt Score Error Units
> # Kunpeng 916, default
> VectorReduction.maxRedD 512 0 avgt 10 678.126 ± 0.815 ns/op
> VectorReduction.maxRedF 512 0 avgt 10 242.958 ± 0.212 ns/op
> VectorReduction.minRedD 512 0 avgt 10 678.554 ± 0.824 ns/op
> VectorReduction.minRedF 512 0 avgt 10 243.368 ± 0.205 ns/op
>
> # Kunpeng 916, with fmaxp/fminp
> VectorReduction.maxRedD 512 0 avgt 10 430.201 ± 0.353 ns/op => 36.56%
> VectorReduction.maxRedF 512 0 avgt 10 243.404 ± 0.297 ns/op
> VectorReduction.minRedD 512 0 avgt 10 427.805 ± 0.528 ns/op => 36.89%
> VectorReduction.minRedF 512 0 avgt 10 242.963 ± 0.210 ns/op
Dong Bo has updated the pull request incrementally with one additional commit since the last revision:
test improvements for doubles with Math.abs()
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/1925/files
- new: https://git.openjdk.java.net/jdk/pull/1925/files/f244ed01..4d6d32e6
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1925&range=05
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1925&range=04-05
Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
Patch: https://git.openjdk.java.net/jdk/pull/1925.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1925/head:pull/1925
PR: https://git.openjdk.java.net/jdk/pull/1925
More information about the hotspot-compiler-dev
mailing list