RFR (M): 8143355: Update for addition of vectorizedMismatch intrinsic for x86

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Dec 14 19:57:07 UTC 2015


Filed https://bugs.openjdk.java.net/browse/JDK-8145348

Vladimir

On 12/8/15 11:05 AM, Christian Thalinger wrote:
>
>> On Dec 8, 2015, at 9:04 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>>
>> Historically we have intrinsics flag as product. But in reality to have them diagnostic, for example, is also fine. But it would be different change.
>
> Maybe we should file an enhancement and change all of them to diagnostic.
>
>>
>> Thanks,
>> Vladimir
>>
>> On 12/8/15 10:57 AM, Christian Thalinger wrote:
>>> +  product(bool, UseVectorizedMismatchIntrinsic, false,                      \
>>> +          "Enables intrinsification of ArraysSupport.vectorizedMismatch()") \
>>>
>>> Do all these really need to be product flags?
>>>
>>>> On Dec 7, 2015, at 2:26 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>>>>
>>>> Looks good. I will push it when closed part (flag = false) reviewed.
>>>> I will modify vm_version_x86.cpp to move setting to false in 32-bit VM code to be #else part of flag's setting.
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 12/7/15 11:29 AM, Deshpande, Vivek R wrote:
>>>>> Hi Vladimir
>>>>>
>>>>> We have updated the jbs entry with your suggested changes for the flag.
>>>>> Would you please review it.
>>>>> jbs entry: https://bugs.openjdk.java.net/browse/JDK-8143355
>>>>> webrev is at: http://cr.openjdk.java.net/~mcberg/8143355/webrev.03/
>>>>>
>>>>> Regards,
>>>>> Vivek
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
>>>>> Sent: Friday, December 04, 2015 1:12 PM
>>>>> To: Deshpande, Vivek R; hotspot compiler
>>>>> Cc: Yi, Liqi; Viswanathan, Sandhya; Kaczmarek, Eric; Paul Sandoz
>>>>> Subject: Re: RFR (M): 8143355: Update for addition of vectorizedMismatch intrinsic for x86
>>>>>
>>>>> You don't need now #ifdef COMPILER2 (in vm_version_x86.cpp).
>>>>>
>>>>> + #ifdef COMPILER2
>>>>> + #ifdef _LP64
>>>>> +   if (UseSSE42Intrinsics) {
>>>>>
>>>>> Also you need to add to all other platforms vm_version_<arch>.cpp setting flag to false. See UseAdler32Intrinsics settings as example.
>>>>>
>>>>> Thanks,
>>>>> Vladimir
>>>>>
>>>>> On 12/4/15 11:26 AM, Deshpande, Vivek R wrote:
>>>>>> Hi Vladimir
>>>>>>
>>>>>> We have updated the webrev at the jbs entry with the global flag.
>>>>>> This is the link for your review.
>>>>>> http://cr.openjdk.java.net/~mcberg/8143355/webrev.02/
>>>>>>
>>>>>> Regards
>>>>>> Vivek
>>>>>> -----Original Message-----
>>>>>> From: Deshpande, Vivek R
>>>>>> Sent: Wednesday, December 02, 2015 11:21 AM
>>>>>> To: 'Vladimir Kozlov'; hotspot compiler
>>>>>> Cc: Yi, Liqi; Viswanathan, Sandhya; Kaczmarek, Eric; 'Paul Sandoz'
>>>>>> Subject: RE: RFR (M): 8143355: Update for addition of
>>>>>> vectorizedMismatch intrinsic for x86
>>>>>>
>>>>>> Hi Vladimir
>>>>>>
>>>>>> Yes the 2x performance gain is using AVX2 instructions for big arrays(~1k).
>>>>>> We will update the patch and jbs entry with global flag and let you know soon.
>>>>>>
>>>>>> Regards,
>>>>>> Vivek
>>>>>>
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
>>>>>> Sent: Tuesday, December 01, 2015 6:02 PM
>>>>>> To: Deshpande, Vivek R; hotspot compiler
>>>>>> Cc: Yi, Liqi; Viswanathan, Sandhya; Kaczmarek, Eric
>>>>>> Subject: Re: RFR (M): 8143355: Update for addition of
>>>>>> vectorizedMismatch intrinsic for x86
>>>>>>
>>>>>>       2) improving C1 (perhaps even the interpreter?) since the intrinsic is a stub which IIUC makes it easier to plug in.
>>>>>>
>>>>>> If that is the case the flag should be global.
>>>>>>
>>>>>> Thanks,
>>>>>> Vladimir
>>>>>>
>>>>>> On 12/1/15 5:48 PM, Vladimir Kozlov wrote:
>>>>>>> This seems fine. 2x is for AVX implementation?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Vladimir
>>>>>>>
>>>>>>> On 11/24/15 4:00 PM, Deshpande, Vivek R wrote:
>>>>>>>> Hi all
>>>>>>>>
>>>>>>>> We would like to contribute a patch from Intel which optimizes
>>>>>>>> vectorizedMismatch() method in java.util.ArraysSupport.java for X86
>>>>>>>> architecture using AVX instructions.
>>>>>>>>
>>>>>>>> The improvement gives more than 2x gain over Unsafe implementation
>>>>>>>> for long arrays.
>>>>>>>>
>>>>>>>>
>>>>>>>>     The bug is blocked by bug: vectorized support for array
>>>>>>>>     equals/compare/mismatch using Unsafe
>>>>>>>>     (https://bugs.openjdk.java.net/browse/JDK-8136924.)
>>>>>>>>
>>>>>>>> Could you please review and sponsor this patch.
>>>>>>>>
>>>>>>>> Bug-id:
>>>>>>>>
>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8143355
>>>>>>>> webrev:
>>>>>>>>
>>>>>>>> http://cr.openjdk.java.net/~mcberg/8143355/webrev.01/
>>>>>>>>
>>>>>>>> Thanks and regards,
>>>>>>>>
>>>>>>>> Vivek
>>>>>>>>
>>>
>


More information about the hotspot-compiler-dev mailing list