Integrated: 8266332: Adler32 intrinsic for x86 64-bit platforms

Xubo Zhang github.com+58006833+xbzhang99 at openjdk.java.net
Wed May 19 23:47:49 UTC 2021


On Thu, 29 Apr 2021 23:47:17 GMT, Xubo Zhang <github.com+58006833+xbzhang99 at openjdk.org> wrote:

> Implement Adler32 intrinsic for x86 64-bit platform using vector instructions.
> 
> The benchmark test/micro/org/openjdk/bench/java/util/TestAdler32.java is contributed by Pengfei Li (pli, Pengfei.Li at arm.com).
> 
> For this benchmark,  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

This pull request has now been integrated.

Changeset: 8e3549fc
Author:    Xubo Zhang <xubo.zhang at intel.com>
Committer: Vladimir Kozlov <kvn at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/8e3549fc736539a45534dfe2b417170b5c991c7d
Stats:     399 lines in 13 files changed: 393 ins; 5 del; 1 mod

8266332: Adler32 intrinsic for x86 64-bit platforms

Co-authored-by: Xubo Zhang <xubo.zhang at intel.com>
Co-authored-by: Greg B Tucker <greg.b.tucker at intel.com>
Co-authored-by: Pengfei Li <pli at openjdk.org>
Reviewed-by: sviswanathan, jbhateja, kvn, neliasso

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

PR: https://git.openjdk.java.net/jdk/pull/3806


More information about the hotspot-compiler-dev mailing list