[16] RFR[S]: 8251216: Implement MD5 intrinsics on AArch64

Doug Simon doug.simon at oracle.com
Mon Aug 10 09:55:30 UTC 2020


Hi Ludovic,

Are you considering also implementing this intrinsic in Graal?

Is the intrinsification purely about removing the array bounds checks? If so, it may be possible to have the Graal intrinsify the method by compiling the relevant Java code without array bounds checks.

-Doug

> On 9 Aug 2020, at 05:19, Ludovic Henry <luhenry at microsoft.com> wrote:
> 
> Hello,
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8251216
> Webrev: http://cr.openjdk.java.net/~luhenry/8251216/webrev.00
> 
> Testing: Linux-AArch64, fastdebug, test/hotspot/jtreg/compiler/intrinsics/sha/ test/hotspot/jtreg:tier1 test/jdk:tier1
> 
> This patch implements the MD5 intrinsic on AArch64 following its implementation on x86 [1]. The performance improvements are the following (on Linux-AArch64 on a Marvell TX2):
> 
> -XX:-UseMD5Intrinsics
> Benchmark              (digesterName)  (length)  (provider)   Mode  Cnt     Score    Error   Units
> MessageDigests.digest             md5        64     DEFAULT  thrpt   10  1616.238 ± 28.082  ops/ms
> MessageDigests.digest             md5      1024     DEFAULT  thrpt   10   215.030 ±  0.691  ops/ms
> MessageDigests.digest             md5   1048576     DEFAULT  thrpt   10     0.228 ±  0.001  ops/ms
> 
> -XX:+UseMD5Intrinsics
> Benchmark              (digesterName)  (length)  (provider)   Mode  Cnt     Score    Error   Units
> MessageDigests.digest             md5        64     DEFAULT  thrpt   10  2005.233 ± 40.513  ops/ms => 24% speedup
> MessageDigests.digest             md5      1024     DEFAULT  thrpt   10   275.979 ±  0.455  ops/ms => 28% speedup
> MessageDigests.digest             md5   1048576     DEFAULT  thrpt   10     0.279 ±  0.001  ops/ms => 22% speedup
> 
> Thank you,
> Ludovic
> 
> [1] https://bugs.openjdk.java.net/browse/JDK-8250902



More information about the hotspot-compiler-dev mailing list