> Below is baseline data collected using a modified version of the 
> java.lang.foreign.xor micro benchmark referenced by @mcimadamore  in the bug 
> report.  I collected data on an Ubuntu 22.04 laptop with a Tigerlake 
> i7-1185G7, which does support AVX512. 
> 
> Baseline data
> Benchmark     (arrayKind)  (sizeKind)  Mode  Cnt           Score          
> Error  Units
> --------------------------------------------------------------------------------------
> XorTest.copy     ELEMENTS       SMALL  avgt   30   584737355.767 ± 
> 60414308.540  ns/op
> XorTest.copy     ELEMENTS      MEDIUM  avgt   30   272248995.683 ±  
> 2924954.498  ns/op
> XorTest.copy     ELEMENTS       LARGE  avgt   30  1019200210.900 ± 
> 28334453.652  ns/op
> XorTest.copy       REGION       SMALL  avgt   30     7399944.164 ±   
> 216821.819  ns/op
> XorTest.copy       REGION      MEDIUM  avgt   30    20591454.558 ±   
> 147398.572  ns/op
> XorTest.copy       REGION       LARGE  avgt   30    21649266.051 ±   
> 179263.875  ns/op
> XorTest.copy     CRITICAL       SMALL  avgt   30       51079.357 ±      
> 542.482  ns/op
> XorTest.copy     CRITICAL      MEDIUM  avgt   30        2496.961 ±       
> 11.375  ns/op
> XorTest.copy     CRITICAL       LARGE  avgt   30         515.454 ±        
> 5.831  ns/op
> XorTest.copy      FOREIGN       SMALL  avgt   30     7558432.075 ±    
> 79489.276  ns/op
> XorTest.copy      FOREIGN      MEDIUM  avgt   30    19730666.341 ±   
> 500505.099  ns/op
> XorTest.copy      FOREIGN       LARGE  avgt   30    34616758.085 ±   
> 340300.726  ns/op
> XorTest.xor      ELEMENTS       SMALL  avgt   30   219832692.489 ±  
> 2329417.319  ns/op
> XorTest.xor      ELEMENTS      MEDIUM  avgt   30   505138197.167 ±  
> 3818334.424  ns/op
> XorTest.xor      ELEMENTS       LARGE  avgt   30  1189608474.667 ±  
> 5877981.900  ns/op
> XorTest.xor        REGION       SMALL  avgt   30    64093872.804 ±   
> 599704.491  ns/op
> XorTest.xor        REGION      MEDIUM  avgt   30    81544576.454 ±  
> 1406342.118  ns/op
> XorTest.xor        REGION       LARGE  avgt   30    90091424.883 ±   
> 775577.613  ns/op
> XorTest.xor      CRITICAL       SMALL  avgt   30    57231375.744 ±   
> 438223.342  ns/op
> XorTest.xor      CRITICAL      MEDIUM  avgt   30    58583884.930 ±   
> 375355.215  ns/op
> XorTest.xor      CRITICAL       LARGE  avgt   30    60644832.949 ±   
> 588120.738  ns/op
> XorTest.xor       FOREIGN       SMALL  avgt   30    73868679.405 ±   
> 819965.524  ns/op
> XorTest.xor       FOREIGN      MEDIUM  avgt   30    88156275.944 ±  
> 1051257.152  ns/op
> XorTest.xor       FOREIGN       LARGE  avgt   30   123115513...

Steve Dohrmann has updated the pull request with a new target base due to a 
merge or a rebase. The pull request now contains four commits:

 - Merge branch 'master' of https://git.openjdk.org/jdk into memcpy
 - - bug fix: only generate / use large copy code if MaxVectorSize == 64
 - - fix whitespace issues
   - fix xor test foreign impl constructor signature
 - - initial commit -- optimize large array cases in 
StubGenerator::generate_disjoint_copy_avx3_masked
     - add src address prefetches
     - switch to non-temporal writes
     - added modified jmh benchmark based on xor benchmark from Maurizio 
Cimadamore

-------------

Changes: https://git.openjdk.org/jdk/pull/16575/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16575&range=02
  Stats: 357 lines in 11 files changed: 357 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/16575.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16575/head:pull/16575

PR: https://git.openjdk.org/jdk/pull/16575

Reply via email to