Vectorized latin1 equalsIgnoreCase
    Viswanathan, Sandhya 
    sandhya.viswanathan at intel.com
       
    Fri Feb 24 01:17:16 UTC 2023
    
    
  
Hi Eirik,
Yes, it will be wonderful to add this benchmark. Please go ahead and create a PR.
If there are objections to adding it to mainline JDK, we could fall back to the panama-vectror vectorIntrinsics branch.
Best Regards,
Sandhya
From: panama-dev <panama-dev-retn at openjdk.org> On Behalf Of Eirik Bjørsnøs
Sent: Tuesday, February 21, 2023 2:56 AM
To: panama-dev at openjdk.org
Subject: Vectorized latin1 equalsIgnoreCase
Hi,
I've been working on https://github.com/openjdk/jdk/pull/12623 (which speeds up latin1 equalsIgnoreCase using 'the oldest ASCII trick in the book).
I was thinking that this trick could lend itself to vectorization, so I made a quick exploration using the Vector API. (JMH results below)
While a vectorized implementation is out of scope for the current PR, perhaps it could be useful to include this benchmark along the Vector API benchmarks?
It's my first time writing Vector API code (or any SIMD code at all), so this could probably be improved (a lot!):
https://github.com/openjdk/jdk/compare/master...eirbjo:jdk:vectorized-equalsignorecase
Let me know if there is interest in including this, and I can go ahead and make a PR.
Cheers,
Eirik.
Results:
Benchmark                             (size)  Mode  Cnt     Score   Error  Units
EqualsIgnoreCaseBenchmark.scalar          16  avgt   15    20.671 ± 0.718  ns/op
EqualsIgnoreCaseBenchmark.scalar          32  avgt   15    46.155 ± 3.258  ns/op
EqualsIgnoreCaseBenchmark.scalar          64  avgt   15    68.248 ± 1.767  ns/op
EqualsIgnoreCaseBenchmark.scalar         128  avgt   15   148.948 ± 0.890  ns/op
EqualsIgnoreCaseBenchmark.scalar        1024  avgt   15  1090.708 ± 7.540  ns/op
EqualsIgnoreCaseBenchmark.vectorized      16  avgt   15    21.872 ± 0.232  ns/op
EqualsIgnoreCaseBenchmark.vectorized      32  avgt   15    11.378 ± 0.097  ns/op
EqualsIgnoreCaseBenchmark.vectorized      64  avgt   15    13.703 ± 0.135  ns/op
EqualsIgnoreCaseBenchmark.vectorized     128  avgt   15    21.632 ± 0.735  ns/op
EqualsIgnoreCaseBenchmark.vectorized    1024  avgt   15   105.509 ± 7.493  ns/op
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/panama-dev/attachments/20230224/b0be428f/attachment-0001.htm>
    
    
More information about the panama-dev
mailing list