-
Notifications
You must be signed in to change notification settings - Fork 5.9k
8317721: RISC-V: Implement CRC32 intrinsic #17046
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
Conversation
/cc hotspot-compiler |
👋 Welcome back ArsenyBochkarev! A progress list of the required criteria for merging this PR into |
@ArsenyBochkarev |
Webrevs
|
Performance comparison for disabling/enabling Zba on StarFive VisionFive 2 board:
|
Thanks! (not a review, just an ack) There are two other version we probably need also, using carry-less-multiplication. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor comments
Performance measurements on the same benchmark, on T-Head board. I used the
Current results with no such flag:
|
Seems there is regression when |
Hmm, I don't know about common CRC32 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am having another look.
@Hamlin-Li I modified Enabled intrinsic
Disabled intrinsic
So since there are no regressions compared to C2-generated code with |
Thanks for updating. Just FYI, as the trend of performance gain in this implementation is less and less as the data size grow larger, so I wonder if the CRC algorithm used in this implementation is optimal enough. Seems there're other more advanced algorithms which are supposed to bring more optimistic performance gains, and some of these algorithms are already implemented on other platforms in jdk. |
@ArsenyBochkarev This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration! |
Hello again everyone! I made two changes to this PR:
Current results on StarFive VisionFive2 (with Zba) are:
Results for disabled intrinsic on VisionFive2 (taken from here)
|
@ArsenyBochkarev This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration! |
Hi all! Can anyone take another look, please? Current numbers on VisionFive2:
and without intrinsic enabled:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! Looks good!
Thanks everyone for all the comments! Sanity checks for |
/integrate |
@ArsenyBochkarev |
/sponsor |
Going to push as commit 2f4f6cc.
Your commit was automatically rebased without conflicts. |
@luhenry @ArsenyBochkarev Pushed as commit 2f4f6cc. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Hi everyone! Please review this port of AArch64
_updateBytesCRC32
,_updateByteBufferCRC32
and_updateCRC32
intrinsics. This patch introduces only the plain (non-vectorized, no Zbc) version.Correctness checks
Tier 1/2 tests are ok.
Performance results on T-Head board
Results for enabled intrinsic:
Used test is
test/micro/org/openjdk/bench/java/util/TestCRC32.java
Results for disabled intrinsic:
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/17046/head:pull/17046
$ git checkout pull/17046
Update a local copy of the PR:
$ git checkout pull/17046
$ git pull https://git.openjdk.org/jdk.git pull/17046/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 17046
View PR using the GUI difftool:
$ git pr show -t 17046
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/17046.diff
Webrev
Link to Webrev Comment