JDK-8214074 : Optimize Ghash using AVX instructions
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,12
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • CPU: x86
  • Submitted: 2018-11-19
  • Updated: 2022-02-06
  • Resolved: 2018-12-12
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 12 JDK 13
11.0.9-oracleFixed 12 b24Fixed 13Fixed
Related Reports
Relates :  
Relates :  
Description
Optimizing Ghash using AVX instructions. Optimization results in 20-30% performance improvement for larger message sizes (example 8192 bytes)
Comments
Fix request (11u) -- will label after testing completed. I would like to downport this for parity with 11.0.9-oracle. Applies clean.
28-05-2020

URL: http://hg.openjdk.java.net/jdk/jdk/rev/1ed8de9045a7 User: ascarpino Date: 2018-12-12 20:17:54 +0000
12-12-2018

Updated webrev. http://cr.openjdk.java.net/~svkamath/ghash/webrev03/
11-12-2018

Great performance gain with the v2 patch. 16 bytes may have a slight loss, but within the margin of error and not important to the overall gains. v1 patch had a regression for 16 and 64 byte, and 256 bytes was even. A personal perf test was used for these results: Data Before After % bytes ops/sec ops/sec diff ------- ----------- ------------ ----- 16 2170518 2105480 97 64 1959522 1979672 101 256 1451312 1588198 109 1k 692830 1044579 150 8k 117611 250830 213 16k 60645 133904 220
06-12-2018

Hi, I have updated Ghash code to address the problem of performance regression of smaller data sizes http://cr.openjdk.java.net/~svkamath/ghash/webrev02/
06-12-2018

Thanks, missed that. I see all -Dmode=GCM of TestAESMain runs pass on aarch64.
03-12-2018

[~dchuyko] You need to run hotspot/jtreg/compiler/codegen/aes/TestAESMain.java to verify intrinsic. It is test's runs with -Dmode=GCM
03-12-2018

TestGHASH.java passes on aarch64 with the patch from webrev01.
03-12-2018

All test, including compiler/codegen/aes/TestAESMain.java, passed.
02-12-2018

Updated webrev link. http://cr.openjdk.java.net/~svkamath/ghash/webrev01/
21-11-2018

Code contributed by smita.kamath@intel.com, Shemy, Regev <regev.shemy@intel.com>, shay.gueron@intel.com http://cr.openjdk.java.net/~svkamath/ghash/webrev/
19-11-2018