[aarch64-port-dev ] RFR(S): 8216259: AArch64: Vectorize Adler32 intrinsics

Pengfei Li (Arm Technology China) Pengfei.Li at arm.com
Tue Jan 22 11:03:20 UTC 2019


Hi Andrew Haley,

> Fair enough; it does look like an improvement. However, please show us the
> actual numbers, especially at small sizes. Also, how much is the
> Adler32 checksum actually used? Is it something we care about?

I updated my JMH case (http://cr.openjdk.java.net/~pli/rfr/8216259/TestAdler32.java) with some small sizes added. Please see the results below.

Before patch:
Benchmark                      (count)  Mode  Cnt   Score    Error  Units
TestAdler32.testAdler32Update       64  avgt   15   0.047 ?  0.001  us/op
TestAdler32.testAdler32Update      128  avgt   15   0.084 ?  0.001  us/op
TestAdler32.testAdler32Update      256  avgt   15   0.157 ?  0.001  us/op
TestAdler32.testAdler32Update      512  avgt   15   0.313 ?  0.001  us/op
TestAdler32.testAdler32Update     1024  avgt   15   0.607 ?  0.002  us/op
TestAdler32.testAdler32Update     2048  avgt   15   1.195 ?  0.003  us/op
TestAdler32.testAdler32Update     4096  avgt   15   2.371 ?  0.005  us/op
TestAdler32.testAdler32Update     8192  avgt   15   4.936 ?  0.018  us/op
TestAdler32.testAdler32Update    16384  avgt   15   9.729 ?  0.116  us/op
TestAdler32.testAdler32Update    32768  avgt   15  19.332 ?  0.081  us/op
TestAdler32.testAdler32Update    65536  avgt   15  38.180 ?  0.098  us/op

After patch:
Benchmark                      (count)  Mode  Cnt   Score    Error  Units
TestAdler32.testAdler32Update       64  avgt   15   0.026 ?  0.001  us/op
TestAdler32.testAdler32Update      128  avgt   15   0.039 ?  0.001  us/op
TestAdler32.testAdler32Update      256  avgt   15   0.067 ?  0.001  us/op
TestAdler32.testAdler32Update      512  avgt   15   0.124 ?  0.001  us/op
TestAdler32.testAdler32Update     1024  avgt   15   0.232 ?  0.001  us/op
TestAdler32.testAdler32Update     2048  avgt   15   0.445 ?  0.001  us/op
TestAdler32.testAdler32Update     4096  avgt   15   0.873 ?  0.002  us/op
TestAdler32.testAdler32Update     8192  avgt   15   1.770 ?  0.010  us/op
TestAdler32.testAdler32Update    16384  avgt   15   3.658 ?  0.101  us/op
TestAdler32.testAdler32Update    32768  avgt   15   7.221 ?  0.043  us/op
TestAdler32.testAdler32Update    65536  avgt   15  14.353 ?  0.035  us/op

Dmitry Chuyko has just said it's used in Hadoop HDFS. I either don't know if any other applications, besides zlib, are using Adler-32.

--
Thanks,
Pengfei



More information about the hotspot-compiler-dev mailing list