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.
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.