RFR[M]: Adding MD5 Intrinsic on x86-64

Viswanathan, Sandhya sandhya.viswanathan at intel.com
Mon Aug 3 23:59:59 UTC 2020

The link that Vivek shared is for multi-buffer implementation where multiple MD5 hashes for different buffers is calculated at once using SIMD.
What is needed here is the acceleration of single buffer hash. I think that is what Henry's patch is proposing. 

Best Regards,

-----Original Message-----
From: Vladimir Kozlov <vladimir.kozlov at oracle.com> 
Sent: Monday, August 03, 2020 4:10 PM
To: Vivek Deshpande <viv.desh at gmail.com>
Cc: Ludovic Henry <luhenry at microsoft.com>; hotspot-compiler-dev at openjdk.java.net; core-libs-dev <core-libs-dev at openjdk.java.net>; Viswanathan, Sandhya <sandhya.viswanathan at intel.com>
Subject: Re: RFR[M]: Adding MD5 Intrinsic on x86-64

Thank you, Vivek, for pointer. This is interesting ,could be somehitng Intel's mlib may have.

Vladimir K

On 8/3/20 3:08 PM, Vivek Deshpande wrote:
> Hi Vladimir
> It seems that the algorithm can be optimized further using SSE/AVX 
> instructions. I am not aware of any specific SSE/AVX implementation 
> which leverages those instructions in the best possible way.  Sandhya 
> can chime in more on that.
> As far as I know, I came across this which points to MD5 SSE/AVX 
> implementation.
> https://software.intel.com/content/www/us/en/develop/articles/intel-is
> a-l-cryptographic-hashes-for-cloud-storage.html
> Regards,
> Vivek
> On Mon, Aug 3, 2020 at 12:21 PM Vladimir Kozlov 
> <vladimir.kozlov at oracle.com>
> wrote:
>> I reproduced crash with only MD5 changes on my local linux machine 
>> during fastdebug build.
>> Next code in inline_digestBase_implCompressMB should be reversed
>> (get_long_*() should be called for long_state):
>>      if (long_state) {
>>        state = get_state_from_digestBase_object(digestBase_obj);
>>      } else {
>>        state = get_long_state_from_digestBase_object(digestBase_obj);
>>      }
>> Vladimir K
>> On 8/3/20 11:52 AM, Ludovic Henry wrote:
>>>> But it looks like it has more changes (windows_aarch64) then just 
>>>> MD5
>> intrinsic.
>>>> I will retest again with removed other changes.
>>> That looks like a mistake with me learning to use Mercurial, sorry 
>>> about
>> that.
>>> The only patch you need is `8250902: Implement MD5 Intrinsics on 
>>> x86`,
>> all the others are my mistake.

More information about the core-libs-dev mailing list