-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
8318217: RISC-V: C2 VectorizedHashCode #16629
Conversation
👋 Welcome back ygaevsky! A progress list of the required criteria for merging this PR into |
Webrevs
|
Hey @ygaevsky, I can work on this real vectorized intrinsic implementation, please let me know how you think about it. Thanks. |
…nstants as not needed anymore.
…d result to their iRegPNoSp/iRegINoSp counterparts. Changed iRegINoSp->iRegLNoSp for tmp1/tmp4 as they can contain 64-bit values. Changed effects USE_KILL->USE for ary, removed effect for cnt.
macos-x64/windows-x64 failures look unrelated. |
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.
Thanks for updating. Looks good to me.
Just one minor comment.
It's all in the pr #16453, I don't have much other information. |
Thanks @Hamlin-Li, I see now what you mean, that's interesting. |
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.
Hi, glad to see the performance numbers are back to normal. Would you mind two more tweaks? Thanks.
Thank you for the suggestions, fixed, please take a look. |
The failures above seem unrelated. |
Thanks for the update. So I gave it a second try and some tunning. I see up to 7%+ extra improvement on licheepi-4a board (T-Head C910) with following small add-on change (no obvious change on unmatched board). This materializes the powers of 31 with direct
|
Avoiding memory accesses is always good idea, so your suggestion makes perfect sense, thanks, fixed. I've re-checked that the performance is at least not worse on THead/SiFive/StarFive. |
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.
Updated change looks good to me. Thanks for your patience.
@ygaevsky This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 410 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@Hamlin-Li, @RealFYang) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
Thank you for the thorough review and suggestions, @RealFYang. |
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.
LGTM. Thanks!
Thanks for your review/suggestions, @Hamlin-Li! |
/sponsor |
@ygaevsky Only Committers are allowed to sponsor changes. |
/integrate |
/sponsor |
Going to push as commit 6359b4e.
Your commit was automatically rebased without conflicts. |
@VladimirKempik @ygaevsky Pushed as commit 6359b4e. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Hello All,
Please review these changes to support _vectorizedHashCode intrinsic on
RISC-V platform. The patch adds the "scalar" code for the intrinsic without
usage of any RVV instruction but provides manual unrolling of the appropriate
loop. The code with usage of RVV instruction could be added as follow-up of
the patch or independently.
Thanks,
-Yuri Gaevsky
P.S. My OCA has been accepted recently (ygaevsky).
Correctness checks
Testing: tier1 tests successfully passed on a RISC-V StarFive JH7110 board with Linux.
Performance results (the numbers for non-ints are similar)
StarFive JH7110 board:
T-Head RVB-ICE board:
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/16629/head:pull/16629
$ git checkout pull/16629
Update a local copy of the PR:
$ git checkout pull/16629
$ git pull https://git.openjdk.org/jdk.git pull/16629/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 16629
View PR using the GUI difftool:
$ git pr show -t 16629
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/16629.diff
Webrev
Link to Webrev Comment