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
8282874: Bad performance on gather/scatter API caused by different IntSpecies of indexMap #7757
Conversation
…tSpecies of indexMap
|
@JoshuaZhuwj To determine the appropriate audience for reviewing this pull request, one or more labels corresponding to different subsystems will normally be applied automatically. However, no automatic labelling rule matches the changes in this pull request. In order to have an "RFR" email sent to the correct mailing list, you will need to add one or more applicable labels manually using the /label pull request command. Applicable Labels
|
/label add hotspot |
@JoshuaZhuwj |
@JoshuaZhuwj This change now passes all automated pre-integration checks. 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 5 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the 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 (@PaulSandoz) but any other Committer may sponsor as well.
|
/integrate |
@JoshuaZhuwj |
I would suggest adding a jtreg test for this fix if it is possible. |
@DamonFool thanks for your suggestion. |
To avoid breaking this fix again in the future, I would prefer a jtreg test since the jtreg tests are tested much more frequently and widely. TBH, I still don't know how to reproduce the problem and verify the fix. |
I think its OK, to follow up after this with some tests for "polluted" profiles of vectors (which may expose more issues). |
Hi @PaulSandoz , JDK-8282874 is labeled as a Bug. I think it also helps to figure out more bugs of this kind if we provide a jtreg test. |
As my description at the beginning of both PRs, using gather/scatter VectorAPI for Integer and Long in the same application, this issue could be reproduced easily. This change fixes the non-determined IntSpecies for a constant VectorShape of IndexMap in this scenario. But even with this fix, the performance still cannot reach optimum. I made an initial triage for the 2nd issue. That's why I propose to add a benchmark after we figure out the solution to 2nd issue. I agree with Paul that we could follow up with more tests afterward. |
Thanks @JoshuaZhuwj for your clarification. If you are busy to do so, we'd like to have a try. |
Of course. Thanks @DamonFool |
Okay. |
Nice performance improvement. |
/sponsor |
Going to push as commit 5c408c1.
Your commit was automatically rebased without conflicts. |
@DamonFool @JoshuaZhuwj Pushed as commit 5c408c1. |
Thanks Paul and FuJie. |
… IntSpecies of indexMap Summary: Fix a performance issue when using scatter store VectorAPI for Integer and Long simultaneously in the same application. The poor performance was caused by vector intrinsic inlining failure because of non-determined IntSpecies for a constant VectorShape of IndexMap in this scenario. JDK CR: openjdk/jdk#7757 Test Plan: performance test in real sceanario Reviewers: kuaiwei.kw, zhuoren.wz Issue: https://aone.alibaba-inc.com/task/40627608 CR: https://code.aone.alibaba-inc.com/xcode/jdk11/codereview/8291897
I came across a performance issue when using scatter store VectorAPI for Integer and Long in the same application. The poor performance was caused by vector intrinsic inlining failure because of non-determined IntSpecies for a constant VectorShape of IndexMap in this scenario.
As discussion at #7721 , I change the code in VectorAPI.
Please help review.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/7757/head:pull/7757
$ git checkout pull/7757
Update a local copy of the PR:
$ git checkout pull/7757
$ git pull https://git.openjdk.java.net/jdk pull/7757/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 7757
View PR using the GUI difftool:
$ git pr show -t 7757
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/7757.diff