RFR: 8317720: RISC-V: Implement Adler32 intrinsic [v7]
ArsenyBochkarev
duke at openjdk.org
Tue May 21 10:09:06 UTC 2024
On Tue, 21 May 2024 07:43:21 GMT, Gui Cao <gcao at openjdk.org> wrote:
>> I also ran the correctness test on the Banana Pi BPI-F3 board (has RVV1.0):
>>
>> Before this patch and disable UseRVV:
>> Test `test/hotspot/jtreg/compiler/intrinsics/zip/TestAdler32.java` is ok
>> Before this patch and enable UseRVV:
>> Test `test/hotspot/jtreg/compiler/intrinsics/zip/TestAdler32.java` is ok
>>
>> Apply this patch and disable UseRVV:
>> Test `test/hotspot/jtreg/compiler/intrinsics/zip/TestAdler32.java` is ok
>> Apply this patch and enable UseRVV:
>> Test `test/hotspot/jtreg/compiler/intrinsics/zip/TestAdler32.java` is Failed
>>
>> The TestAdler32.jtr on Failed is as follows:
>> [TestAdler32.jtr.log](https://github.com/openjdk/jdk/files/15350178/TestAdler32.jtr.log)
>
>> Hello @zifeihan! Thanks for your efforts on improving this PR. I don't have access (yet) to Banana Pi board, so I can't debug precisely the case you pointed out. However, I know that vlen for Banana Pi is 256 bit, so I fixed problems for this case and checked functional correctness on QEMU for both 128 and 256 bit, which is OK now. Could you please do a re-run of `test/hotspot/jtreg/compiler/intrinsics/zip/TestAdler32.java` test?
>
> Sorry for being late, JMH performance test data just finished.
> Apply this pr and enable UseRVV:
> - [x] Correctness test `test/hotspot/jtreg/compiler/intrinsics/zip/TestAdler32.java` passed normally.
> - [x] JMH test `test/micro/org/openjdk/bench/java/util/TestAdler32.java` passed normally.
>
> Benchmark (count) Mode Cnt Score Error Units
> TestAdler32.testAdler32Update 64 thrpt 25 7865.764 ± 57.876 ops/ms
> TestAdler32.testAdler32Update 128 thrpt 25 6361.346 ± 0.178 ops/ms
> TestAdler32.testAdler32Update 256 thrpt 25 4595.217 ± 0.166 ops/ms
> TestAdler32.testAdler32Update 512 thrpt 25 2941.284 ± 12.318 ops/ms
> TestAdler32.testAdler32Update 1024 thrpt 25 1728.568 ± 0.053 ops/ms
> TestAdler32.testAdler32Update 2048 thrpt 25 943.173 ± 1.043 ops/ms
> TestAdler32.testAdler32Update 5012 thrpt 25 404.343 ± 0.205 ops/ms
> TestAdler32.testAdler32Update 8192 thrpt 25 249.495 ± 1.986 ops/ms
> TestAdler32.testAdler32Update 16384 thrpt 25 126.168 ± 1.261 ops/ms
> TestAdler32.testAdler32Update 32768 thrpt 25 61.925 ± 0.607 ops/ms
> TestAdler32.testAdler32Update 65536 thrpt 25 30.866 ± 0.375 ops/ms
> Finished running test 'micro:java.util.TestAdler32'
@zifeihan: Thank you for these runs!
@RealFYang: Hi, thanks! The JMH numbers increase is expected due to [partial unrolling](https://github.com/openjdk/jdk/pull/18382/commits/453c169b04422ec7aec72d4819a95597be2a7e07) of `L_by16` loop
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18382#issuecomment-2122260400
More information about the hotspot-compiler-dev
mailing list