RFR: 8312425: [vectorapi] AArch64: Optimize vector math operations with SLEEF [v6]

Fei Gao fgao at openjdk.org
Thu Jun 27 11:57:11 UTC 2024


On Thu, 6 Jun 2024 07:52:02 GMT, Hamlin Li <mli at openjdk.org> wrote:

>> Hamlin Li has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   update header files for arm
>
> in progress...

Hi @Hamlin-Li , thanks for your work.

I tried to run benchmarks, [FloatMaxVector](https://github.com/openjdk/panama-vector/blob/vectorIntrinsics/test/micro/org/openjdk/bench/jdk/incubator/vector/operation/FloatMaxVector.java#L1068) and [DoubleMaxVector](https://github.com/openjdk/panama-vector/blob/vectorIntrinsics/test/micro/org/openjdk/bench/jdk/incubator/vector/operation/DoubleMaxVector.java#L1068), on different aarch64 machines.

Here is the data I got for `TANH`, with args `-i 5 -f 3 -wi 3 -foe true -jvmArgs -Xms4g -Xmx4g -XX:+AlwaysPreTouch -XX:ObjectAlignmentInBytes=16`:


// NEON machine
Benchmark             (size)   Mode     Cnt  Units     Perf gain
DoubleMaxVector.TANH   1024    thrpt    15   ops/ms     -38%
FloatMaxVector.TANH    1024    thrpt    15   ops/ms     -26%



// 128-bit sve machine (TANH also implemented with NEON)
Benchmark             (size)   Mode     Cnt  Units     Perf gain
DoubleMaxVector.TANH   1024    thrpt    15    ops/ms    -19%
FloatMaxVector.TANH    1024    thrpt    15    ops/ms    ~00%


The performance of vector stubs for `TANH` looks not quite stable on different NEON machines. Since this pr does not provide `TANH` interface on sve machines for [the performance regression](https://github.com/openjdk/jdk/pull/16234/commits/2a7730d6acbac80438a43d1502cff6a476f8b5b5#diff-9112056f732229b18fec48fb0b20a3fe824de49d0abd41fbdb4202cfe70ad114R8521-R8525), how about also disabling it on NEON for the same reason? WDYT? 

Thanks.

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

PR Comment: https://git.openjdk.org/jdk/pull/18605#issuecomment-2194480996


More information about the build-dev mailing list