Integrated: 8322179: RISC-V: Implement SHA-1 intrinsic
Hamlin Li
mli at openjdk.org
Tue Feb 27 08:21:49 UTC 2024
On Fri, 15 Dec 2023 17:46:46 GMT, Hamlin Li <mli at openjdk.org> wrote:
> Hi,
> Can you review this patch to implement SHA-1 intrinsic for riscv?
> Thanks!
>
>
> ## Test
>
> ### Functionality
>
> tests under `test/hotspot/jtreg/compiler/intrinsics/sha`
> tests found via `find test/jdk -iname "*SHA1*.java"`
>
> ### Performance
>
> tested on `T-HEAD Light Lichee Pi 4A`
>
> JMH_PARAMS="-f 1 -wi 10 -i 20" // for every loop of jmh test
>
> benchmark tests `MessageDigests.java GetMessageDigest.java MessageDigestBench.java MacBench.java` which are under `test/micro/org/openjdk/bench/`, more spcifically `TESTS="MessageDigests.digest MessageDigests.getAndDigest MessageDigestBench.digest"`
>
>
> // After
> o.o.b.java.security.MessageDigests.digest N/A N/A SHA-1 64 DEFAULT avgt 20 1845.446 ? 27.052 ns/op
> o.o.b.java.security.MessageDigests.digest N/A N/A SHA-1 16384 DEFAULT avgt 20 181455.350 ? 532.258 ns/op
> o.o.b.java.security.MessageDigests.getAndDigest N/A N/A SHA-1 64 DEFAULT avgt 20 2447.674 ? 10.239 ns/op
> o.o.b.java.security.MessageDigests.getAndDigest N/A N/A SHA-1 16384 DEFAULT avgt 20 182896.083 ? 1242.774 ns/op
> o.o.b.javax.crypto.small.MessageDigestBench.digest SHA1 1048576 N/A N/A avgt 20 11599227.792 ? 121442.390 ns/op
> // Before
> o.o.b.java.security.MessageDigests.digest N/A N/A SHA-1 64 DEFAULT avgt 20 2352.475 ? 11.198 ns/op
> o.o.b.java.security.MessageDigests.digest N/A N/A SHA-1 16384 DEFAULT avgt 20 188495.684 ? 1467.942 ns/op
> o.o.b.java.security.MessageDigests.getAndDigest N/A N/A SHA-1 64 DEFAULT avgt 20 2437.347 ? 6.398 ns/op
> o.o.b.java.security.MessageDigests.getAndDigest N/A N/A SHA-1 16384 DEFAULT avgt 20 196086.570 ? 1140.998 ns/op
> o.o.b.javax.crypto.small.MessageDigestBench.digest SHA1 1048576 N/A N/A avgt 20 12362160.119 ? 38788.109 ns/op
>
>
> **getAndDigest when size == 64**
> The data is not stable for test getAndDigest when size == 64, which I think is introduced by j.s.MessageDigest.getInstance itself, which we don't touch in this patch.
> Check more details at [1](https://github.com/openjdk/jdk/pull/17130#issuecomment-1886805614)
>
>
> loop ... ...
This pull request has now been integrated.
Changeset: a48f5966
Author: Hamlin Li <mli at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/a48f5966be17dea1c69e1c66719e43828768dbc1
Stats: 417 lines in 4 files changed: 387 ins; 16 del; 14 mod
8322179: RISC-V: Implement SHA-1 intrinsic
Reviewed-by: tonyp, fyang
-------------
PR: https://git.openjdk.org/jdk/pull/17130
More information about the hotspot-dev
mailing list