[vector] RFR 8218750: Vectorized ChaCha20 Benchmark

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Feb 12 01:23:50 UTC 2019


> Webrev: https://cr.openjdk.java.net/~apetcher/8218750/webrev.00/

Overall, looks very good, Adam!

A couple of minor suggestions:

   - I'd prefer to see the benchmark condensed into a single file.

   - IMO it's better to declare a dedicated @Benchmark method per vector 
shape instead:

   35     @Param({"128", "256", "512"})
   36     private int vectorWidth;

Best regards,
Vladimir Ivanov

> JBS: https://bugs.openjdk.java.net/browse/JDK-8218750
> 
> This is a benchmark based on an implementation of ChaCha20[1] on the 
> vector API. I added the benchmark to the existing microbenchmark project 
> for jdk.incubator.vector, but it is in a separate top-level package so 
> it doesn't interfere with the generated code. Let me know if I should 
> reorganize this. I've included the result of running this benchmark and 
> the existing (scalar) ChaCha20 benchmark on my Haswell laptop. The 
> 128-bit vectorized implementation is a bit faster than the scalar 
> implementation, and at 256 bits it is over twice as fast.
> 
> [1] https://eprint.iacr.org/2013/759.pdf
> 
> 
> Benchmark                     (dataSize)  (keyLength)  (mode)  
> (padding)  (permutation)  (provider)   Mode  Cnt      Score     Error  
> Units
> CipherBench.ChaCha20.encrypt       16384          256    None  
> NoPadding       ChaCha20              thrpt   40  26890.258 ± 196.494  
> ops/s
> 
> Benchmark            (dataSize)  (vectorWidth)   Mode  Cnt      
> Score     Error  Units
> ChaChaBench.encrypt       16384            128  thrpt    8  34560.979 ± 
> 344.393  ops/s
> ChaChaBench.encrypt       16384            256  thrpt    8  60696.328 ± 
> 587.721  ops/s
> ChaChaBench.encrypt       16384            512  thrpt    8   1148.408 ±  
> 27.487  ops/s
> 


More information about the panama-dev mailing list