JDK-8245512 : CRC32 optimization using AVX512 instructions
Type:Enhancement
Component:hotspot
Sub-Component:compiler
Affected Version:11,15
Priority:P4
Status:Resolved
Resolution:Fixed
CPU:x86
Submitted:2020-05-20
Updated:2024-10-17
Resolved:2020-06-05
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.
CRC32 optimization for x86_64 architectures supporting AVX512 instructions
Contributor: Shravya Rukmannagari (shravya.rukmannagari@intel.com)
Algorithm Authors: Greg B Tucker(greg.b.tucker@intel.com)
Comments
Yes, backporting this to Oracle JDK 11u is fine with me. I'll take care of it.
11-01-2021
[~thartmann] Should we consider to backport it into Oracle JDK11u too?
Viswanathan, Sandhya wrote:
We see ~2x performance gain which is significant, and the patch is very self-contained with no impact on other architectures.
CRC calculation is prevalent in big Java frameworks, so the request here.
08-01-2021
I would like to backport the CRC32 optimization using AVX512 instructions to JDK 11u.
This optimization was introduced in JDK 15.
Webrev: http://cr.openjdk.java.net/~sviswanathan/8245512/webrev.00/
Only one change is needed to the original patch in src/hotspot/cpu/x86/assembler_x86.cpp.
The patch applies cleanly otherwise.
The following in Assembler::blendvpb(), line 7908:
emit_int24(0x4C, (0xC0 | encode), (0xF0 & src2_enc << 4));
was replaced by equivalent:
emit_int8((unsigned char)0x4C);
emit_int8((unsigned char)(0xC0 | encode));
emit_int8((unsigned char)(0xF0 & src2_enc<<4));
Review email thread:
https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-December/042774.html
Please approve.
10-12-2020
Patch contributed by:
Shravya Rukmannagari(shravya.rukmannagari@intel.com)
Greg B Tucker(greg.b.tucker@intel.com)