[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-graal-dev
Subject:    Re: RFR: 8329538: Accelerate P256 on x86_64 using Montgomery intrinsic [v12]
From:       Tobias Hartmann <thartmann () openjdk ! org>
Date:       2024-05-22 5:03:15
Message-ID: lY7vMCPrX-Mtk1_NGcc2sDh05tuKtafmgLpGwq6iRs0=.e98249d2-c313-4a6b-9ad2-f5546f59743a () github ! com
[Download RAW message or body]

On Tue, 21 May 2024 17:41:46 GMT, Volodymyr Paprotski <duke@openjdk.org> wrote:

> > Performance. Before:
> > 
> > Benchmark                        (algorithm)  (dataSize)  (keyLength)  (provider) \
> > Mode  Cnt     Score    Error  Units SignatureBench.ECDSA.sign    SHA256withECDSA  \
> > 1024          256              thrpt    3  6443.934  ±  6.491  ops/s \
> > SignatureBench.ECDSA.sign    SHA256withECDSA       16384          256             \
> > thrpt    3  6152.979  ±  4.954  ops/s SignatureBench.ECDSA.verify  \
> > SHA256withECDSA        1024          256              thrpt    3  1895.410  ± \
> > 36.979  ops/s SignatureBench.ECDSA.verify  SHA256withECDSA       16384          \
> > 256              thrpt    3  1878.955  ± 45.487  ops/s Benchmark                  \
> > (algorithm)  (keyLength)  (kpgAlgorithm)  (provider)   Mode  Cnt     Score    \
> > Error  Units o.o.b.j.c.full.KeyAgreementBench.EC.generateSecret          ECDH     \
> > 256              EC              thrpt    3  1357.810  ± 26.584  ops/s \
> > o.o.b.j.c.small.KeyAgreementBench.EC.generateSecret         ECDH          256     \
> > EC              thrpt    3  1352.119  ± 23.547  ops/s Benchmark                   \
> > (isMontBench)   Mode  Cnt     Score    Error  Units \
> > PolynomialP256Bench.benchMultiply          false  thrpt    3  1746.126  ± 10.970  \
> > ops/s 
> > Performance, no intrinsic:
> > 
> > Benchmark                        (algorithm)  (dataSize)  (keyLength)  (provider) \
> > Mode  Cnt     Score     Error  Units SignatureBench.ECDSA.sign    SHA256withECDSA \
> > 1024          256              thrpt    3  6529.839  ±  42.420  ops/s \
> > SignatureBench.ECDSA.sign    SHA256withECDSA       16384          256             \
> > thrpt    3  6199.747  ± 133.566  ops/s SignatureBench.ECDSA.verify  \
> > SHA256withECDSA        1024          256              thrpt    3  1973.676  ±  \
> > 54.071  ops/s SignatureBench.ECDSA.verify  SHA256withECDSA       16384          \
> > 256              thrpt    3  1932.127  ±  35.920  ops/s Benchmark                 \
> > (algorithm)  (keyLength)  (kpgAlgorithm)  (provider)   Mode  Cnt     Score    \
> > Error  Units o.o.b.j.c.full.KeyAgreementBench.EC.generateSecret          ECDH     \
> > 256              EC              thrpt    3  1355.788  ± 29.858  ops/s \
> > o.o.b.j.c.small.KeyAgreementBench.EC.generateSecret         ECDH          256     \
> > EC              thrpt    3  1346.523  ± 28.722  ops/s Benchmark                   \
> > (isMontBench)   Mode  Cnt     Score    Error  Units \
> > PolynomialP256Bench.benchMultiply           true  thrpt    3  1919.57...
> 
> Volodymyr Paprotski has updated the pull request with a new target base due to a \
> merge or a rebase. The incremental webrev excludes the unrelated changes brought in \
> by the merge/rebase. The pull request contains 17 additional commits since the last \
> revision: 
> - Merge remote-tracking branch 'origin/master' into ecc-montgomery
> - shenandoah verifier
> - comments from Sandhya
> - whitespace
> - add message back
> - whitespace
> - Use AffinePoint to exit Montgomery domain
> 
> Style notes:
> Affine.equals()
> - Mismatched fields only appear to be used from testing, perhaps should be moved \
> there instead Affine.getX(boolean)|getY(boolean)
> - "Passing flag is bad design" - cleanest/performant alternative to several \
>                 instanceof checks
> - needed to convert Affine to Projective (need to stay in montgomery domain)
> ECOperations.PointMultiplier
> - changes could probably be restored to original (since ProjectivePoint handling no \
>                 longer required)
> - consider these changes an improvement? (fewer nested classes)
> - was an inner-class but not using inner-class features (i.e. ecOps variable should \
>                 be converted)
> - whitespace
> - Comments from Tony and Jatin
> - Comments from Jatin and Tony
> - ... and 7 more: https://git.openjdk.org/jdk/compare/9ee91a9f...b1a33004

Thanks! I submitted testing and will report back once it passed.

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

PR Comment: https://git.openjdk.org/jdk/pull/18583#issuecomment-2123869579


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic