RFR: 8312425: [vectorapi] AArch64: Optimize vector math operations with SLEEF [v2]
Fei Gao
fgao at openjdk.org
Wed Oct 16 10:33:14 UTC 2024
On Tue, 15 Oct 2024 12:16:28 GMT, Hamlin Li <mli at openjdk.org> wrote:
>> Hi,
>> Can you help to review the patch? Previously it's https://github.com/openjdk/jdk/pull/18605.
>> This pr is based on https://github.com/openjdk/jdk/pull/20781.
>>
>> Thanks!
>>
>> ## Test
>> ### tests:
>> * test/jdk/jdk/incubator/vector/
>> * test/hotspot/jtreg/compiler/vectorapi/
>>
>> ### options:
>> * -XX:UseSVE=1 -XX:+EnableVectorSupport -XX:+UseVectorStubs
>> * -XX:UseSVE=0 -XX:+EnableVectorSupport -XX:+UseVectorStubs
>> * -XX:+EnableVectorSupport -XX:-UseVectorStubs
>>
>> ## Performance
>>
>> ### Tests
>> jmh tests are test/micro/org/openjdk/bench/jdk/incubator/vector/operation/ from vectorIntrinsics branch in panama-vector. It's good to have these tests in jdk main stream, I will do it in a separate pr later. (These tests are auto-generated tests from some script&template, it's good to also have those scrip&template in jdk main stream, but those scrip&template generates more other tests than what we need here, so better to add these tests and script&template in another pr).
>>
>> ### Options
>> * +intrinsic: 'FORK=1;ITER=10;WARMUP_ITER=10;JAVA_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+EnableVectorSupport -XX:+UseVectorStubs'
>> * -intrinsic: 'FORK=1;ITER=10;WARMUP_ITER=10;JAVA_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+EnableVectorSupport -XX:-UseVectorStubs'
>>
>> ### Performance data
>> I have re-tested, there is no much difference from https://github.com/openjdk/jdk/pull/18605, so please check performance data in that pr.
>
> Hamlin Li has updated the pull request incrementally with one additional commit since the last revision:
>
> Update make/autoconf/flags-cflags.m4
>
> Co-authored-by: Magnus Ihse Bursie <mag at icus.se>
src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp line 8218:
> 8216:
> 8217: snprintf(ebuf, sizeof(ebuf), "%sdx_%ssve", VectorSupport::mathname[op], ulf);
> 8218: StubRoutines::_vector_d_math[VectorSupport::VEC_SIZE_SCALABLE][op] = (address)os::dll_lookup(libsleef, ebuf);
May I ask why `aarch64` doesn't have C file including macro expansion of function names while `RISC-V` needs it, see added in https://github.com/openjdk/jdk/pull/21083/files#diff-65f5198005719e644115782e7f4dd5a17c0969b01cbb50a1224b6800bbf8f177? Thanks.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21502#discussion_r1802837028
More information about the build-dev
mailing list