RFR: 8316592: RISC-V: implement poly1305 intrinsic
null
duke at openjdk.org
Mon Oct 30 14:53:42 UTC 2023
Hi everyone, please review this port of [AArch64](https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp#L7124) `_poly1305_processBlocks` intrinsic to RISC-V platform.
### Correctness checks
Tier 1 tests are passed. Also I explicitly ran the `test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/Poly1305UnitTestDriver.java` test for multiple times and it passes.
### Performance results on T-Head board
#### Results for enabled intrinsic:
Benchmark | (dataSize) | Mode | Cnt | Score | Error | Units
-- | -- | -- | -- | -- | -- | --
Poly1305DigestBench.digestBuffer | 64| thrpt | 3 | 247207.525 | 2853.920 | ops/s
Poly1305DigestBench.digestBuffer | 256 | thrpt | 3 | 221994.065 | 6891.601 | ops/s
Poly1305DigestBench.digestBuffer | 1024 | thrpt | 3 | 164485.375 | 4979.286 | ops/s
Poly1305DigestBench.digestBuffer | 16384 | thrpt | 3 | 27261.181 | 448.178 | ops/s
Poly1305DigestBench.digestBuffer | 1048576 | thrpt | 3 | 270.784 | 3445.077 | ops/s
Poly1305DigestBench.digestBytes | 64 | thrpt | 3 | 266049.018 | 9909.155 | ops/s
Poly1305DigestBench.digestBytes | 256 | thrpt | 3 | 231891.890 | 715.000 | ops/s
Poly1305DigestBench.digestBytes | 1024 | thrpt | 3 | 172746.932 | 1202.374 | ops/s
Poly1305DigestBench.digestBytes | 16384 | thrpt | 3 | 27626.478 | 341.915 | ops/s
Poly1305DigestBench.digestBytes | 1048576 | thrpt | 3 | 265.235 | 3522.458 | ops/s
Poly1305DigestBench.updateBytes | 64 | thrpt | 3 | 3394516.156 | 14656.687 | ops/s
Poly1305DigestBench.updateBytes | 256 | thrpt | 3 | 1463745.045 | 19608.937 | ops/s
Poly1305DigestBench.updateBytes | 1024 | thrpt | 3 | 459312.198 | 1720.655 | ops/s
Poly1305DigestBench.updateBytes | 16384 | thrpt | 3 | 30969.117 | 813.712 | ops/s
Poly1305DigestBench.updateBytes | 1048576 | thrpt | 3 | 300.773 | 3345.716 | ops/s
#### Results for disabled intrinsic:
Benchmark | (dataSize) | Mode | Cnt | Score | Error | Units
-- | -- | -- | -- | -- | -- | --
Poly1305DigestBench.digestBuffer | 64 | thrpt | 3 | 225424.813 | 1083.844 | ops/s
Poly1305DigestBench.digestBuffer | 256 | thrpt | 3 | 167848.372 | 3488.837 | ops/s
Poly1305DigestBench.digestBuffer | 1024 | thrpt | 3 | 81802.600 | 1839.218 | ops/s
Poly1305DigestBench.digestBuffer | 16384 | thrpt | 3 | 7781.049 | 1101.150 | ops/s
Poly1305DigestBench.digestBuffer | 1048576 | thrpt | 3 | 118.778 | 74.388 | ops/s
Poly1305DigestBench.digestBytes | 64 | thrpt | 3 | 235107.377 | 16410.542 | ops/s
Poly1305DigestBench.digestBytes | 256 | thrpt | 3 | 149680.589 | 4748.996 | ops/s
Poly1305DigestBench.digestBytes | 1024 | thrpt | 3 | 73649.642 | 2436.135 | ops/s
Poly1305DigestBench.digestBytes | 16384 | thrpt | 3 | 7845.284 | 15.763 | ops/s
Poly1305DigestBench.digestBytes | 1048576 | thrpt | 3 | 120.673 | 50.138 | ops/s
Poly1305DigestBench.updateBytes | 64 | thrpt | 3 | 1382356.741 | 12203.309 | ops/s
Poly1305DigestBench.updateBytes | 256 | thrpt | 3 | 412198.616 | 1926.171 | ops/s
Poly1305DigestBench.updateBytes | 1024 | thrpt | 3 | 109357.414 | 275.333 | ops/s
Poly1305DigestBench.updateBytes | 16384 | thrpt | 3 | 8214.049 | 258.471 | ops/s
Poly1305DigestBench.updateBytes | 1048576 | thrpt | 3 | 121.006 | 51.510 | ops/s
-------------
Commit messages:
- 8316592: RISC-V: implement poly1305 intrinsic
Changes: https://git.openjdk.org/jdk/pull/16417/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16417&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8316592
Stats: 218 lines in 2 files changed: 218 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/16417.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/16417/head:pull/16417
PR: https://git.openjdk.org/jdk/pull/16417
More information about the hotspot-compiler-dev
mailing list