JDK-8215891 : X86: Support for VNNI byte Instruction VPDPBUSD
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 13
  • Priority: P4
  • Status: In Progress
  • Resolution: Unresolved
  • CPU: x86
  • Submitted: 2018-12-21
  • Updated: 2020-05-18
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.
Other
tbdUnresolved
Related Reports
Relates :  
Description
This also adds VNNI VPDPBUSD instruction support with autovectorization. 
It can vectorize this operation in the loop: out[i] += ((in1[4*i] * in2[4*i]) + (in1[4*i+1] * in2[4*i+1]) + (in1[4*i+2] * in2[4*i+2]) + (in1[4*i+3] * in2[4*i+3])); where in1[] and in2[] are byte arrays and out[] is an int array.
This patch is useful for AI ML/DL applications such as convolution based Neural Nets. 
More information on VNNI can be found here: https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf
Comments
Great, thanks!
11-01-2019

Yes, we can integrate VPDPBUSD as another enhancement. I would push the fix with ins_cost with the fix for JDK-8216050. Thanks Tobias.
10-01-2019

Okay, so the problem is missing 'ins_cost' definitions for the new instructions in the .ad file? I think the support for VPDPBUSD should then be integrated with another enhancement. ILW = Missing cost definitions lead to suboptimal code generation (regression), VNNI instructions, no workaround = MMH = P3
07-01-2019

Hi Tobias, this is for correct generation of the vpdpwssd instruction based on cost in ad file rules.
04-01-2019

The VNNI optimization is broken (see JDK-8216050). Is the intention of this change to fix that?
03-01-2019

Is this task planned as late enhancement in Rampdown Phase One for JDK 12 itself? (http://openjdk.java.net/projects/jdk/12/) If no please modify Fix Version field to 'tbd' or any next version. Thanks.
26-12-2018