Skip to content

8317721: RISC-V: Implement CRC32 intrinsic #16850

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

ArsenyBochkarev
Copy link
Contributor

@ArsenyBochkarev ArsenyBochkarev commented Nov 28, 2023

Hi all! Please review this port of _updateBytesCRC32 intrinsic from AArch64 (for now, plain version).

Correctness checks

Tests test/hotspot/jtreg/compiler/codegen/CRCTest.java and test/hotspot/jtreg/compiler/intrinsics/zip/TestCRC32.java are passed, in both of the _updateBytesCRC32 was used.

Performance results on T-Head board

Intrinsic disabled

(-XX:-UseCRC32Intrinsics flag)

Benchmark (count) Mode Cnt Score Error Units
CRC32.TestCRC32.testCRC32Update 64 thrpt 15 768.458 ± 20.070 ops/ms
CRC32.TestCRC32.testCRC32Update 128 thrpt 15 699.860 ± 44.533 ops/ms
CRC32.TestCRC32.testCRC32Update 256 thrpt 15 558.778 ± 5.119 ops/ms
CRC32.TestCRC32.testCRC32Update 512 thrpt 15 420.209 ± 4.384 ops/ms
CRC32.TestCRC32.testCRC32Update 2048 thrpt 15 166.945 ± 0.817 ops/ms
CRC32.TestCRC32.testCRC32Update 16384 thrpt 15 25.212 ± 0.036 ops/ms
CRC32.TestCRC32.testCRC32Update 65536 thrpt 15 6.222 ± 0.040 ops/ms
Intrinsic enabled

(-XX:+UseCRC32Intrinsics flag)

Benchmark (count) Mode Cnt Score Error Units
CRC32.TestCRC32.testCRC32Update 64 thrpt 15 7164.484 ± 17.943 ops/ms
CRC32.TestCRC32.testCRC32Update 128 thrpt 15 7065.546 ± 178.694 ops/ms
CRC32.TestCRC32.testCRC32Update 256 thrpt 15 7153.419 ± 26.696 ops/ms
CRC32.TestCRC32.testCRC32Update 512 thrpt 15 7008.298 ± 235.055 ops/ms
CRC32.TestCRC32.testCRC32Update 2048 thrpt 15 6570.959 ± 612.765 ops/ms
CRC32.TestCRC32.testCRC32Update 16384 thrpt 15 7166.674 ± 6.639 ops/ms
CRC32.TestCRC32.testCRC32Update 65536 thrpt 15 6918.064 ± 200.009 ops/ms

Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8317721: RISC-V: Implement CRC32 intrinsic (Enhancement - P4)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/16850/head:pull/16850
$ git checkout pull/16850

Update a local copy of the PR:
$ git checkout pull/16850
$ git pull https://git.openjdk.org/jdk.git pull/16850/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 16850

View PR using the GUI difftool:
$ git pr show -t 16850

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/16850.diff

Webrev

Link to Webrev Comment

@ArsenyBochkarev
Copy link
Contributor Author

/cc hotspot

@bridgekeeper
Copy link

bridgekeeper bot commented Nov 28, 2023

👋 Welcome back ArsenyBochkarev! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot added rfr Pull request is ready for review hotspot hotspot-dev@openjdk.org labels Nov 28, 2023
@openjdk
Copy link

openjdk bot commented Nov 28, 2023

@ArsenyBochkarev
The hotspot label was successfully added.

@mlbridge
Copy link

mlbridge bot commented Nov 28, 2023

Webrevs

@ArsenyBochkarev
Copy link
Contributor Author

ArsenyBochkarev commented Nov 28, 2023

Whoops, found an error, so closing this one for a while

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot hotspot-dev@openjdk.org rfr Pull request is ready for review
Development

Successfully merging this pull request may close these issues.

1 participant