RFR(S)JDK-8214074: Ghash optimization using AVX instructions

Anthony Scarpino anthony.scarpino at oracle.com
Tue Nov 20 22:05:22 UTC 2018

On 11/19/18 12:50 PM, Kamath, Smita wrote:
> Hi Vladimir,
> I’d like to contribute an optimization for GHASH Algorithm using AVX 
> Instructions. I have tested this optimization on SKX x86_64 platform and 
> it shows ~20–30% performance improvement for larger message sizes (for 
> example 8k).
> I, smita.kamath at intel.com <mailto:smita.kamath at intel.com> , Shay 
> Gueuron, (shay.gueron at intel.com <mailto:shay.gueron at intel.com>)and Regev 
> Shemy (regev.shemy at intel.com <mailto:regev.shemy at intel.com>) are 
> contributors to this code.
> Link to Bug: https://bugs.openjdk.java.net/browse/JDK-8214074
> Link to webrev: http://cr.openjdk.java.net/~svkamath/ghash/webrev/
> For testing the implementation, I have executed TestAESMain.java. I have 
> executed Jtreg tests and tested this code on 64 bit Windows and Linux 
> platforms.
> Please review and let me know if you have any comments.
> Thanks and Regards,
> Smita


This intrinsic is also used with solaris-sparc, has there been a sanity 
check by anyone to make sure this does not break the sparc intrinsic? 
It may work as the code is now since the sparc intrinsic will only use 
the first two longs in the subkeyHtbl.

In that same idea, have you consider combining the subkeyH to be the 
first two of subkeyHtbl for the non-avx operations?  It would eliminate 
an extra two longs per instance.


More information about the hotspot-compiler-dev mailing list