[External] : RE: RFR: 8266332: Adler32 intrinsic for x86 64-bit platforms [v2]

eric.caspole at oracle.com eric.caspole at oracle.com
Mon May 3 16:59:18 UTC 2021


Xubo,
thanks for clarifying that. Pengfei please consider to contribute this 
JMH ;)
Eric



On 5/3/21 12:41 PM, Zhang, Xubo wrote:
> Hi Eric,
> The jmh micro http://cr.openjdk.java.net/~pli/rfr/8216259/TestAdler32.java is from Pengfei Li, shared as part of JDK-8216259 aarch64 optimization. Maybe Pengfei can contribute to the OpenJDK?
>
> Best regards,
> Xubo
>
> -----Original Message-----
> From: hotspot-dev <hotspot-dev-retn at openjdk.java.net> On Behalf Of eric.caspole at oracle.com
> Sent: Monday, May 3, 2021 8:09 AM
> To: hotspot-dev at openjdk.java.net
> Subject: Re: RFR: 8266332: Adler32 intrinsic for x86 64-bit platforms [v2]
>
> Hi Xubo, could you please make your JMH, noted below, conform to the others in, say, test/micro/org/openjdk/bench/java/util/ and it to to your PR. The JMH is useful work too and others could reuse it later.
> Thanks,
> Eric
>
>
> On 4/30/21 3:57 PM, Xubo Zhang wrote:
>>> Implement Adler32 intrinsic for x86 64-bit platform using vector instructions.
>>>
>>> For the following benchmark:
>>> http://cr.openjdk.java.net/~pli/rfr/8216259/TestAdler32.java
>>>
>>> The optimization shows ~5x improvement.
>>>
>>> Base:
>>> Benchmark (count) Mode Cnt Score Error Units
>>> TestAdler32Perf.testAdler32Update 64 avgt 25 0.084 ± 0.001 us/op
>>> TestAdler32Perf.testAdler32Update 128 avgt 25 0.104 ± 0.001 us/op
>>> TestAdler32Perf.testAdler32Update 256 avgt 25 0.146 ± 0.002 us/op
>>> TestAdler32Perf.testAdler32Update 512 avgt 25 0.226 ± 0.002 us/op
>>> TestAdler32Perf.testAdler32Update 1024 avgt 25 0.390 ± 0.005 us/op
>>> TestAdler32Perf.testAdler32Update 2048 avgt 25 0.714 ± 0.007 us/op
>>> TestAdler32Perf.testAdler32Update 4096 avgt 25 1.359 ± 0.014 us/op
>>> TestAdler32Perf.testAdler32Update 8192 avgt 25 2.751 ± 0.023 us/op
>>> TestAdler32Perf.testAdler32Update 16384 avgt 25 5.494 ± 0.077 us/op
>>> TestAdler32Perf.testAdler32Update 32768 avgt 25 11.058 ± 0.160 us/op
>>> TestAdler32Perf.testAdler32Update 65536 avgt 25 22.198 ± 0.319 us/op
>>>
>>>
>>> With patch:
>>> Benchmark (count) Mode Cnt Score Error Units
>>> TestAdler32Perf.testAdler32Update 64 avgt 25 0.020 ± 0.001 us/op
>>> TestAdler32Perf.testAdler32Update 128 avgt 25 0.025 ± 0.001 us/op
>>> TestAdler32Perf.testAdler32Update 256 avgt 25 0.031 ± 0.001 us/op
>>> TestAdler32Perf.testAdler32Update 512 avgt 25 0.048 ± 0.001 us/op
>>> TestAdler32Perf.testAdler32Update 1024 avgt 25 0.078 ± 0.001 us/op
>>> TestAdler32Perf.testAdler32Update 2048 avgt 25 0.139 ± 0.002 us/op
>>> TestAdler32Perf.testAdler32Update 4096 avgt 25 0.262 ± 0.004 us/op
>>> TestAdler32Perf.testAdler32Update 8192 avgt 25 0.524 ± 0.010 us/op
>>> TestAdler32Perf.testAdler32Update 16384 avgt 25 1.017 ± 0.022 us/op
>>> TestAdler32Perf.testAdler32Update 32768 avgt 25 2.058 ± 0.052 us/op
>>> TestAdler32Perf.testAdler32Update 65536 avgt 25 3.994 ± 0.013 us/op
>> Xubo Zhang has updated the pull request incrementally with one additional commit since the last revision:
>>
>>     refactor adler32 algorithm to a new file
>> x86/macroAssembler_x86_adler.cpp; added a scratch reg to vpmulld, and
>> some other issues
>>
>> -------------
>>
>> Changes:
>>     - all: https://git.openjdk.java.net/jdk/pull/3806/files
>>     - new:
>> https://git.openjdk.java.net/jdk/pull/3806/files/c2b5a126..9d8e0230
>>
>> Webrevs:
>>    - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3806&range=01
>>    - incr:
>> https://webrevs.openjdk.java.net/?repo=jdk&pr=3806&range=00-01
>>
>>     Stats: 387 lines in 4 files changed: 210 ins; 169 del; 8 mod
>>     Patch: https://git.openjdk.java.net/jdk/pull/3806.diff
>>     Fetch: git fetch https://git.openjdk.java.net/jdk
>> pull/3806/head:pull/3806
>>
>> PR: https://git.openjdk.java.net/jdk/pull/3806



More information about the hotspot-dev mailing list