RFR: 8221092: UseAVX=3 has performance degredation on Skylake (X7) processors

Deshpande, Vivek R vivek.r.deshpande at intel.com
Tue Oct 1 23:36:56 UTC 2019


Hi Vladimir

I have updated the patch with appropriate comments in globals_x86.hpp and also updated the bug entry.
The updated webrev is here:
http://cr.openjdk.java.net/~vdeshpande/8221092/webrev.01/
Could you please review.

Regards,
Vivek

-----Original Message-----
From: Deshpande, Vivek R 
Sent: Thursday, September 26, 2019 10:52 AM
To: Vladimir Kozlov <vladimir.kozlov at oracle.com>; hotspot-compiler-dev at openjdk.java.net
Cc: Scott Oaks <scott.oaks at oracle.com>; eric.caspole <eric.caspole at oracle.com>; Robert Strout <robert.strout at oracle.com>
Subject: RE: RFR: 8221092: UseAVX=3 has performance degredation on Skylake (X7) processors

Thanks you Vladimir for the review.
I will work on the adding the comments and changes to the bug report.

Yes the threshold is for architectures after skylake which support AVX512.
With this threshold( value = 4096 bytes found experimentally), AVX512 will be used if the array size is bigger than that.

Regards,
Vivek

-----Original Message-----
From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
Sent: Wednesday, September 25, 2019 12:41 PM
To: Deshpande, Vivek R <vivek.r.deshpande at intel.com>; hotspot-compiler-dev at openjdk.java.net
Cc: Scott Oaks <scott.oaks at oracle.com>; eric.caspole <eric.caspole at oracle.com>; Robert Strout <robert.strout at oracle.com>
Subject: Re: RFR: 8221092: UseAVX=3 has performance degredation on Skylake (X7) processors

Thank you, Vivek

I see you did several changes including intrinsics code. Would be nice if you list changes you did in bug report. I see you removed _evex instructions variants in .ad file, replaced evex instructions in stubs and set UseAVX to 2 for Skylake. It is easy to understand.

But what about array limit AVX3Threshold? I assume it is for non-Skylake CPUs with AVX512. Right? 
What number 4096 is based on. It seems AVX3Threshold == 0 has special meaning - add line in globals_x86.hpp explaining it. I would need more time to look on related changes.

Thanks,
Vladimir

On 9/3/19 5:02 PM, Deshpande, Vivek R wrote:
> Hi All
> 
> I have created a patch which sets AVX2 for Skylake and selectively 
> uses EVEX instructions based on threshold for platforms after Skylake.
> I don't observe the regressions for SPECjvm2008 on Skylake with this patch.
> JBS id:
> https://bugs.openjdk.java.net/browse/JDK-8221092
> Webrev:
> http://cr.openjdk.java.net/~vdeshpande/8221092/webrev.00/
> Could you all please review the patch.
> 
> Regards,
> Vivek
> 


More information about the hotspot-compiler-dev mailing list